aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy T. Bouse <jbouse@debian.org>2009-11-27 16:20:12 -0500
committerJeremy T. Bouse <jbouse@debian.org>2009-11-27 16:20:12 -0500
commited280d5ac360e2af796e9bd973d7b4df89f0c449 (patch)
treece892d6ce9dad8c0ecbc9cbe73f8095195bef0b4
parent176c6caf4ea7918e1698438634b237fab8456471 (diff)
downloadpython-paramiko-ed280d5ac360e2af796e9bd973d7b4df89f0c449.tar
python-paramiko-ed280d5ac360e2af796e9bd973d7b4df89f0c449.tar.gz
Imported Upstream version 1.7.4upstream/1.7.4
-rw-r--r--MANIFEST.in4
-rw-r--r--PKG-INFO6
-rw-r--r--README245
-rwxr-xr-x[-rw-r--r--]demos/demo.py (renamed from demo.py)118
-rwxr-xr-x[-rw-r--r--]demos/demo_server.py (renamed from demo_server.py)44
-rwxr-xr-xdemos/demo_sftp.py119
-rwxr-xr-x[-rw-r--r--]demos/demo_simple.py (renamed from demo_simple.py)61
-rwxr-xr-xdemos/forward.py180
-rw-r--r--demos/interactive.py97
-rwxr-xr-xdemos/rforward.py167
-rw-r--r--demos/test_rsa.key15
-rw-r--r--demos/user_rsa_key15
-rw-r--r--demos/user_rsa_key.pub1
-rw-r--r--docs/api-objects.txt2179
-rw-r--r--docs/bug-index.html107
-rw-r--r--docs/class-tree.html368
-rw-r--r--docs/crarr.pngbin0 -> 340 bytes
-rw-r--r--docs/epydoc.css418
-rw-r--r--docs/epydoc.js293
-rw-r--r--docs/frames.html17
-rw-r--r--docs/help.html (renamed from docs/private/help.html)186
-rw-r--r--docs/identifier-index.html5420
-rw-r--r--docs/index.html14
-rw-r--r--docs/module-tree.html158
-rw-r--r--docs/paramiko-module.html516
-rw-r--r--docs/paramiko-pysrc.html485
-rw-r--r--docs/paramiko.Agent-class.html233
-rw-r--r--docs/paramiko.AgentKey-class.html396
-rw-r--r--docs/paramiko.AuthenticationException-class.html180
-rw-r--r--docs/paramiko.AutoAddPolicy-class.html221
-rw-r--r--docs/paramiko.BadAuthenticationType-class.html291
-rw-r--r--docs/paramiko.BadHostKeyException-class.html263
-rw-r--r--docs/paramiko.BufferedFile-class.html853
-rw-r--r--docs/paramiko.Channel-class.html1995
-rw-r--r--docs/paramiko.ChannelException-class.html245
-rw-r--r--docs/paramiko.DSSKey-class.html747
-rw-r--r--docs/paramiko.HostKeys-class.html643
-rw-r--r--docs/paramiko.Message-class.html1098
-rw-r--r--docs/paramiko.MissingHostKeyPolicy-class.html229
-rw-r--r--docs/paramiko.PKey-class.html854
-rw-r--r--docs/paramiko.PasswordRequiredException-class.html171
-rw-r--r--docs/paramiko.RSAKey-class.html747
-rw-r--r--docs/paramiko.RejectPolicy-class.html220
-rw-r--r--docs/paramiko.SFTP-class.html199
-rw-r--r--docs/paramiko.SFTPAttributes-class.html415
-rw-r--r--docs/paramiko.SFTPClient-class.html1528
-rw-r--r--docs/paramiko.SFTPError-class.html164
-rw-r--r--docs/paramiko.SFTPFile-class.html1008
-rw-r--r--docs/paramiko.SFTPHandle-class.html473
-rw-r--r--docs/paramiko.SFTPServer-class.html468
-rw-r--r--docs/paramiko.SFTPServerInterface-class.html976
-rw-r--r--docs/paramiko.SSHClient-class.html839
-rw-r--r--docs/paramiko.SSHConfig-class.html306
-rw-r--r--docs/paramiko.SSHException-class.html173
-rw-r--r--docs/paramiko.SecurityOptions-class.html394
-rw-r--r--docs/paramiko.ServerInterface-class.html1244
-rw-r--r--docs/paramiko.SubsystemHandler-class.html384
-rw-r--r--docs/paramiko.Transport-class.html2343
-rw-r--r--docs/paramiko.WarningPolicy-class.html220
-rw-r--r--docs/paramiko.agent-module.html141
-rw-r--r--docs/paramiko.agent-pysrc.html277
-rw-r--r--docs/paramiko.auth_handler-module.html524
-rw-r--r--docs/paramiko.auth_handler-pysrc.html1514
-rw-r--r--docs/paramiko.ber-module.html126
-rw-r--r--docs/paramiko.ber-pysrc.html238
-rw-r--r--docs/paramiko.ber.BER-class.html394
-rw-r--r--docs/paramiko.ber.BERException-class.html165
-rw-r--r--docs/paramiko.buffered_pipe-module.html136
-rw-r--r--docs/paramiko.buffered_pipe-pysrc.html323
-rw-r--r--docs/paramiko.buffered_pipe.BufferedPipe-class.html513
-rw-r--r--docs/paramiko.buffered_pipe.PipeTimeout-class.html182
-rw-r--r--docs/paramiko.channel-module.html547
-rw-r--r--docs/paramiko.channel-pysrc.html2083
-rw-r--r--docs/paramiko.channel.ChannelStderrFile-class.html254
-rw-r--r--docs/paramiko.client-module.html525
-rw-r--r--docs/paramiko.client-pysrc.html766
-rw-r--r--docs/paramiko.common-module.html524
-rw-r--r--docs/paramiko.common-pysrc.html1905
-rw-r--r--docs/paramiko.compress-module.html127
-rw-r--r--docs/paramiko.compress-pysrc.html148
-rw-r--r--docs/paramiko.compress.ZlibCompressor-class.html219
-rw-r--r--docs/paramiko.compress.ZlibDecompressor-class.html219
-rw-r--r--docs/paramiko.config-module.html105
-rw-r--r--docs/paramiko.config-pysrc.html214
-rw-r--r--docs/paramiko.dsskey-module.html524
-rw-r--r--docs/paramiko.dsskey-pysrc.html355
-rw-r--r--docs/paramiko.file-module.html104
-rw-r--r--docs/paramiko.file-pysrc.html579
-rw-r--r--docs/paramiko.hostkeys-module.html542
-rw-r--r--docs/paramiko.hostkeys-pysrc.html499
-rw-r--r--docs/paramiko.hostkeys.HostKeyEntry-class.html255
-rw-r--r--docs/paramiko.kex_gex-module.html543
-rw-r--r--docs/paramiko.kex_gex-pysrc.html483
-rw-r--r--docs/paramiko.kex_gex.KexGex-class.html276
-rw-r--r--docs/paramiko.kex_group1-module.html582
-rw-r--r--docs/paramiko.kex_group1-pysrc.html312
-rw-r--r--docs/paramiko.kex_group1.KexGroup1-class.html254
-rw-r--r--docs/paramiko.logging22-module.html203
-rw-r--r--docs/paramiko.logging22-pysrc.html302
-rw-r--r--docs/paramiko.logging22.Formatter-class.html206
-rw-r--r--docs/paramiko.logging22.StreamHandler-class.html221
-rw-r--r--docs/paramiko.logging22.logger-class.html271
-rw-r--r--docs/paramiko.message-module.html104
-rw-r--r--docs/paramiko.message-pysrc.html428
-rw-r--r--docs/paramiko.packet-module.html574
-rw-r--r--docs/paramiko.packet-pysrc.html964
-rw-r--r--docs/paramiko.packet.NeedRekeyException-class.html165
-rw-r--r--docs/paramiko.pipe-module.html215
-rw-r--r--docs/paramiko.pipe-pysrc.html327
-rw-r--r--docs/paramiko.pipe.OrPipe-class.html236
-rw-r--r--docs/paramiko.pipe.PosixPipe-class.html282
-rw-r--r--docs/paramiko.pipe.WindowsPipe-class.html285
-rw-r--r--docs/paramiko.pkey-module.html524
-rw-r--r--docs/paramiko.pkey-pysrc.html540
-rw-r--r--docs/paramiko.primes-module.html122
-rw-r--r--docs/paramiko.primes-pysrc.html333
-rw-r--r--docs/paramiko.primes.ModulusPack-class.html267
-rw-r--r--docs/paramiko.resource-module.html120
-rw-r--r--docs/paramiko.resource-pysrc.html192
-rw-r--r--docs/paramiko.rng-module.html135
-rw-r--r--docs/paramiko.rng-pysrc.html368
-rw-r--r--docs/paramiko.rng.StrongLockingRandomPool-class.html281
-rw-r--r--docs/paramiko.rng_posix-module.html144
-rw-r--r--docs/paramiko.rng_posix-pysrc.html285
-rw-r--r--docs/paramiko.rng_posix.error-class.html165
-rw-r--r--docs/paramiko.rng_win32-module.html143
-rw-r--r--docs/paramiko.rng_win32-pysrc.html249
-rw-r--r--docs/paramiko.rng_win32.error-class.html165
-rw-r--r--docs/paramiko.rsakey-module.html524
-rw-r--r--docs/paramiko.rsakey-pysrc.html343
-rw-r--r--docs/paramiko.server-module.html526
-rw-r--r--docs/paramiko.server-pysrc.html1006
-rw-r--r--docs/paramiko.sftp-module.html898
-rw-r--r--docs/paramiko.sftp-pysrc.html798
-rw-r--r--docs/paramiko.sftp_attr-module.html898
-rw-r--r--docs/paramiko.sftp_attr-pysrc.html367
-rw-r--r--docs/paramiko.sftp_client-module.html900
-rw-r--r--docs/paramiko.sftp_client-pysrc.html1563
-rw-r--r--docs/paramiko.sftp_file-module.html900
-rw-r--r--docs/paramiko.sftp_file-pysrc.html874
-rw-r--r--docs/paramiko.sftp_handle-module.html900
-rw-r--r--docs/paramiko.sftp_handle-pysrc.html369
-rw-r--r--docs/paramiko.sftp_server-module.html900
-rw-r--r--docs/paramiko.sftp_server-pysrc.html1196
-rw-r--r--docs/paramiko.sftp_si-module.html902
-rw-r--r--docs/paramiko.sftp_si-pysrc.html527
-rw-r--r--docs/paramiko.ssh_exception-module.html121
-rw-r--r--docs/paramiko.ssh_exception-pysrc.html403
-rw-r--r--docs/paramiko.ssh_exception.PartialAuthentication-class.html241
-rw-r--r--docs/paramiko.transport-module.html541
-rw-r--r--docs/paramiko.transport-pysrc.html4154
-rw-r--r--docs/paramiko.transport.ChannelMap-class.html286
-rw-r--r--docs/paramiko.util-module.html950
-rw-r--r--docs/paramiko.util-pysrc.html400
-rw-r--r--docs/paramiko.util.PFilter-class.html168
-rw-r--r--docs/paramiko.util.enumerate-class.html145
-rw-r--r--docs/paramiko.win_pageant-module.html197
-rw-r--r--docs/paramiko.win_pageant-pysrc.html288
-rw-r--r--docs/paramiko.win_pageant.PageantConnection-class.html257
-rw-r--r--docs/private/__builtin__.object-class.html286
-rw-r--r--docs/private/__builtin__.type-class.html504
-rw-r--r--docs/private/epydoc.css100
-rw-r--r--docs/private/exceptions.Exception-class.html87
-rw-r--r--docs/private/frames.html13
-rw-r--r--docs/private/index.html13
-rw-r--r--docs/private/indices.html1635
-rw-r--r--docs/private/paramiko-module.html407
-rw-r--r--docs/private/paramiko.Agent-class.html155
-rw-r--r--docs/private/paramiko.AgentKey-class.html319
-rw-r--r--docs/private/paramiko.AuthHandler-class.html282
-rw-r--r--docs/private/paramiko.BadAuthenticationType-class.html141
-rw-r--r--docs/private/paramiko.BaseSFTP-class.html149
-rw-r--r--docs/private/paramiko.BufferedFile-class.html656
-rw-r--r--docs/private/paramiko.Channel-class.html1329
-rw-r--r--docs/private/paramiko.ChannelFile-class.html347
-rw-r--r--docs/private/paramiko.DSSKey-class.html486
-rw-r--r--docs/private/paramiko.Message-class.html654
-rw-r--r--docs/private/paramiko.PKey-class.html696
-rw-r--r--docs/private/paramiko.Packetizer-class.html441
-rw-r--r--docs/private/paramiko.PasswordRequiredException-class.html91
-rw-r--r--docs/private/paramiko.RSAKey-class.html504
-rw-r--r--docs/private/paramiko.SFTP-class.html347
-rw-r--r--docs/private/paramiko.SFTPAttributes-class.html385
-rw-r--r--docs/private/paramiko.SFTPClient-class.html1091
-rw-r--r--docs/private/paramiko.SFTPError-class.html85
-rw-r--r--docs/private/paramiko.SFTPFile-class.html667
-rw-r--r--docs/private/paramiko.SFTPHandle-class.html364
-rw-r--r--docs/private/paramiko.SFTPServer-class.html511
-rw-r--r--docs/private/paramiko.SFTPServerInterface-class.html744
-rw-r--r--docs/private/paramiko.SSHException-class.html95
-rw-r--r--docs/private/paramiko.SecurityOptions-class.html373
-rw-r--r--docs/private/paramiko.ServerInterface-class.html894
-rw-r--r--docs/private/paramiko.SubsystemHandler-class.html352
-rw-r--r--docs/private/paramiko.Transport-class.html2151
-rw-r--r--docs/private/paramiko.agent-module.html164
-rw-r--r--docs/private/paramiko.auth_handler-module.html62
-rw-r--r--docs/private/paramiko.ber-module.html79
-rw-r--r--docs/private/paramiko.ber.BER-class.html145
-rw-r--r--docs/private/paramiko.ber.BERException-class.html86
-rw-r--r--docs/private/paramiko.channel-module.html71
-rw-r--r--docs/private/paramiko.channel.ChannelStderrFile-class.html282
-rw-r--r--docs/private/paramiko.common-module.html1013
-rw-r--r--docs/private/paramiko.compress-module.html74
-rw-r--r--docs/private/paramiko.compress.ZlibCompressor-class.html122
-rw-r--r--docs/private/paramiko.compress.ZlibDecompressor-class.html122
-rw-r--r--docs/private/paramiko.dsskey-module.html62
-rw-r--r--docs/private/paramiko.file-module.html230
-rw-r--r--docs/private/paramiko.kex_gex-module.html179
-rw-r--r--docs/private/paramiko.kex_gex.KexGex-class.html250
-rw-r--r--docs/private/paramiko.kex_group1-module.html181
-rw-r--r--docs/private/paramiko.kex_group1.KexGroup1-class.html176
-rw-r--r--docs/private/paramiko.logging22-module.html235
-rw-r--r--docs/private/paramiko.logging22.Formatter-class.html120
-rw-r--r--docs/private/paramiko.logging22.StreamHandler-class.html123
-rw-r--r--docs/private/paramiko.logging22.logger-class.html135
-rw-r--r--docs/private/paramiko.message-module.html61
-rw-r--r--docs/private/paramiko.packet-module.html71
-rw-r--r--docs/private/paramiko.packet.NeedRekeyException-class.html86
-rw-r--r--docs/private/paramiko.pipe-module.html87
-rw-r--r--docs/private/paramiko.pipe.PosixPipe-class.html133
-rw-r--r--docs/private/paramiko.pipe.WindowsPipe-class.html137
-rw-r--r--docs/private/paramiko.pkey-module.html61
-rw-r--r--docs/private/paramiko.primes-module.html117
-rw-r--r--docs/private/paramiko.primes.ModulusPack-class.html158
-rw-r--r--docs/private/paramiko.rsakey-module.html62
-rw-r--r--docs/private/paramiko.server-module.html74
-rw-r--r--docs/private/paramiko.server.InteractiveQuery-class.html195
-rw-r--r--docs/private/paramiko.sftp-module.html1082
-rw-r--r--docs/private/paramiko.sftp_attr-module.html59
-rw-r--r--docs/private/paramiko.sftp_client-module.html89
-rw-r--r--docs/private/paramiko.sftp_file-module.html62
-rw-r--r--docs/private/paramiko.sftp_handle-module.html61
-rw-r--r--docs/private/paramiko.sftp_server-module.html102
-rw-r--r--docs/private/paramiko.sftp_si-module.html63
-rw-r--r--docs/private/paramiko.ssh_exception-module.html72
-rw-r--r--docs/private/paramiko.ssh_exception.PartialAuthentication-class.html131
-rw-r--r--docs/private/paramiko.transport-module.html111
-rw-r--r--docs/private/paramiko.util-module.html475
-rw-r--r--docs/private/paramiko.util.PFilter-class.html124
-rw-r--r--docs/private/threading.Thread-class.html237
-rw-r--r--docs/private/threading._Verbose-class.html127
-rw-r--r--docs/private/toc-everything.html224
-rw-r--r--docs/private/toc-paramiko-module.html94
-rw-r--r--docs/private/toc-paramiko.agent-module.html25
-rw-r--r--docs/private/toc-paramiko.auth_handler-module.html17
-rw-r--r--docs/private/toc-paramiko.ber-module.html27
-rw-r--r--docs/private/toc-paramiko.channel-module.html22
-rw-r--r--docs/private/toc-paramiko.common-module.html63
-rw-r--r--docs/private/toc-paramiko.compress-module.html23
-rw-r--r--docs/private/toc-paramiko.dsskey-module.html17
-rw-r--r--docs/private/toc-paramiko.file-module.html28
-rw-r--r--docs/private/toc-paramiko.kex_gex-module.html30
-rw-r--r--docs/private/toc-paramiko.kex_group1-module.html30
-rw-r--r--docs/private/toc-paramiko.logging22-module.html39
-rw-r--r--docs/private/toc-paramiko.message-module.html17
-rw-r--r--docs/private/toc-paramiko.packet-module.html22
-rw-r--r--docs/private/toc-paramiko.pipe-module.html28
-rw-r--r--docs/private/toc-paramiko.pkey-module.html17
-rw-r--r--docs/private/toc-paramiko.primes-module.html28
-rw-r--r--docs/private/toc-paramiko.rsakey-module.html17
-rw-r--r--docs/private/toc-paramiko.server-module.html22
-rw-r--r--docs/private/toc-paramiko.sftp-module.html66
-rw-r--r--docs/private/toc-paramiko.sftp_attr-module.html17
-rw-r--r--docs/private/toc-paramiko.sftp_client-module.html22
-rw-r--r--docs/private/toc-paramiko.sftp_file-module.html17
-rw-r--r--docs/private/toc-paramiko.sftp_handle-module.html17
-rw-r--r--docs/private/toc-paramiko.sftp_server-module.html22
-rw-r--r--docs/private/toc-paramiko.sftp_si-module.html17
-rw-r--r--docs/private/toc-paramiko.ssh_exception-module.html22
-rw-r--r--docs/private/toc-paramiko.transport-module.html27
-rw-r--r--docs/private/toc-paramiko.util-module.html52
-rw-r--r--docs/private/toc.html53
-rw-r--r--docs/private/trees.html243
-rw-r--r--docs/public/__builtin__.object-class.html268
-rw-r--r--docs/public/__builtin__.type-class.html504
-rw-r--r--docs/public/epydoc.css100
-rw-r--r--docs/public/exceptions.Exception-class.html85
-rw-r--r--docs/public/frames.html13
-rw-r--r--docs/public/help.html224
-rw-r--r--docs/public/index.html13
-rw-r--r--docs/public/indices.html803
-rw-r--r--docs/public/paramiko-module.html229
-rw-r--r--docs/public/paramiko.Agent-class.html147
-rw-r--r--docs/public/paramiko.AgentKey-class.html236
-rw-r--r--docs/public/paramiko.BadAuthenticationType-class.html141
-rw-r--r--docs/public/paramiko.BufferedFile-class.html554
-rw-r--r--docs/public/paramiko.Channel-class.html1241
-rw-r--r--docs/public/paramiko.DSSKey-class.html423
-rw-r--r--docs/public/paramiko.Message-class.html650
-rw-r--r--docs/public/paramiko.PasswordRequiredException-class.html91
-rw-r--r--docs/public/paramiko.RSAKey-class.html423
-rw-r--r--docs/public/paramiko.SFTP-class.html287
-rw-r--r--docs/public/paramiko.SFTPAttributes-class.html360
-rw-r--r--docs/public/paramiko.SFTPClient-class.html1009
-rw-r--r--docs/public/paramiko.SFTPError-class.html85
-rw-r--r--docs/public/paramiko.SFTPFile-class.html560
-rw-r--r--docs/public/paramiko.SFTPHandle-class.html325
-rw-r--r--docs/public/paramiko.SFTPServer-class.html403
-rw-r--r--docs/public/paramiko.SSHException-class.html94
-rw-r--r--docs/public/paramiko.SecurityOptions-class.html274
-rw-r--r--docs/public/paramiko.SubsystemHandler-class.html327
-rw-r--r--docs/public/paramiko.Transport-class.html1524
-rw-r--r--docs/public/paramiko.agent-module.html164
-rw-r--r--docs/public/paramiko.dsskey-module.html62
-rw-r--r--docs/public/paramiko.file-module.html61
-rw-r--r--docs/public/paramiko.message-module.html61
-rw-r--r--docs/public/paramiko.pkey-module.html61
-rw-r--r--docs/public/paramiko.rsakey-module.html62
-rw-r--r--docs/public/paramiko.server-module.html74
-rw-r--r--docs/public/paramiko.server.InteractiveQuery-class.html195
-rw-r--r--docs/public/paramiko.sftp-module.html1060
-rw-r--r--docs/public/paramiko.sftp_attr-module.html59
-rw-r--r--docs/public/paramiko.sftp_client-module.html61
-rw-r--r--docs/public/paramiko.sftp_file-module.html62
-rw-r--r--docs/public/paramiko.sftp_handle-module.html61
-rw-r--r--docs/public/paramiko.sftp_server-module.html61
-rw-r--r--docs/public/paramiko.sftp_si-module.html63
-rw-r--r--docs/public/paramiko.transport-module.html63
-rw-r--r--docs/public/paramiko.util-module.html369
-rw-r--r--docs/public/paramiko.util.PFilter-class.html124
-rw-r--r--docs/public/threading.Thread-class.html161
-rw-r--r--docs/public/toc-everything.html121
-rw-r--r--docs/public/toc-paramiko-module.html69
-rw-r--r--docs/public/toc-paramiko.agent-module.html25
-rw-r--r--docs/public/toc-paramiko.dsskey-module.html17
-rw-r--r--docs/public/toc-paramiko.file-module.html21
-rw-r--r--docs/public/toc-paramiko.message-module.html17
-rw-r--r--docs/public/toc-paramiko.pkey-module.html17
-rw-r--r--docs/public/toc-paramiko.rsakey-module.html17
-rw-r--r--docs/public/toc-paramiko.server-module.html22
-rw-r--r--docs/public/toc-paramiko.sftp-module.html65
-rw-r--r--docs/public/toc-paramiko.sftp_attr-module.html17
-rw-r--r--docs/public/toc-paramiko.sftp_client-module.html21
-rw-r--r--docs/public/toc-paramiko.sftp_file-module.html17
-rw-r--r--docs/public/toc-paramiko.sftp_handle-module.html17
-rw-r--r--docs/public/toc-paramiko.sftp_server-module.html21
-rw-r--r--docs/public/toc-paramiko.sftp_si-module.html17
-rw-r--r--docs/public/toc-paramiko.transport-module.html25
-rw-r--r--docs/public/toc-paramiko.util-module.html48
-rw-r--r--docs/public/toc.html41
-rw-r--r--docs/public/trees.html151
-rw-r--r--docs/redirect.html38
-rw-r--r--docs/since-index.html302
-rw-r--r--docs/toc-everything.html146
-rw-r--r--docs/toc-paramiko-module.html61
-rw-r--r--docs/toc-paramiko.agent-module.html28
-rw-r--r--docs/toc-paramiko.auth_handler-module.html28
-rw-r--r--docs/toc-paramiko.ber-module.html28
-rw-r--r--docs/toc-paramiko.buffered_pipe-module.html28
-rw-r--r--docs/toc-paramiko.channel-module.html29
-rw-r--r--docs/toc-paramiko.client-module.html28
-rw-r--r--docs/toc-paramiko.common-module.html28
-rw-r--r--docs/toc-paramiko.compress-module.html28
-rw-r--r--docs/toc-paramiko.config-module.html27
-rw-r--r--docs/toc-paramiko.dsskey-module.html28
-rw-r--r--docs/toc-paramiko.file-module.html27
-rw-r--r--docs/toc-paramiko.hostkeys-module.html29
-rw-r--r--docs/toc-paramiko.kex_gex-module.html29
-rw-r--r--docs/toc-paramiko.kex_group1-module.html29
-rw-r--r--docs/toc-paramiko.logging22-module.html39
-rw-r--r--docs/toc-paramiko.message-module.html27
-rw-r--r--docs/toc-paramiko.packet-module.html30
-rw-r--r--docs/toc-paramiko.pipe-module.html29
-rw-r--r--docs/toc-paramiko.pkey-module.html28
-rw-r--r--docs/toc-paramiko.primes-module.html28
-rw-r--r--docs/toc-paramiko.resource-module.html28
-rw-r--r--docs/toc-paramiko.rng-module.html29
-rw-r--r--docs/toc-paramiko.rng_posix-module.html29
-rw-r--r--docs/toc-paramiko.rng_win32-module.html31
-rw-r--r--docs/toc-paramiko.rsakey-module.html28
-rw-r--r--docs/toc-paramiko.server-module.html28
-rw-r--r--docs/toc-paramiko.sftp-module.html28
-rw-r--r--docs/toc-paramiko.sftp_attr-module.html28
-rw-r--r--docs/toc-paramiko.sftp_client-module.html28
-rw-r--r--docs/toc-paramiko.sftp_file-module.html28
-rw-r--r--docs/toc-paramiko.sftp_handle-module.html28
-rw-r--r--docs/toc-paramiko.sftp_server-module.html28
-rw-r--r--docs/toc-paramiko.sftp_si-module.html28
-rw-r--r--docs/toc-paramiko.ssh_exception-module.html28
-rw-r--r--docs/toc-paramiko.transport-module.html29
-rw-r--r--docs/toc-paramiko.util-module.html99
-rw-r--r--docs/toc-paramiko.win_pageant-module.html33
-rw-r--r--docs/toc.html35
-rw-r--r--forward.py219
-rw-r--r--paramiko.egg-info/PKG-INFO25
-rw-r--r--paramiko.egg-info/SOURCES.txt266
-rw-r--r--paramiko.egg-info/dependency_links.txt1
-rw-r--r--paramiko.egg-info/requires.txt1
-rw-r--r--paramiko.egg-info/top_level.txt1
-rw-r--r--paramiko/__init__.py67
-rw-r--r--paramiko/agent.py39
-rw-r--r--paramiko/auth_handler.py42
-rw-r--r--paramiko/ber.py7
-rw-r--r--paramiko/buffered_pipe.py200
-rw-r--r--paramiko/channel.py471
-rw-r--r--paramiko/client.py474
-rw-r--r--paramiko/common.py26
-rw-r--r--paramiko/compress.py2
-rw-r--r--paramiko/config.py105
-rw-r--r--paramiko/dsskey.py37
-rw-r--r--paramiko/file.py82
-rw-r--r--paramiko/hostkeys.py315
-rw-r--r--paramiko/kex_gex.py68
-rw-r--r--paramiko/kex_group1.py2
-rw-r--r--paramiko/logging22.py2
-rw-r--r--paramiko/message.py4
-rw-r--r--paramiko/packet.py116
-rw-r--r--paramiko/pipe.py52
-rw-r--r--paramiko/pkey.py93
-rw-r--r--paramiko/primes.py17
-rw-r--r--paramiko/resource.py72
-rw-r--r--paramiko/rng.py112
-rw-r--r--paramiko/rng_posix.py97
-rw-r--r--paramiko/rng_win32.py121
-rw-r--r--paramiko/rsakey.py41
-rw-r--r--paramiko/server.py111
-rw-r--r--paramiko/sftp.py48
-rw-r--r--paramiko/sftp_attr.py75
-rw-r--r--paramiko/sftp_client.py229
-rw-r--r--paramiko/sftp_file.py241
-rw-r--r--paramiko/sftp_handle.py44
-rw-r--r--paramiko/sftp_server.py76
-rw-r--r--paramiko/sftp_si.py13
-rw-r--r--paramiko/ssh_exception.py58
-rw-r--r--paramiko/transport.py574
-rw-r--r--paramiko/util.py131
-rw-r--r--paramiko/win_pageant.py148
-rw-r--r--setup.cfg5
-rw-r--r--setup.py31
-rw-r--r--setup_helper.py102
-rwxr-xr-x[-rw-r--r--]test.py163
-rw-r--r--tests/loop.py4
-rw-r--r--tests/stub_sftp.py32
-rw-r--r--tests/test_auth.py231
-rw-r--r--tests/test_buffered_pipe.py95
-rw-r--r--tests/test_client.py214
-rwxr-xr-x[-rw-r--r--]tests/test_file.py4
-rw-r--r--tests/test_hostkeys.py117
-rw-r--r--tests/test_kex.py101
-rw-r--r--tests/test_message.py4
-rw-r--r--tests/test_packetizer.py2
-rw-r--r--tests/test_pkey.py61
-rwxr-xr-x[-rw-r--r--]tests/test_sftp.py339
-rw-r--r--tests/test_sftp_big.py385
-rw-r--r--tests/test_transport.py723
-rw-r--r--tests/test_util.py96
446 files changed, 87723 insertions, 43924 deletions
diff --git a/MANIFEST.in b/MANIFEST.in
new file mode 100644
index 0000000..e718ea2
--- /dev/null
+++ b/MANIFEST.in
@@ -0,0 +1,4 @@
+include LICENSE test.py setup_helper.py
+recursive-include docs *
+recursive-include tests *.py *.key
+recursive-include demos *.py *.key user_rsa_key user_rsa_key.pub
diff --git a/PKG-INFO b/PKG-INFO
index a0ec679..f40d53f 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,12 +1,12 @@
Metadata-Version: 1.0
Name: paramiko
-Version: 1.5.2
+Version: 1.7.4
Summary: SSH2 protocol library
Home-page: http://www.lag.net/paramiko/
Author: Robey Pointer
Author-email: robey@lag.net
License: LGPL
-Download-URL: http://www.lag.net/paramiko/download/paramiko-1.5.2.zip
+Download-URL: http://www.lag.net/paramiko/download/paramiko-1.7.4.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
@@ -14,7 +14,7 @@ Description:
are supported. SFTP client and server mode are both supported too.
Required packages:
- pyCrypt
+ pyCrypto
Platform: Posix; MacOS X; Windows
Classifier: Development Status :: 5 - Production/Stable
diff --git a/README b/README
index 45997ac..6a4c69d 100644
--- a/README
+++ b/README
@@ -1,12 +1,22 @@
-paramiko 1.5.2
-"rhydon" release, 04 dec 2005
-Copyright (c) 2003-2005 Robey Pointer <robey@lag.net>
+========
+paramiko
+========
-http://www.lag.net/paramiko/
+:Paramiko: Python SSH module
+:Copyright: Copyright (c) 2003-2008 Robey Pointer <robey@lag.net>
+:License: LGPL
+:Homepage: http://www.lag.net/paramiko/
-*** WHAT
+paramiko 1.7.4
+==============
+
+"Desmond" release, 06 july 2008
+
+
+What
+----
"paramiko" is a combination of the esperanto words for "paranoid" and
"friend". it's a module for python 2.2+ that implements the SSH2 protocol
@@ -25,97 +35,124 @@ the package and its API is fairly well documented in the "doc/" folder
that should have come with this archive.
-*** REQUIREMENTS
+Requirements
+------------
-python 2.3 <http://www.python.org/>
+ - python 2.3 <http://www.python.org/>
(python 2.2 is also supported, but not recommended)
-pycrypto 1.9+ <http://www.amk.ca/python/code/crypto.html>
+ - pycrypto 1.9+ <http://www.amk.ca/python/code/crypto.html>
(2.0 works too)
pycrypto compiled for Win32 can be downloaded from the HashTar homepage:
http://nitace.bsd.uchicago.edu:8080/hashtar
+
you can also build it yourself using the free MinGW tools and this command
-line (thanks to Roger Binns for the info):
+line (thanks to Roger Binns for the info)::
+
python setup.py build --compiler=mingw32 bdist_wininst
+If you have setuptools, you can build and install paramiko and all its
+dependencies with this command (as root)::
-*** PORTABILITY
+ easy_install ./
+
+
+Portability
+-----------
i code and test this library on Linux and MacOS X. for that reason, i'm
-pretty sure that it works for all posix platforms, including MacOS. i
-also think it will work on Windows, though i've never tested it there. if
-you run into Windows problems, send me a patch: portability is important
+pretty sure that it works for all posix platforms, including MacOS. it
+should also work on Windows, though i don't test it as frequently there.
+if you run into Windows problems, send me a patch: portability is important
to me.
python 2.2 may work, thanks to some patches from Roger Binns. things to
watch out for:
-* sockets in 2.2 don't support timeouts, so the 'select' module is
- imported to do polling.
-* logging is mostly stubbed out. it works just enough to let paramiko
- create log files for debugging, if you want them. to get real logging,
- you can backport python 2.3's logging package. Roger has done that
- already:
- http://sourceforge.net/project/showfiles.php?group_id=75211&package_id=113804
+
+ * sockets in 2.2 don't support timeouts, so the 'select' module is
+ imported to do polling.
+ * logging is mostly stubbed out. it works just enough to let paramiko
+ create log files for debugging, if you want them. to get real logging,
+ you can backport python 2.3's logging package. Roger has done that
+ already:
+ http://sourceforge.net/project/showfiles.php?group_id=75211&package_id=113804
you really should upgrade to python 2.3. laziness is no excuse! :)
some python distributions don't include the utf-8 string encodings, for
reasons of space (misdirected as that is). if your distribution is
-missing encodings, you'll see an error like this:
+missing encodings, you'll see an error like this::
-LookupError: no codec search functions registered: can't find encoding
+ LookupError: no codec search functions registered: can't find encoding
this means you need to copy string encodings over from a working system.
(it probably only happens on embedded systems, not normal python
-installls.)
-Valeriy Pogrebitskiy says the best place to look is
-'.../lib/python*/encodings/__init__.py'.
+installs.) Valeriy Pogrebitskiy says the best place to look is
+``.../lib/python*/encodings/__init__.py``.
+
+Bugs & Support
+--------------
-*** DEMO
+there's a launchpage page for paramiko, with a bug tracker:
+
+ https://launchpad.net/paramiko/
+
+this is the primary place to file and browse bug reports.
+
+there's also a low-traffic mailing list for support and discussions:
+
+ http://www.lag.net/mailman/listinfo/paramiko
+
+
+Demo
+----
several demo scripts come with paramiko to demonstrate how to use it.
-probably the simplest demo of all is this:
+probably the simplest demo of all is this::
import paramiko, base64
key = paramiko.RSAKey(data=base64.decodestring('AAA...'))
- t = paramiko.Transport('ssh.example.com')
- t.connect(username='strongbad', password='thecheat', hostkey=key)
- chan = t.open_session()
- chan.exec_command('ls')
- for line in chan.makefile('r+'):
+ client = paramiko.SSHClient()
+ client.get_host_keys().add('ssh.example.com', 'ssh-rsa', key)
+ client.connect('ssh.example.com', username='strongbad', password='thecheat')
+ stdin, stdout, stderr = client.exec_command('ls')
+ for line in stdout:
print '... ' + line.strip('\n')
- chan.close()
- t.close()
+ client.close()
-...which prints out the results of executing 'ls' on a remote server.
+...which prints out the results of executing ``ls`` on a remote server.
(the host key 'AAA...' should of course be replaced by the actual base64
encoding of the host key. if you skip host key verification, the
connection is not secure!)
-the following example scripts get progressively more detailed:
+the following example scripts (in demos/) get progressively more detailed:
-demo_simple.py
+:demo_simple.py:
calls invoke_shell() and emulates a terminal/tty through which you can
execute commands interactively on a remote server. think of it as a
poor man's ssh command-line client.
-demo.py
+:demo.py:
same as demo_simple.py, but allows you to authenticiate using a
private key, attempts to use an SSH-agent if present, and uses the long
form of some of the API calls.
-forward.py
+:forward.py:
command-line script to set up port-forwarding across an ssh transport.
(requires python 2.3.)
-demo_server.py
+:demo_sftp.py:
+ opens an sftp session and does a few simple file operations.
+
+:demo_server.py:
an ssh server that listens on port 2200 and accepts a login for
'robey' (password 'foo'), and pretends to be a BBS. meant to be a
very simple demo of writing an ssh server.
-*** USE
+Use
+---
the demo scripts are probably the best example of how to use this package.
there is also a lot of documentation, generated with epydoc, in the doc/
@@ -123,126 +160,8 @@ folder. point your browser there. seriously, do it. mad props to
epydoc, which actually motivated me to write more documentation than i
ever would have before.
-there are also unit tests here:
+there are also unit tests here::
+
$ python ./test.py
-which will verify that some of the core components are working correctly.
-not much is tested yet, but it's a start. the tests for SFTP are probably
-the best and easiest examples of how to use the SFTP class.
-
-
-*** WHAT'S NEW
-
-highlights of what's new in each release:
-
-v1.5.2 RHYDON
-* compression support (opt-in via Transport.use_compression)
-* sftp files may be opened with mode flag 'x' for O_EXCL (exclusive-open)
- behavior, which has no direct python equivalent
-* added experimental util functions for parsing openssh config files
-* fixed a few bugs (and potential deadlocks) with key renegotiation
-* fixed a bug that caused SFTPFile.prefetch to occasionally lock up
-* fixed an sftp bug which affected van dyke sftp servers
-* fixed the behavior of select()ing on a closed channel, such that it will
- always trigger as readable
-
-v1.5.1 QUILAVA
-* SFTPFile.prefetch() added to dramatically speed up downloads (automatically
- turned on in SFTPClient.get())
-* fixed bug where garbage-collected Channels could trigger the Transport to
- close the session (reported by gordon good)
-* fixed a deadlock in rekeying (reported by wendell wood)
-* fixed some windows bugs and SFTPAttributes.__str__() (reported by grzegorz
- makarewicz)
-* better sftp error reporting by adding fake "errno" info to IOErrors
-
-v1.5 PARAS
-* added support for "keyboard-interactive" authentication
-* added mode (on by default) where password authentication will try to
- fallback to "keyboard-interactive" if it's supported
-* added pipelining to SFTPFile.write and SFTPClient.put
-* fixed bug with SFTPFile.close() not guarding against being called more
- than once (thanks to Nathaniel Smith)
-* fixed broken 'a' flag in SFTPClient.file() (thanks to Nathaniel Smith)
-* fixed up epydocs to look nicer
-* reorganized auth_transport into auth_handler, which seems to be a cleaner
- separation
-* demo scripts fixed to have a better chance of loading the host keys
- correctly on windows/cygwin
-
-v1.4 ODDISH
-* added SSH-agent support (for posix) from john rochester
-* added chdir() and getcwd() to SFTPClient, to emulate a "working directory"
-* added get() and put() to SFTPClient, to emulate ftp whole-file transfers
-* added check() to SFTPFile (a file hashing protocol extension)
-* fixed Channels and SFTPFiles (among others) to auto-close when GC'd
-* fixed Channel.fileno() for Windows, this time really
-* don't log socket errors as "unknown exception"
-* some misc. backward-compatible API improvements (like allowing
- Transport.start_client() and start_server() to be called in a blocking way)
-
-v1.3.1 NIDORAN
-* added SFTPClient.close()
-* fixed up some outdated documentation
-* made SFTPClient.file() an alias for open()
-* added Transport.open_sftp_client() for convenience
-* refactored packetizing out of Transport
-* fixed bug (reported by alain s.) where connecting to a non-SSH host could
- cause paramiko to freeze up
-* fixed Channel.fileno() for Windows (again)
-* some more unit tests
-
-v1.3 MAROWAK
-* fixed a bug where packets larger than about 12KB would cause the session
- to die on all platforms except osx
-* added a potential workaround for windows to let Channel.fileno() (and
- therefore the select module) work!
-* changed API for subsystem handlers (sorry!) to pass more info and make it
- easier to write a functional SFTP server
-
-v1.2 LAPRAS
-* added SFTPClient.listdir_attr() for fetching a list of files and their
- attributes in one call
-* added Channel.recv_exit_status() and Channel.send_exit_status() for
- manipulating the exit status of a command from either client or server
- mode
-* moved check_global_request into ServerInterface, where it should've been
- all along (oops)
-* SFTPHandle's default implementations are fleshed out more
-* made logging a bit more consistent, and started logging thread ids
-* fixed a few race conditions, one of which would sometimes cause a Transport
- to fail to start on slow machines
-* more unit tests
-
-v1.1 KABUTO
-* server-side SFTP support
-* added support for stderr streams on client & server channels
-* added a new distinct exception for failed client authentication
- when caused by the server rejecting that *type* of auth
-* added support for multi-part authentication
-* fixed bug where get_username() wasn't working in server mode
-
-v1.0 JIGGLYPUFF
-* fixed bug that broke server-mode authentication by private key
-* fixed bug where closing a Channel could end up killing the entire
- Transport
-* actually include demo_windows.py this time (oops!)
-* fixed recently-introduced bug in group-exchange key negotiation that
- would generate the wrong hash (and therefore fail the initial handshake)
-* server-mode subsystem handler is a bit more flexible
-
-
-*** MISSING LINKS
-
-* host-based auth (yuck!)
-* SFTP implicit file locking?
-* ChannelException like the java version has
-* would be nice to have windows putty "pagent" support -- looks very hard
-
-* ctr forms of ciphers are missing (blowfish-ctr, aes128-ctr, aes256-ctr)
-* sftp protocol 6 support (ugh....) -- once it settles down more
-
-* make a simple example demonstrating use of SocketServer (besides forward.py?)
-
-* make a function to parse .ssh/config files:
- User, Hostname, Port, ProxyCommand, IdentityFile, HostKeyAlias
- ProxyCommand: %h = host, %p = port, "none" = disable
+
+which will verify that most of the core components are working correctly.
diff --git a/demo.py b/demos/demo.py
index a02e886..c8346ce 100644..100755
--- a/demo.py
+++ b/demos/demo.py
@@ -1,6 +1,6 @@
-#!/usr/bin/python
+#!/usr/bin/env python
-# Copyright (C) 2003-2005 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
#
# This file is part of paramiko.
#
@@ -19,38 +19,50 @@
# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
-# ----- WINDOWS USERS PLEASE NOTE -----
-# This demo won't work on Windows because it uses pseudo-terminals, which
-# are a posix-only feature. check out the README file for a simpler demo.
+import base64
+from binascii import hexlify
+import getpass
+import os
+import select
+import socket
+import sys
+import threading
+import time
+import traceback
-
-import sys, os, socket, threading, getpass, time, base64, select, termios, tty, traceback
import paramiko
+import interactive
-##### utility functions
-
-def agent_auth(username, t, event):
+def agent_auth(transport, username):
+ """
+ Attempt to authenticate to the given transport using any of the private
+ keys available from an SSH agent.
+ """
+
agent = paramiko.Agent()
agent_keys = agent.get_keys()
- if len(agent_keys) > 0:
- for key in agent_keys:
- print 'Trying ssh-agent key %s' % paramiko.util.hexify(key.get_fingerprint()),
- t.auth_publickey(username, key, event)
- event.wait(10)
- if t.is_authenticated():
- print '... success!'
- return
+ if len(agent_keys) == 0:
+ return
+
+ for key in agent_keys:
+ print 'Trying ssh-agent key %s' % hexlify(key.get_fingerprint()),
+ try:
+ transport.auth_publickey(username, key)
+ print '... success!'
+ return
+ except paramiko.SSHException:
print '... nope.'
-def manual_auth(username, hostname, event):
+
+def manual_auth(username, hostname):
default_auth = 'p'
auth = raw_input('Auth by (p)assword, (r)sa key, or (d)ss key? [%s] ' % default_auth)
if len(auth) == 0:
auth = default_auth
if auth == 'r':
- default_path = os.environ['HOME'] + '/.ssh/id_rsa'
+ default_path = os.path.join(os.environ['HOME'], '.ssh', 'id_rsa')
path = raw_input('RSA key [%s]: ' % default_path)
if len(path) == 0:
path = default_path
@@ -59,9 +71,9 @@ def manual_auth(username, hostname, event):
except paramiko.PasswordRequiredException:
password = getpass.getpass('RSA key password: ')
key = paramiko.RSAKey.from_private_key_file(path, password)
- t.auth_publickey(username, key, event)
+ t.auth_publickey(username, key)
elif auth == 'd':
- default_path = os.environ['HOME'] + '/.ssh/id_dsa'
+ default_path = os.path.join(os.environ['HOME'], '.ssh', 'id_dsa')
path = raw_input('DSS key [%s]: ' % default_path)
if len(path) == 0:
path = default_path
@@ -70,18 +82,15 @@ def manual_auth(username, hostname, event):
except paramiko.PasswordRequiredException:
password = getpass.getpass('DSS key password: ')
key = paramiko.DSSKey.from_private_key_file(path, password)
- t.auth_publickey(username, key, event)
+ t.auth_publickey(username, key)
else:
pw = getpass.getpass('Password for %s@%s: ' % (username, hostname))
- t.auth_password(username, pw, event)
-
+ t.auth_password(username, pw)
-##### main demo
# setup logging
paramiko.util.log_to_file('demo.log')
-
username = ''
if len(sys.argv) > 1:
hostname = sys.argv[1]
@@ -107,15 +116,12 @@ except Exception, e:
sys.exit(1)
try:
- event = threading.Event()
t = paramiko.Transport(sock)
- t.start_client(event)
- # print repr(t)
- event.wait(15)
- if not t.is_active():
+ try:
+ t.start_client()
+ except paramiko.SSHException:
print '*** SSH negotiation failed.'
sys.exit(1)
- # print repr(t)
try:
keys = paramiko.util.load_host_keys(os.path.expanduser('~/.ssh/known_hosts'))
@@ -126,6 +132,7 @@ try:
print '*** Unable to open host keys file'
keys = {}
+ # check server's host key -- this is important.
key = t.get_remote_server_key()
if not keys.has_key(hostname):
print '*** WARNING: Unknown host key!'
@@ -137,8 +144,6 @@ try:
else:
print '*** Host key OK.'
- event.clear()
-
# get username
if username == '':
default_username = getpass.getuser()
@@ -146,14 +151,9 @@ try:
if len(username) == 0:
username = default_username
- agent_auth(username, t, event)
-
- # ask for what kind of authentication to try
+ agent_auth(t, username)
if not t.is_authenticated():
- manual_auth(username, hostname, event)
-
- event.wait(10)
- # print repr(t)
+ manual_auth(username, hostname)
if not t.is_authenticated():
print '*** Authentication failed. :('
t.close()
@@ -164,38 +164,7 @@ try:
chan.invoke_shell()
print '*** Here we go!'
print
-
- try:
- oldtty = termios.tcgetattr(sys.stdin)
- tty.setraw(sys.stdin.fileno())
- tty.setcbreak(sys.stdin.fileno())
- chan.settimeout(0.0)
-
- while 1:
- r, w, e = select.select([chan, sys.stdin], [], [])
- if chan in r:
- try:
- x = chan.recv(1024)
- if len(x) == 0:
- print
- print '*** EOF\r\n',
- break
- sys.stdout.write(x)
- sys.stdout.flush()
- except socket.timeout:
- pass
- if sys.stdin in r:
- # FIXME: reading 1 byte at a time is incredibly dumb.
- x = sys.stdin.read(1)
- if len(x) == 0:
- print
- print '*** Bye.\r\n',
- break
- chan.send(x)
-
- finally:
- termios.tcsetattr(sys.stdin, termios.TCSADRAIN, oldtty)
-
+ interactive.interactive_shell(chan)
chan.close()
t.close()
@@ -208,3 +177,4 @@ except Exception, e:
pass
sys.exit(1)
+
diff --git a/demo_server.py b/demos/demo_server.py
index 599eb46..e7b0e61 100644..100755
--- a/demo_server.py
+++ b/demos/demo_server.py
@@ -1,6 +1,6 @@
-#!/usr/bin/python
+#!/usr/bin/env python
-# Copyright (C) 2003-2005 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
#
# This file is part of paramiko.
#
@@ -18,21 +18,33 @@
# along with Paramiko; if not, write to the Free Software Foundation, Inc.,
# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
-import sys, os, socket, threading, traceback, base64
+import base64
+from binascii import hexlify
+import os
+import socket
+import sys
+import threading
+import traceback
+
import paramiko
+
# setup logging
paramiko.util.log_to_file('demo_server.log')
-#host_key = paramiko.RSAKey(filename='tests/test_rsa.key')
-host_key = paramiko.DSSKey(filename='tests/test_dss.key')
+host_key = paramiko.RSAKey(filename='test_rsa.key')
+#host_key = paramiko.DSSKey(filename='test_dss.key')
-print 'Read key: ' + paramiko.util.hexify(host_key.get_fingerprint())
+print 'Read key: ' + hexlify(host_key.get_fingerprint())
class Server (paramiko.ServerInterface):
# 'data' is the output of base64.encodestring(str(key))
- data = 'AAAAB3NzaC1yc2EAAAABIwAAAIEAyO4it3fHlmGZWJaGrfeHOVY7RWO3P9M7hpfAu7jJ2d7eothvfeuoRFtJwhUmZDluRdFyhFY/hFAh76PJKGAusIqIQKlkJxMCKDqIexkgHAfID/6mqvmnSJf0b5W8v5h2pI/stOSwTQ+pxVhwJ9ctYDhRSlF0iTUWT10hcuO4Ks8='
+ # (using the "user_rsa_key" files)
+ data = 'AAAAB3NzaC1yc2EAAAABIwAAAIEAyO4it3fHlmGZWJaGrfeHOVY7RWO3P9M7hp' + \
+ 'fAu7jJ2d7eothvfeuoRFtJwhUmZDluRdFyhFY/hFAh76PJKGAusIqIQKlkJxMC' + \
+ 'KDqIexkgHAfID/6mqvmnSJf0b5W8v5h2pI/stOSwTQ+pxVhwJ9ctYDhRSlF0iT' + \
+ 'UWT10hcuO4Ks8='
good_pub_key = paramiko.RSAKey(data=base64.decodestring(data))
def __init__(self):
@@ -49,7 +61,7 @@ class Server (paramiko.ServerInterface):
return paramiko.AUTH_FAILED
def check_auth_publickey(self, username, key):
- print 'Auth attempt with key: ' + paramiko.util.hexify(key.get_fingerprint())
+ print 'Auth attempt with key: ' + hexlify(key.get_fingerprint())
if (username == 'robey') and (key == self.good_pub_key):
return paramiko.AUTH_SUCCESSFUL
return paramiko.AUTH_FAILED
@@ -88,7 +100,6 @@ except Exception, e:
print 'Got a connection!'
try:
- event = threading.Event()
t = paramiko.Transport(client)
try:
t.load_server_moduli()
@@ -97,15 +108,11 @@ try:
raise
t.add_server_key(host_key)
server = Server()
- t.start_server(event, server)
- while 1:
- event.wait(0.1)
- if not t.is_active():
- print '*** SSH negotiation failed.'
- sys.exit(1)
- if event.isSet():
- break
- # print repr(t)
+ try:
+ t.start_server(server=server)
+ except paramiko.SSHException, x:
+ print '*** SSH negotiation failed.'
+ sys.exit(1)
# wait for auth
chan = t.accept(20)
@@ -113,6 +120,7 @@ try:
print '*** No channel.'
sys.exit(1)
print 'Authenticated!'
+
server.event.wait(10)
if not server.event.isSet():
print '*** Client never asked for a shell.'
diff --git a/demos/demo_sftp.py b/demos/demo_sftp.py
new file mode 100755
index 0000000..a823fb3
--- /dev/null
+++ b/demos/demo_sftp.py
@@ -0,0 +1,119 @@
+#!/usr/bin/env python
+
+# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
+#
+# This file is part of paramiko.
+#
+# Paramiko is free software; you can redistribute it and/or modify it under the
+# terms of the GNU Lesser General Public License as published by the Free
+# Software Foundation; either version 2.1 of the License, or (at your option)
+# any later version.
+#
+# Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+# A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+# details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with Paramiko; if not, write to the Free Software Foundation, Inc.,
+# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+
+# based on code provided by raymond mosteller (thanks!)
+
+import base64
+import getpass
+import os
+import socket
+import sys
+import traceback
+
+import paramiko
+
+
+# setup logging
+paramiko.util.log_to_file('demo_sftp.log')
+
+# get hostname
+username = ''
+if len(sys.argv) > 1:
+ hostname = sys.argv[1]
+ if hostname.find('@') >= 0:
+ username, hostname = hostname.split('@')
+else:
+ hostname = raw_input('Hostname: ')
+if len(hostname) == 0:
+ print '*** Hostname required.'
+ sys.exit(1)
+port = 22
+if hostname.find(':') >= 0:
+ hostname, portstr = hostname.split(':')
+ port = int(portstr)
+
+
+# get username
+if username == '':
+ default_username = getpass.getuser()
+ username = raw_input('Username [%s]: ' % default_username)
+ if len(username) == 0:
+ username = default_username
+password = getpass.getpass('Password for %s@%s: ' % (username, hostname))
+
+
+# get host key, if we know one
+hostkeytype = None
+hostkey = None
+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)
+ sftp = paramiko.SFTPClient.from_transport(t)
+
+ # dirlist on remote host
+ dirlist = sftp.listdir('.')
+ print "Dirlist:", dirlist
+
+ # copy this demo onto the server
+ try:
+ sftp.mkdir("demo_sftp_folder")
+ except IOError:
+ print '(assuming demo_sftp_folder/ already exists)'
+ sftp.open('demo_sftp_folder/README', 'w').write('This was created by demo_sftp.py.\n')
+ data = open('demo_sftp.py', 'r').read()
+ sftp.open('demo_sftp_folder/demo_sftp.py', 'w').write(data)
+ print 'created demo_sftp_folder/ on the server'
+
+ # copy the README back here
+ data = sftp.open('demo_sftp_folder/README', 'r').read()
+ open('README_demo_sftp', 'w').write(data)
+ print 'copied README back here'
+
+ # BETTER: use the get() and put() methods
+ sftp.put('demo_sftp.py', 'demo_sftp_folder/demo_sftp.py')
+ sftp.get('demo_sftp_folder/README', 'README_demo_sftp')
+
+ t.close()
+
+except Exception, e:
+ print '*** Caught exception: %s: %s' % (e.__class__, e)
+ traceback.print_exc()
+ try:
+ t.close()
+ except:
+ pass
+ sys.exit(1)
diff --git a/demo_simple.py b/demos/demo_simple.py
index 655a1a4..5bcc214 100644..100755
--- a/demo_simple.py
+++ b/demos/demo_simple.py
@@ -1,6 +1,6 @@
-#!/usr/bin/python
+#!/usr/bin/env python
-# Copyright (C) 2003-2005 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
#
# This file is part of paramiko.
#
@@ -19,13 +19,15 @@
# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
-# ----- WINDOWS USERS PLEASE NOTE -----
-# This demo won't work on Windows because it uses pseudo-terminals, which
-# are a posix-only feature. check out the README file for a simpler demo.
+import base64
+import getpass
+import os
+import socket
+import sys
+import traceback
-
-import sys, os, base64, getpass, socket, traceback, termios, tty, select
import paramiko
+import interactive
# setup logging
@@ -61,17 +63,18 @@ password = getpass.getpass('Password for %s@%s: ' % (username, hostname))
hostkeytype = None
hostkey = None
try:
- hkeys = paramiko.util.load_host_keys(os.path.expanduser('~/.ssh/known_hosts'))
+ host_keys = paramiko.util.load_host_keys(os.path.expanduser('~/.ssh/known_hosts'))
except IOError:
try:
- hkeys = paramiko.util.load_host_keys(os.path.expanduser('~/ssh/known_hosts'))
+ # 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'
- hkeys = {}
+ host_keys = {}
-if hkeys.has_key(hostname):
- hostkeytype = hkeys[hostname].keys()[0]
- hostkey = hkeys[hostname][hostkeytype]
+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
@@ -84,37 +87,7 @@ try:
chan.invoke_shell()
print '*** Here we go!'
print
-
- try:
- oldtty = termios.tcgetattr(sys.stdin)
- tty.setraw(sys.stdin.fileno())
- tty.setcbreak(sys.stdin.fileno())
- chan.settimeout(0.0)
-
- while True:
- r, w, e = select.select([chan, sys.stdin], [], [])
- if chan in r:
- try:
- x = chan.recv(1024)
- if len(x) == 0:
- print '\r\n*** EOF\r\n',
- break
- sys.stdout.write(x)
- sys.stdout.flush()
- except socket.timeout:
- pass
- if sys.stdin in r:
- # FIXME: reading 1 byte at a time is incredibly dumb.
- x = sys.stdin.read(1)
- if len(x) == 0:
- print
- print '*** Bye.\r\n',
- break
- chan.send(x)
-
- finally:
- termios.tcsetattr(sys.stdin, termios.TCSADRAIN, oldtty)
-
+ interactive.interactive_shell(chan)
chan.close()
t.close()
diff --git a/demos/forward.py b/demos/forward.py
new file mode 100755
index 0000000..33c98ab
--- /dev/null
+++ b/demos/forward.py
@@ -0,0 +1,180 @@
+#!/usr/bin/env python
+
+# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
+#
+# This file is part of paramiko.
+#
+# Paramiko is free software; you can redistribute it and/or modify it under the
+# terms of the GNU Lesser General Public License as published by the Free
+# Software Foundation; either version 2.1 of the License, or (at your option)
+# any later version.
+#
+# Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+# A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+# details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with Paramiko; if not, write to the Free Software Foundation, Inc.,
+# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+
+"""
+Sample script showing how to do local port forwarding over paramiko.
+
+This script connects to the requested SSH server and sets up local port
+forwarding (the openssh -L option) from a local port through a tunneled
+connection to a destination reachable from the SSH server machine.
+"""
+
+import getpass
+import os
+import socket
+import select
+import SocketServer
+import sys
+from optparse import OptionParser
+
+import paramiko
+
+SSH_PORT = 22
+DEFAULT_PORT = 4000
+
+g_verbose = True
+
+
+class ForwardServer (SocketServer.ThreadingTCPServer):
+ daemon_threads = True
+ allow_reuse_address = True
+
+
+class Handler (SocketServer.BaseRequestHandler):
+
+ def handle(self):
+ try:
+ chan = self.ssh_transport.open_channel('direct-tcpip',
+ (self.chain_host, self.chain_port),
+ self.request.getpeername())
+ except Exception, e:
+ verbose('Incoming request to %s:%d failed: %s' % (self.chain_host,
+ self.chain_port,
+ repr(e)))
+ return
+ if chan is None:
+ verbose('Incoming request to %s:%d was rejected by the SSH server.' %
+ (self.chain_host, self.chain_port))
+ return
+
+ verbose('Connected! Tunnel open %r -> %r -> %r' % (self.request.getpeername(),
+ chan.getpeername(), (self.chain_host, self.chain_port)))
+ while True:
+ r, w, x = select.select([self.request, chan], [], [])
+ if self.request in r:
+ data = self.request.recv(1024)
+ if len(data) == 0:
+ break
+ chan.send(data)
+ if chan in r:
+ data = chan.recv(1024)
+ if len(data) == 0:
+ break
+ self.request.send(data)
+ chan.close()
+ self.request.close()
+ verbose('Tunnel closed from %r' % (self.request.getpeername(),))
+
+
+def forward_tunnel(local_port, remote_host, remote_port, transport):
+ # this is a little convoluted, but lets me configure things for the Handler
+ # object. (SocketServer doesn't give Handlers any way to access the outer
+ # server normally.)
+ class SubHander (Handler):
+ chain_host = remote_host
+ chain_port = remote_port
+ ssh_transport = transport
+ ForwardServer(('', local_port), SubHander).serve_forever()
+
+
+def verbose(s):
+ if g_verbose:
+ print s
+
+
+HELP = """\
+Set up a forward tunnel across an SSH server, using paramiko. A local port
+(given with -p) is forwarded across an SSH session to an address:port from
+the SSH server. This is similar to the openssh -L option.
+"""
+
+
+def get_host_port(spec, default_port):
+ "parse 'hostname:22' into a host and port, with the port optional"
+ args = (spec.split(':', 1) + [default_port])[:2]
+ args[1] = int(args[1])
+ return args[0], args[1]
+
+
+def parse_options():
+ global g_verbose
+
+ parser = OptionParser(usage='usage: %prog [options] <ssh-server>[:<server-port>]',
+ version='%prog 1.0', description=HELP)
+ parser.add_option('-q', '--quiet', action='store_false', dest='verbose', default=True,
+ help='squelch all informational output')
+ parser.add_option('-p', '--local-port', action='store', type='int', dest='port',
+ default=DEFAULT_PORT,
+ help='local port to forward (default: %d)' % DEFAULT_PORT)
+ parser.add_option('-u', '--user', action='store', type='string', dest='user',
+ default=getpass.getuser(),
+ help='username for SSH authentication (default: %s)' % getpass.getuser())
+ parser.add_option('-K', '--key', action='store', type='string', dest='keyfile',
+ default=None,
+ help='private key file to use for SSH authentication')
+ parser.add_option('', '--no-key', action='store_false', dest='look_for_keys', default=True,
+ help='don\'t look for or use a private key file')
+ parser.add_option('-P', '--password', action='store_true', dest='readpass', default=False,
+ help='read password (for key or password auth) from stdin')
+ parser.add_option('-r', '--remote', action='store', type='string', dest='remote', default=None, metavar='host:port',
+ help='remote host and port to forward to')
+ options, args = parser.parse_args()
+
+ if len(args) != 1:
+ parser.error('Incorrect number of arguments.')
+ if options.remote is None:
+ parser.error('Remote address required (-r).')
+
+ g_verbose = options.verbose
+ server_host, server_port = get_host_port(args[0], SSH_PORT)
+ remote_host, remote_port = get_host_port(options.remote, SSH_PORT)
+ return options, (server_host, server_port), (remote_host, remote_port)
+
+
+def main():
+ options, server, remote = parse_options()
+
+ password = None
+ if options.readpass:
+ password = getpass.getpass('Enter SSH password: ')
+
+ client = paramiko.SSHClient()
+ client.load_system_host_keys()
+ client.set_missing_host_key_policy(paramiko.WarningPolicy())
+
+ verbose('Connecting to ssh host %s:%d ...' % (server[0], server[1]))
+ try:
+ client.connect(server[0], server[1], username=options.user, key_filename=options.keyfile,
+ look_for_keys=options.look_for_keys, password=password)
+ except Exception, e:
+ print '*** Failed to connect to %s:%d: %r' % (server[0], server[1], e)
+ sys.exit(1)
+
+ verbose('Now forwarding port %d to %s:%d ...' % (options.port, remote[0], remote[1]))
+
+ try:
+ forward_tunnel(options.port, remote[0], remote[1], client.get_transport())
+ except KeyboardInterrupt:
+ print 'C-c: Port forwarding stopped.'
+ sys.exit(0)
+
+
+if __name__ == '__main__':
+ main()
diff --git a/demos/interactive.py b/demos/interactive.py
new file mode 100644
index 0000000..b80e661
--- /dev/null
+++ b/demos/interactive.py
@@ -0,0 +1,97 @@
+# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
+#
+# This file is part of paramiko.
+#
+# Paramiko is free software; you can redistribute it and/or modify it under the
+# terms of the GNU Lesser General Public License as published by the Free
+# Software Foundation; either version 2.1 of the License, or (at your option)
+# any later version.
+#
+# Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+# A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+# details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with Paramiko; if not, write to the Free Software Foundation, Inc.,
+# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+
+
+import socket
+import sys
+
+# windows does not have termios...
+try:
+ import termios
+ import tty
+ has_termios = True
+except ImportError:
+ has_termios = False
+
+
+def interactive_shell(chan):
+ if has_termios:
+ posix_shell(chan)
+ else:
+ windows_shell(chan)
+
+
+def posix_shell(chan):
+ import select
+
+ oldtty = termios.tcgetattr(sys.stdin)
+ try:
+ tty.setraw(sys.stdin.fileno())
+ tty.setcbreak(sys.stdin.fileno())
+ chan.settimeout(0.0)
+
+ while True:
+ r, w, e = select.select([chan, sys.stdin], [], [])
+ if chan in r:
+ try:
+ x = chan.recv(1024)
+ if len(x) == 0:
+ print '\r\n*** EOF\r\n',
+ break
+ sys.stdout.write(x)
+ sys.stdout.flush()
+ except socket.timeout:
+ pass
+ if sys.stdin in r:
+ x = sys.stdin.read(1)
+ if len(x) == 0:
+ break
+ chan.send(x)
+
+ finally:
+ termios.tcsetattr(sys.stdin, termios.TCSADRAIN, oldtty)
+
+
+# thanks to Mike Looijmans for this code
+def windows_shell(chan):
+ import threading
+
+ sys.stdout.write("Line-buffered terminal emulation. Press F6 or ^Z to send EOF.\r\n\r\n")
+
+ def writeall(sock):
+ while True:
+ data = sock.recv(256)
+ if not data:
+ sys.stdout.write('\r\n*** EOF ***\r\n\r\n')
+ sys.stdout.flush()
+ break
+ sys.stdout.write(data)
+ sys.stdout.flush()
+
+ writer = threading.Thread(target=writeall, args=(chan,))
+ writer.start()
+
+ try:
+ while True:
+ d = sys.stdin.read(1)
+ if not d:
+ break
+ chan.send(d)
+ except EOFError:
+ # user hit ^Z or F6
+ pass
diff --git a/demos/rforward.py b/demos/rforward.py
new file mode 100755
index 0000000..810fea6
--- /dev/null
+++ b/demos/rforward.py
@@ -0,0 +1,167 @@
+#!/usr/bin/env python
+
+# Copyright (C) 2008 Robey Pointer <robey@lag.net>
+#
+# This file is part of paramiko.
+#
+# Paramiko is free software; you can redistribute it and/or modify it under the
+# terms of the GNU Lesser General Public License as published by the Free
+# Software Foundation; either version 2.1 of the License, or (at your option)
+# any later version.
+#
+# Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+# A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+# details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with Paramiko; if not, write to the Free Software Foundation, Inc.,
+# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+
+"""
+Sample script showing how to do remote port forwarding over paramiko.
+
+This script connects to the requested SSH server and sets up remote port
+forwarding (the openssh -R option) from a remote port through a tunneled
+connection to a destination reachable from the local machine.
+"""
+
+import getpass
+import os
+import socket
+import select
+import sys
+import threading
+from optparse import OptionParser
+
+import paramiko
+
+SSH_PORT = 22
+DEFAULT_PORT = 4000
+
+g_verbose = True
+
+
+def handler(chan, host, port):
+ sock = socket.socket()
+ try:
+ sock.connect((host, port))
+ except Exception, e:
+ verbose('Forwarding request to %s:%d failed: %r' % (host, port, e))
+ return
+
+ verbose('Connected! Tunnel open %r -> %r -> %r' % (chan.origin_addr,
+ chan.getpeername(), (host, port)))
+ while True:
+ r, w, x = select.select([sock, chan], [], [])
+ if sock in r:
+ data = sock.recv(1024)
+ if len(data) == 0:
+ break
+ chan.send(data)
+ if chan in r:
+ data = chan.recv(1024)
+ if len(data) == 0:
+ break
+ sock.send(data)
+ chan.close()
+ sock.close()
+ verbose('Tunnel closed from %r' % (chan.origin_addr,))
+
+
+def reverse_forward_tunnel(server_port, remote_host, remote_port, transport):
+ transport.request_port_forward('', server_port)
+ while True:
+ chan = transport.accept(1000)
+ if chan is None:
+ continue
+ thr = threading.Thread(target=handler, args=(chan, remote_host, remote_port))
+ thr.setDaemon(True)
+ thr.start()
+
+
+def verbose(s):
+ if g_verbose:
+ print s
+
+
+HELP = """\
+Set up a reverse forwarding tunnel across an SSH server, using paramiko. A
+port on the SSH server (given with -p) is forwarded across an SSH session
+back to the local machine, and out to a remote site reachable from this
+network. This is similar to the openssh -R option.
+"""
+
+
+def get_host_port(spec, default_port):
+ "parse 'hostname:22' into a host and port, with the port optional"
+ args = (spec.split(':', 1) + [default_port])[:2]
+ args[1] = int(args[1])
+ return args[0], args[1]
+
+
+def parse_options():
+ global g_verbose
+
+ parser = OptionParser(usage='usage: %prog [options] <ssh-server>[:<server-port>]',
+ version='%prog 1.0', description=HELP)
+ parser.add_option('-q', '--quiet', action='store_false', dest='verbose', default=True,
+ help='squelch all informational output')
+ parser.add_option('-p', '--remote-port', action='store', type='int', dest='port',
+ default=DEFAULT_PORT,
+ help='port on server to forward (default: %d)' % DEFAULT_PORT)
+ parser.add_option('-u', '--user', action='store', type='string', dest='user',
+ default=getpass.getuser(),
+ help='username for SSH authentication (default: %s)' % getpass.getuser())
+ parser.add_option('-K', '--key', action='store', type='string', dest='keyfile',
+ default=None,
+ help='private key file to use for SSH authentication')
+ parser.add_option('', '--no-key', action='store_false', dest='look_for_keys', default=True,
+ help='don\'t look for or use a private key file')
+ parser.add_option('-P', '--password', action='store_true', dest='readpass', default=False,
+ help='read password (for key or password auth) from stdin')
+ parser.add_option('-r', '--remote', action='store', type='string', dest='remote', default=None, metavar='host:port',
+ help='remote host and port to forward to')
+ options, args = parser.parse_args()
+
+ if len(args) != 1:
+ parser.error('Incorrect number of arguments.')
+ if options.remote is None:
+ parser.error('Remote address required (-r).')
+
+ g_verbose = options.verbose
+ server_host, server_port = get_host_port(args[0], SSH_PORT)
+ remote_host, remote_port = get_host_port(options.remote, SSH_PORT)
+ return options, (server_host, server_port), (remote_host, remote_port)
+
+
+def main():
+ options, server, remote = parse_options()
+
+ password = None
+ if options.readpass:
+ password = getpass.getpass('Enter SSH password: ')
+
+ client = paramiko.SSHClient()
+ client.load_system_host_keys()
+ client.set_missing_host_key_policy(paramiko.WarningPolicy())
+
+ verbose('Connecting to ssh host %s:%d ...' % (server[0], server[1]))
+ try:
+ client.connect(server[0], server[1], username=options.user, key_filename=options.keyfile,
+ look_for_keys=options.look_for_keys, password=password)
+ except Exception, e:
+ print '*** Failed to connect to %s:%d: %r' % (server[0], server[1], e)
+ sys.exit(1)
+
+ verbose('Now forwarding remote port %d to %s:%d ...' % (options.port, remote[0], remote[1]))
+
+ try:
+ reverse_forward_tunnel(options.port, remote[0], remote[1], client.get_transport())
+ except KeyboardInterrupt:
+ print 'C-c: Port forwarding stopped.'
+ sys.exit(0)
+
+
+if __name__ == '__main__':
+ main()
diff --git a/demos/test_rsa.key b/demos/test_rsa.key
new file mode 100644
index 0000000..f50e9c5
--- /dev/null
+++ b/demos/test_rsa.key
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICWgIBAAKBgQDTj1bqB4WmayWNPB+8jVSYpZYk80Ujvj680pOTh2bORBjbIAyz
+oWGW+GUjzKxTiiPvVmxFgx5wdsFvF03v34lEVVhMpouqPAYQ15N37K/ir5XY+9m/
+d8ufMCkjeXsQkKqFbAlQcnWMCRnOoPHS3I4vi6hmnDDeeYTSRvfLbW0fhwIBIwKB
+gBIiOqZYaoqbeD9OS9z2K9KR2atlTxGxOJPXiP4ESqP3NVScWNwyZ3NXHpyrJLa0
+EbVtzsQhLn6rF+TzXnOlcipFvjsem3iYzCpuChfGQ6SovTcOjHV9z+hnpXvQ/fon
+soVRZY65wKnF7IAoUwTmJS9opqgrN6kRgCd3DASAMd1bAkEA96SBVWFt/fJBNJ9H
+tYnBKZGw0VeHOYmVYbvMSstssn8un+pQpUm9vlG/bp7Oxd/m+b9KWEh2xPfv6zqU
+avNwHwJBANqzGZa/EpzF4J8pGti7oIAPUIDGMtfIcmqNXVMckrmzQ2vTfqtkEZsA
+4rE1IERRyiJQx6EJsz21wJmGV9WJQ5kCQQDwkS0uXqVdFzgHO6S++tjmjYcxwr3g
+H0CoFYSgbddOT6miqRskOQF3DZVkJT3kyuBgU2zKygz52ukQZMqxCb1fAkASvuTv
+qfpH87Qq5kQhNKdbbwbmd2NxlNabazPijWuphGTdW0VfJdWfklyS2Kr+iqrs/5wV
+HhathJt636Eg7oIjAkA8ht3MQ+XSl9yIJIS8gVpbPxSw5OMfw0PjVE7tBdQruiSc
+nvuQES5C9BMHjF39LZiGH1iLQy7FgdHyoP+eodI7
+-----END RSA PRIVATE KEY-----
diff --git a/demos/user_rsa_key b/demos/user_rsa_key
new file mode 100644
index 0000000..ee64f23
--- /dev/null
+++ b/demos/user_rsa_key
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQDI7iK3d8eWYZlYloat94c5VjtFY7c/0zuGl8C7uMnZ3t6i2G99
+66hEW0nCFSZkOW5F0XKEVj+EUCHvo8koYC6wiohAqWQnEwIoOoh7GSAcB8gP/qaq
++adIl/Rvlby/mHakj+y05LBND6nFWHAn1y1gOFFKUXSJNRZPXSFy47gqzwIBIwKB
+gQCbANjz7q/pCXZLp1Hz6tYHqOvlEmjK1iabB1oqafrMpJ0eibUX/u+FMHq6StR5
+M5413BaDWHokPdEJUnabfWXXR3SMlBUKrck0eAer1O8m78yxu3OEdpRk+znVo4DL
+guMeCdJB/qcF0kEsx+Q8HP42MZU1oCmk3PbfXNFwaHbWuwJBAOQ/ry/hLD7AqB8x
+DmCM82A9E59ICNNlHOhxpJoh6nrNTPCsBAEu/SmqrL8mS6gmbRKUaya5Lx1pkxj2
+s/kWOokCQQDhXCcYXjjWiIfxhl6Rlgkk1vmI0l6785XSJNv4P7pXjGmShXfIzroh
+S8uWK3tL0GELY7+UAKDTUEVjjQdGxYSXAkEA3bo1JzKCwJ3lJZ1ebGuqmADRO6UP
+40xH977aadfN1mEI6cusHmgpISl0nG5YH7BMsvaT+bs1FUH8m+hXDzoqOwJBAK3Z
+X/za+KV/REya2z0b+GzgWhkXUGUa/owrEBdHGriQ47osclkUgPUdNqcLmaDilAF4
+1Z4PHPrI5RJIONAx+JECQQC/fChqjBgFpk6iJ+BOdSexQpgfxH/u/457W10Y43HR
+soS+8btbHqjQkowQ/2NTlUfWvqIlfxs6ZbFsIp/HrhZL
+-----END RSA PRIVATE KEY-----
diff --git a/demos/user_rsa_key.pub b/demos/user_rsa_key.pub
new file mode 100644
index 0000000..ac722f1
--- /dev/null
+++ b/demos/user_rsa_key.pub
@@ -0,0 +1 @@
+ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAyO4it3fHlmGZWJaGrfeHOVY7RWO3P9M7hpfAu7jJ2d7eothvfeuoRFtJwhUmZDluRdFyhFY/hFAh76PJKGAusIqIQKlkJxMCKDqIexkgHAfID/6mqvmnSJf0b5W8v5h2pI/stOSwTQ+pxVhwJ9ctYDhRSlF0iTUWT10hcuO4Ks8= robey@ralph.lag.net
diff --git a/docs/api-objects.txt b/docs/api-objects.txt
new file mode 100644
index 0000000..5ef02ce
--- /dev/null
+++ b/docs/api-objects.txt
@@ -0,0 +1,2179 @@
+paramiko paramiko-module.html
+paramiko.__license__ paramiko-module.html#__license__
+paramiko.__version_info__ paramiko-module.html#__version_info__
+paramiko.__author__ paramiko-module.html#__author__
+paramiko.__version__ paramiko-module.html#__version__
+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.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
+paramiko.auth_handler.MSG_KEXINIT paramiko.auth_handler-module.html#MSG_KEXINIT
+paramiko.auth_handler.MSG_CHANNEL_WINDOW_ADJUST paramiko.auth_handler-module.html#MSG_CHANNEL_WINDOW_ADJUST
+paramiko.auth_handler.MSG_CHANNEL_REQUEST paramiko.auth_handler-module.html#MSG_CHANNEL_REQUEST
+paramiko.auth_handler.MSG_NAMES paramiko.auth_handler-module.html#MSG_NAMES
+paramiko.auth_handler.MSG_CHANNEL_OPEN paramiko.auth_handler-module.html#MSG_CHANNEL_OPEN
+paramiko.auth_handler.MSG_DISCONNECT paramiko.auth_handler-module.html#MSG_DISCONNECT
+paramiko.auth_handler.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE paramiko.auth_handler-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.auth_handler.MSG_SERVICE_ACCEPT paramiko.auth_handler-module.html#MSG_SERVICE_ACCEPT
+paramiko.auth_handler.MSG_IGNORE paramiko.auth_handler-module.html#MSG_IGNORE
+paramiko.auth_handler.WARNING paramiko.auth_handler-module.html#WARNING
+paramiko.auth_handler.MSG_GLOBAL_REQUEST paramiko.auth_handler-module.html#MSG_GLOBAL_REQUEST
+paramiko.auth_handler.MSG_USERAUTH_INFO_RESPONSE paramiko.auth_handler-module.html#MSG_USERAUTH_INFO_RESPONSE
+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.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
+paramiko.auth_handler.MSG_UNIMPLEMENTED paramiko.auth_handler-module.html#MSG_UNIMPLEMENTED
+paramiko.auth_handler.CRITICAL paramiko.auth_handler-module.html#CRITICAL
+paramiko.auth_handler.MSG_CHANNEL_OPEN_FAILURE paramiko.auth_handler-module.html#MSG_CHANNEL_OPEN_FAILURE
+paramiko.auth_handler.MSG_USERAUTH_INFO_REQUEST paramiko.auth_handler-module.html#MSG_USERAUTH_INFO_REQUEST
+paramiko.auth_handler.MSG_DEBUG paramiko.auth_handler-module.html#MSG_DEBUG
+paramiko.auth_handler.MSG_CHANNEL_FAILURE paramiko.auth_handler-module.html#MSG_CHANNEL_FAILURE
+paramiko.auth_handler.OPEN_SUCCEEDED paramiko.auth_handler-module.html#OPEN_SUCCEEDED
+paramiko.auth_handler.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE paramiko.auth_handler-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.auth_handler.OPEN_FAILED_RESOURCE_SHORTAGE paramiko.auth_handler-module.html#OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.auth_handler.ERROR paramiko.auth_handler-module.html#ERROR
+paramiko.auth_handler.DEBUG paramiko.auth_handler-module.html#DEBUG
+paramiko.auth_handler.MSG_REQUEST_SUCCESS paramiko.auth_handler-module.html#MSG_REQUEST_SUCCESS
+paramiko.auth_handler.OPEN_FAILED_CONNECT_FAILED paramiko.auth_handler-module.html#OPEN_FAILED_CONNECT_FAILED
+paramiko.auth_handler.INFO paramiko.auth_handler-module.html#INFO
+paramiko.auth_handler.MSG_USERAUTH_BANNER paramiko.auth_handler-module.html#MSG_USERAUTH_BANNER
+paramiko.auth_handler.MSG_NEWKEYS paramiko.auth_handler-module.html#MSG_NEWKEYS
+paramiko.auth_handler.MSG_USERAUTH_PK_OK paramiko.auth_handler-module.html#MSG_USERAUTH_PK_OK
+paramiko.auth_handler.MSG_USERAUTH_REQUEST paramiko.auth_handler-module.html#MSG_USERAUTH_REQUEST
+paramiko.auth_handler.DISCONNECT_SERVICE_NOT_AVAILABLE paramiko.auth_handler-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.auth_handler.PY22 paramiko.auth_handler-module.html#PY22
+paramiko.auth_handler.MSG_SERVICE_REQUEST paramiko.auth_handler-module.html#MSG_SERVICE_REQUEST
+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.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.buffered_pipe paramiko.buffered_pipe-module.html
+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
+paramiko.channel.MSG_CHANNEL_WINDOW_ADJUST paramiko.channel-module.html#MSG_CHANNEL_WINDOW_ADJUST
+paramiko.channel.MSG_NAMES paramiko.channel-module.html#MSG_NAMES
+paramiko.channel.MSG_CHANNEL_OPEN paramiko.channel-module.html#MSG_CHANNEL_OPEN
+paramiko.channel.MSG_REQUEST_SUCCESS paramiko.channel-module.html#MSG_REQUEST_SUCCESS
+paramiko.channel.MSG_DISCONNECT paramiko.channel-module.html#MSG_DISCONNECT
+paramiko.channel.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE paramiko.channel-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.channel.MSG_SERVICE_ACCEPT paramiko.channel-module.html#MSG_SERVICE_ACCEPT
+paramiko.channel.WARNING paramiko.channel-module.html#WARNING
+paramiko.channel.MSG_GLOBAL_REQUEST paramiko.channel-module.html#MSG_GLOBAL_REQUEST
+paramiko.channel.MSG_USERAUTH_INFO_RESPONSE paramiko.channel-module.html#MSG_USERAUTH_INFO_RESPONSE
+paramiko.channel.AUTH_FAILED paramiko.channel-module.html#AUTH_FAILED
+paramiko.channel.MSG_CHANNEL_SUCCESS paramiko.channel-module.html#MSG_CHANNEL_SUCCESS
+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.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
+paramiko.channel.MSG_UNIMPLEMENTED paramiko.channel-module.html#MSG_UNIMPLEMENTED
+paramiko.channel.MSG_CHANNEL_REQUEST paramiko.channel-module.html#MSG_CHANNEL_REQUEST
+paramiko.channel.MSG_CHANNEL_OPEN_FAILURE paramiko.channel-module.html#MSG_CHANNEL_OPEN_FAILURE
+paramiko.channel.MSG_USERAUTH_INFO_REQUEST paramiko.channel-module.html#MSG_USERAUTH_INFO_REQUEST
+paramiko.channel.MSG_DEBUG paramiko.channel-module.html#MSG_DEBUG
+paramiko.channel.MSG_CHANNEL_FAILURE paramiko.channel-module.html#MSG_CHANNEL_FAILURE
+paramiko.channel.OPEN_SUCCEEDED paramiko.channel-module.html#OPEN_SUCCEEDED
+paramiko.channel.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE paramiko.channel-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.channel.OPEN_FAILED_RESOURCE_SHORTAGE paramiko.channel-module.html#OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.channel.ERROR paramiko.channel-module.html#ERROR
+paramiko.channel.DEBUG paramiko.channel-module.html#DEBUG
+paramiko.channel.AUTH_PARTIALLY_SUCCESSFUL paramiko.channel-module.html#AUTH_PARTIALLY_SUCCESSFUL
+paramiko.channel.OPEN_FAILED_CONNECT_FAILED paramiko.channel-module.html#OPEN_FAILED_CONNECT_FAILED
+paramiko.channel.INFO paramiko.channel-module.html#INFO
+paramiko.channel.MSG_USERAUTH_BANNER paramiko.channel-module.html#MSG_USERAUTH_BANNER
+paramiko.channel.MSG_NEWKEYS paramiko.channel-module.html#MSG_NEWKEYS
+paramiko.channel.MSG_USERAUTH_PK_OK paramiko.channel-module.html#MSG_USERAUTH_PK_OK
+paramiko.channel.MSG_USERAUTH_REQUEST paramiko.channel-module.html#MSG_USERAUTH_REQUEST
+paramiko.channel.DISCONNECT_SERVICE_NOT_AVAILABLE paramiko.channel-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.channel.MIN_PACKET_SIZE paramiko.channel-module.html#MIN_PACKET_SIZE
+paramiko.channel.PY22 paramiko.channel-module.html#PY22
+paramiko.channel.MSG_SERVICE_REQUEST paramiko.channel-module.html#MSG_SERVICE_REQUEST
+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.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
+paramiko.channel.CONNECTION_FAILED_CODE paramiko.channel-module.html#CONNECTION_FAILED_CODE
+paramiko.client paramiko.client-module.html
+paramiko.client.AUTH_SUCCESSFUL paramiko.client-module.html#AUTH_SUCCESSFUL
+paramiko.client.MSG_CHANNEL_OPEN_FAILURE paramiko.client-module.html#MSG_CHANNEL_OPEN_FAILURE
+paramiko.client.MSG_CHANNEL_WINDOW_ADJUST paramiko.client-module.html#MSG_CHANNEL_WINDOW_ADJUST
+paramiko.client.MSG_CHANNEL_REQUEST paramiko.client-module.html#MSG_CHANNEL_REQUEST
+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.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.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
+paramiko.client.MSG_CHANNEL_SUCCESS paramiko.client-module.html#MSG_CHANNEL_SUCCESS
+paramiko.client.MSG_USERAUTH_FAILURE paramiko.client-module.html#MSG_USERAUTH_FAILURE
+paramiko.client.MSG_KEXINIT paramiko.client-module.html#MSG_KEXINIT
+paramiko.client.MSG_CHANNEL_DATA paramiko.client-module.html#MSG_CHANNEL_DATA
+paramiko.client.AUTH_PARTIALLY_SUCCESSFUL paramiko.client-module.html#AUTH_PARTIALLY_SUCCESSFUL
+paramiko.client.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED paramiko.client-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.client.MSG_UNIMPLEMENTED paramiko.client-module.html#MSG_UNIMPLEMENTED
+paramiko.client.CRITICAL paramiko.client-module.html#CRITICAL
+paramiko.client.MSG_USERAUTH_INFO_REQUEST paramiko.client-module.html#MSG_USERAUTH_INFO_REQUEST
+paramiko.client.MSG_DEBUG paramiko.client-module.html#MSG_DEBUG
+paramiko.client.MSG_CHANNEL_FAILURE paramiko.client-module.html#MSG_CHANNEL_FAILURE
+paramiko.client.OPEN_SUCCEEDED paramiko.client-module.html#OPEN_SUCCEEDED
+paramiko.client.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE paramiko.client-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.client.OPEN_FAILED_RESOURCE_SHORTAGE paramiko.client-module.html#OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.client.ERROR paramiko.client-module.html#ERROR
+paramiko.client.DEBUG paramiko.client-module.html#DEBUG
+paramiko.client.MSG_USERAUTH_INFO_RESPONSE paramiko.client-module.html#MSG_USERAUTH_INFO_RESPONSE
+paramiko.client.MSG_REQUEST_SUCCESS paramiko.client-module.html#MSG_REQUEST_SUCCESS
+paramiko.client.OPEN_FAILED_CONNECT_FAILED paramiko.client-module.html#OPEN_FAILED_CONNECT_FAILED
+paramiko.client.INFO paramiko.client-module.html#INFO
+paramiko.client.MSG_USERAUTH_BANNER paramiko.client-module.html#MSG_USERAUTH_BANNER
+paramiko.client.MSG_NEWKEYS paramiko.client-module.html#MSG_NEWKEYS
+paramiko.client.MSG_USERAUTH_PK_OK paramiko.client-module.html#MSG_USERAUTH_PK_OK
+paramiko.client.MSG_USERAUTH_REQUEST paramiko.client-module.html#MSG_USERAUTH_REQUEST
+paramiko.client.DISCONNECT_SERVICE_NOT_AVAILABLE paramiko.client-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.client.PY22 paramiko.client-module.html#PY22
+paramiko.client.AUTH_FAILED paramiko.client-module.html#AUTH_FAILED
+paramiko.client.MSG_CHANNEL_EXTENDED_DATA paramiko.client-module.html#MSG_CHANNEL_EXTENDED_DATA
+paramiko.client.MSG_CHANNEL_CLOSE paramiko.client-module.html#MSG_CHANNEL_CLOSE
+paramiko.client.DISCONNECT_AUTH_CANCELLED_BY_USER paramiko.client-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER
+paramiko.client.randpool paramiko.client-module.html#randpool
+paramiko.client.MSG_CHANNEL_OPEN_SUCCESS paramiko.client-module.html#MSG_CHANNEL_OPEN_SUCCESS
+paramiko.client.MSG_CHANNEL_EOF paramiko.client-module.html#MSG_CHANNEL_EOF
+paramiko.client.MSG_USERAUTH_SUCCESS paramiko.client-module.html#MSG_USERAUTH_SUCCESS
+paramiko.client.CONNECTION_FAILED_CODE paramiko.client-module.html#CONNECTION_FAILED_CODE
+paramiko.common paramiko.common-module.html
+paramiko.common.AUTH_SUCCESSFUL paramiko.common-module.html#AUTH_SUCCESSFUL
+paramiko.common.MSG_KEXINIT paramiko.common-module.html#MSG_KEXINIT
+paramiko.common.MSG_CHANNEL_WINDOW_ADJUST paramiko.common-module.html#MSG_CHANNEL_WINDOW_ADJUST
+paramiko.common.MSG_CHANNEL_REQUEST paramiko.common-module.html#MSG_CHANNEL_REQUEST
+paramiko.common.MSG_NAMES paramiko.common-module.html#MSG_NAMES
+paramiko.common.MSG_CHANNEL_OPEN paramiko.common-module.html#MSG_CHANNEL_OPEN
+paramiko.common.MSG_REQUEST_SUCCESS paramiko.common-module.html#MSG_REQUEST_SUCCESS
+paramiko.common.MSG_DISCONNECT paramiko.common-module.html#MSG_DISCONNECT
+paramiko.common.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE paramiko.common-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.common.MSG_SERVICE_ACCEPT paramiko.common-module.html#MSG_SERVICE_ACCEPT
+paramiko.common.MSG_IGNORE paramiko.common-module.html#MSG_IGNORE
+paramiko.common.MSG_GLOBAL_REQUEST paramiko.common-module.html#MSG_GLOBAL_REQUEST
+paramiko.common.MSG_USERAUTH_INFO_RESPONSE paramiko.common-module.html#MSG_USERAUTH_INFO_RESPONSE
+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.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
+paramiko.common.MSG_UNIMPLEMENTED paramiko.common-module.html#MSG_UNIMPLEMENTED
+paramiko.common.MSG_CHANNEL_OPEN_FAILURE paramiko.common-module.html#MSG_CHANNEL_OPEN_FAILURE
+paramiko.common.MSG_USERAUTH_INFO_REQUEST paramiko.common-module.html#MSG_USERAUTH_INFO_REQUEST
+paramiko.common.MSG_DEBUG paramiko.common-module.html#MSG_DEBUG
+paramiko.common.MSG_CHANNEL_FAILURE paramiko.common-module.html#MSG_CHANNEL_FAILURE
+paramiko.common.OPEN_SUCCEEDED paramiko.common-module.html#OPEN_SUCCEEDED
+paramiko.common.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE paramiko.common-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.common.OPEN_FAILED_RESOURCE_SHORTAGE paramiko.common-module.html#OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.common.ERROR paramiko.common-module.html#ERROR
+paramiko.common.DEBUG paramiko.common-module.html#DEBUG
+paramiko.common.AUTH_PARTIALLY_SUCCESSFUL paramiko.common-module.html#AUTH_PARTIALLY_SUCCESSFUL
+paramiko.common.OPEN_FAILED_CONNECT_FAILED paramiko.common-module.html#OPEN_FAILED_CONNECT_FAILED
+paramiko.common.INFO paramiko.common-module.html#INFO
+paramiko.common.MSG_USERAUTH_BANNER paramiko.common-module.html#MSG_USERAUTH_BANNER
+paramiko.common.MSG_NEWKEYS paramiko.common-module.html#MSG_NEWKEYS
+paramiko.common.MSG_USERAUTH_PK_OK paramiko.common-module.html#MSG_USERAUTH_PK_OK
+paramiko.common.WARNING paramiko.common-module.html#WARNING
+paramiko.common.MSG_USERAUTH_REQUEST paramiko.common-module.html#MSG_USERAUTH_REQUEST
+paramiko.common.DISCONNECT_SERVICE_NOT_AVAILABLE paramiko.common-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.common.PY22 paramiko.common-module.html#PY22
+paramiko.common.MSG_SERVICE_REQUEST paramiko.common-module.html#MSG_SERVICE_REQUEST
+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.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.config paramiko.config-module.html
+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
+paramiko.dsskey.MSG_CHANNEL_WINDOW_ADJUST paramiko.dsskey-module.html#MSG_CHANNEL_WINDOW_ADJUST
+paramiko.dsskey.MSG_CHANNEL_REQUEST paramiko.dsskey-module.html#MSG_CHANNEL_REQUEST
+paramiko.dsskey.MSG_NAMES paramiko.dsskey-module.html#MSG_NAMES
+paramiko.dsskey.MSG_REQUEST_FAILURE paramiko.dsskey-module.html#MSG_REQUEST_FAILURE
+paramiko.dsskey.MSG_CHANNEL_OPEN paramiko.dsskey-module.html#MSG_CHANNEL_OPEN
+paramiko.dsskey.MSG_REQUEST_SUCCESS paramiko.dsskey-module.html#MSG_REQUEST_SUCCESS
+paramiko.dsskey.MSG_DISCONNECT paramiko.dsskey-module.html#MSG_DISCONNECT
+paramiko.dsskey.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE paramiko.dsskey-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.dsskey.MSG_SERVICE_ACCEPT paramiko.dsskey-module.html#MSG_SERVICE_ACCEPT
+paramiko.dsskey.MSG_IGNORE paramiko.dsskey-module.html#MSG_IGNORE
+paramiko.dsskey.WARNING paramiko.dsskey-module.html#WARNING
+paramiko.dsskey.MSG_GLOBAL_REQUEST paramiko.dsskey-module.html#MSG_GLOBAL_REQUEST
+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.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
+paramiko.dsskey.MSG_UNIMPLEMENTED paramiko.dsskey-module.html#MSG_UNIMPLEMENTED
+paramiko.dsskey.OPEN_FAILED_CONNECT_FAILED paramiko.dsskey-module.html#OPEN_FAILED_CONNECT_FAILED
+paramiko.dsskey.MSG_CHANNEL_OPEN_FAILURE paramiko.dsskey-module.html#MSG_CHANNEL_OPEN_FAILURE
+paramiko.dsskey.MSG_USERAUTH_INFO_REQUEST paramiko.dsskey-module.html#MSG_USERAUTH_INFO_REQUEST
+paramiko.dsskey.MSG_DEBUG paramiko.dsskey-module.html#MSG_DEBUG
+paramiko.dsskey.MSG_CHANNEL_FAILURE paramiko.dsskey-module.html#MSG_CHANNEL_FAILURE
+paramiko.dsskey.OPEN_SUCCEEDED paramiko.dsskey-module.html#OPEN_SUCCEEDED
+paramiko.dsskey.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE paramiko.dsskey-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.dsskey.OPEN_FAILED_RESOURCE_SHORTAGE paramiko.dsskey-module.html#OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.dsskey.ERROR paramiko.dsskey-module.html#ERROR
+paramiko.dsskey.DEBUG paramiko.dsskey-module.html#DEBUG
+paramiko.dsskey.AUTH_PARTIALLY_SUCCESSFUL paramiko.dsskey-module.html#AUTH_PARTIALLY_SUCCESSFUL
+paramiko.dsskey.INFO paramiko.dsskey-module.html#INFO
+paramiko.dsskey.MSG_USERAUTH_BANNER paramiko.dsskey-module.html#MSG_USERAUTH_BANNER
+paramiko.dsskey.MSG_NEWKEYS paramiko.dsskey-module.html#MSG_NEWKEYS
+paramiko.dsskey.MSG_USERAUTH_PK_OK paramiko.dsskey-module.html#MSG_USERAUTH_PK_OK
+paramiko.dsskey.MSG_USERAUTH_REQUEST paramiko.dsskey-module.html#MSG_USERAUTH_REQUEST
+paramiko.dsskey.DISCONNECT_SERVICE_NOT_AVAILABLE paramiko.dsskey-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.dsskey.PY22 paramiko.dsskey-module.html#PY22
+paramiko.dsskey.MSG_SERVICE_REQUEST paramiko.dsskey-module.html#MSG_SERVICE_REQUEST
+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.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.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
+paramiko.hostkeys.MSG_CHANNEL_WINDOW_ADJUST paramiko.hostkeys-module.html#MSG_CHANNEL_WINDOW_ADJUST
+paramiko.hostkeys.MSG_CHANNEL_REQUEST paramiko.hostkeys-module.html#MSG_CHANNEL_REQUEST
+paramiko.hostkeys.MSG_NAMES paramiko.hostkeys-module.html#MSG_NAMES
+paramiko.hostkeys.MSG_REQUEST_FAILURE paramiko.hostkeys-module.html#MSG_REQUEST_FAILURE
+paramiko.hostkeys.MSG_CHANNEL_OPEN paramiko.hostkeys-module.html#MSG_CHANNEL_OPEN
+paramiko.hostkeys.MSG_REQUEST_SUCCESS paramiko.hostkeys-module.html#MSG_REQUEST_SUCCESS
+paramiko.hostkeys.MSG_DISCONNECT paramiko.hostkeys-module.html#MSG_DISCONNECT
+paramiko.hostkeys.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE paramiko.hostkeys-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.hostkeys.MSG_SERVICE_ACCEPT paramiko.hostkeys-module.html#MSG_SERVICE_ACCEPT
+paramiko.hostkeys.MSG_IGNORE paramiko.hostkeys-module.html#MSG_IGNORE
+paramiko.hostkeys.MSG_GLOBAL_REQUEST paramiko.hostkeys-module.html#MSG_GLOBAL_REQUEST
+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.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
+paramiko.hostkeys.MSG_UNIMPLEMENTED paramiko.hostkeys-module.html#MSG_UNIMPLEMENTED
+paramiko.hostkeys.MSG_CHANNEL_OPEN_FAILURE paramiko.hostkeys-module.html#MSG_CHANNEL_OPEN_FAILURE
+paramiko.hostkeys.MSG_USERAUTH_INFO_REQUEST paramiko.hostkeys-module.html#MSG_USERAUTH_INFO_REQUEST
+paramiko.hostkeys.MSG_DEBUG paramiko.hostkeys-module.html#MSG_DEBUG
+paramiko.hostkeys.MSG_CHANNEL_FAILURE paramiko.hostkeys-module.html#MSG_CHANNEL_FAILURE
+paramiko.hostkeys.OPEN_SUCCEEDED paramiko.hostkeys-module.html#OPEN_SUCCEEDED
+paramiko.hostkeys.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE paramiko.hostkeys-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.hostkeys.OPEN_FAILED_RESOURCE_SHORTAGE paramiko.hostkeys-module.html#OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.hostkeys.ERROR paramiko.hostkeys-module.html#ERROR
+paramiko.hostkeys.DEBUG paramiko.hostkeys-module.html#DEBUG
+paramiko.hostkeys.AUTH_PARTIALLY_SUCCESSFUL paramiko.hostkeys-module.html#AUTH_PARTIALLY_SUCCESSFUL
+paramiko.hostkeys.OPEN_FAILED_CONNECT_FAILED paramiko.hostkeys-module.html#OPEN_FAILED_CONNECT_FAILED
+paramiko.hostkeys.INFO paramiko.hostkeys-module.html#INFO
+paramiko.hostkeys.MSG_USERAUTH_BANNER paramiko.hostkeys-module.html#MSG_USERAUTH_BANNER
+paramiko.hostkeys.MSG_NEWKEYS paramiko.hostkeys-module.html#MSG_NEWKEYS
+paramiko.hostkeys.MSG_USERAUTH_PK_OK paramiko.hostkeys-module.html#MSG_USERAUTH_PK_OK
+paramiko.hostkeys.WARNING paramiko.hostkeys-module.html#WARNING
+paramiko.hostkeys.MSG_USERAUTH_REQUEST paramiko.hostkeys-module.html#MSG_USERAUTH_REQUEST
+paramiko.hostkeys.DISCONNECT_SERVICE_NOT_AVAILABLE paramiko.hostkeys-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.hostkeys.PY22 paramiko.hostkeys-module.html#PY22
+paramiko.hostkeys.MSG_SERVICE_REQUEST paramiko.hostkeys-module.html#MSG_SERVICE_REQUEST
+paramiko.hostkeys.MSG_USERAUTH_SUCCESS paramiko.hostkeys-module.html#MSG_USERAUTH_SUCCESS
+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.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
+paramiko.kex_gex paramiko.kex_gex-module.html
+paramiko.kex_gex.AUTH_SUCCESSFUL paramiko.kex_gex-module.html#AUTH_SUCCESSFUL
+paramiko.kex_gex.MSG_KEXINIT paramiko.kex_gex-module.html#MSG_KEXINIT
+paramiko.kex_gex.MSG_CHANNEL_WINDOW_ADJUST paramiko.kex_gex-module.html#MSG_CHANNEL_WINDOW_ADJUST
+paramiko.kex_gex.MSG_CHANNEL_REQUEST paramiko.kex_gex-module.html#MSG_CHANNEL_REQUEST
+paramiko.kex_gex.MSG_NAMES paramiko.kex_gex-module.html#MSG_NAMES
+paramiko.kex_gex.MSG_CHANNEL_OPEN paramiko.kex_gex-module.html#MSG_CHANNEL_OPEN
+paramiko.kex_gex.MSG_REQUEST_SUCCESS paramiko.kex_gex-module.html#MSG_REQUEST_SUCCESS
+paramiko.kex_gex.MSG_DISCONNECT paramiko.kex_gex-module.html#MSG_DISCONNECT
+paramiko.kex_gex.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE paramiko.kex_gex-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.kex_gex.MSG_SERVICE_ACCEPT paramiko.kex_gex-module.html#MSG_SERVICE_ACCEPT
+paramiko.kex_gex.MSG_IGNORE paramiko.kex_gex-module.html#MSG_IGNORE
+paramiko.kex_gex.WARNING paramiko.kex_gex-module.html#WARNING
+paramiko.kex_gex.MSG_GLOBAL_REQUEST paramiko.kex_gex-module.html#MSG_GLOBAL_REQUEST
+paramiko.kex_gex.MSG_USERAUTH_INFO_RESPONSE paramiko.kex_gex-module.html#MSG_USERAUTH_INFO_RESPONSE
+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.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
+paramiko.kex_gex.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED paramiko.kex_gex-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.kex_gex.MSG_UNIMPLEMENTED paramiko.kex_gex-module.html#MSG_UNIMPLEMENTED
+paramiko.kex_gex.MSG_CHANNEL_OPEN_FAILURE paramiko.kex_gex-module.html#MSG_CHANNEL_OPEN_FAILURE
+paramiko.kex_gex.MSG_USERAUTH_INFO_REQUEST paramiko.kex_gex-module.html#MSG_USERAUTH_INFO_REQUEST
+paramiko.kex_gex.MSG_DEBUG paramiko.kex_gex-module.html#MSG_DEBUG
+paramiko.kex_gex.MSG_CHANNEL_FAILURE paramiko.kex_gex-module.html#MSG_CHANNEL_FAILURE
+paramiko.kex_gex.OPEN_SUCCEEDED paramiko.kex_gex-module.html#OPEN_SUCCEEDED
+paramiko.kex_gex._MSG_KEXDH_GEX_INIT paramiko.kex_gex-module.html#_MSG_KEXDH_GEX_INIT
+paramiko.kex_gex.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE paramiko.kex_gex-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.kex_gex.OPEN_FAILED_RESOURCE_SHORTAGE paramiko.kex_gex-module.html#OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.kex_gex._MSG_KEXDH_GEX_REPLY paramiko.kex_gex-module.html#_MSG_KEXDH_GEX_REPLY
+paramiko.kex_gex.ERROR paramiko.kex_gex-module.html#ERROR
+paramiko.kex_gex.DEBUG paramiko.kex_gex-module.html#DEBUG
+paramiko.kex_gex._MSG_KEXDH_GEX_GROUP paramiko.kex_gex-module.html#_MSG_KEXDH_GEX_GROUP
+paramiko.kex_gex.AUTH_PARTIALLY_SUCCESSFUL paramiko.kex_gex-module.html#AUTH_PARTIALLY_SUCCESSFUL
+paramiko.kex_gex.OPEN_FAILED_CONNECT_FAILED paramiko.kex_gex-module.html#OPEN_FAILED_CONNECT_FAILED
+paramiko.kex_gex.INFO paramiko.kex_gex-module.html#INFO
+paramiko.kex_gex.MSG_USERAUTH_BANNER paramiko.kex_gex-module.html#MSG_USERAUTH_BANNER
+paramiko.kex_gex.MSG_NEWKEYS paramiko.kex_gex-module.html#MSG_NEWKEYS
+paramiko.kex_gex.MSG_USERAUTH_PK_OK paramiko.kex_gex-module.html#MSG_USERAUTH_PK_OK
+paramiko.kex_gex.MSG_USERAUTH_REQUEST paramiko.kex_gex-module.html#MSG_USERAUTH_REQUEST
+paramiko.kex_gex.DISCONNECT_SERVICE_NOT_AVAILABLE paramiko.kex_gex-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.kex_gex.PY22 paramiko.kex_gex-module.html#PY22
+paramiko.kex_gex.MSG_SERVICE_REQUEST paramiko.kex_gex-module.html#MSG_SERVICE_REQUEST
+paramiko.kex_gex.AUTH_FAILED paramiko.kex_gex-module.html#AUTH_FAILED
+paramiko.kex_gex._MSG_KEXDH_GEX_REQUEST paramiko.kex_gex-module.html#_MSG_KEXDH_GEX_REQUEST
+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.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
+paramiko.kex_gex.CONNECTION_FAILED_CODE paramiko.kex_gex-module.html#CONNECTION_FAILED_CODE
+paramiko.kex_group1 paramiko.kex_group1-module.html
+paramiko.kex_group1.AUTH_SUCCESSFUL paramiko.kex_group1-module.html#AUTH_SUCCESSFUL
+paramiko.kex_group1.MSG_KEXINIT paramiko.kex_group1-module.html#MSG_KEXINIT
+paramiko.kex_group1.MSG_CHANNEL_WINDOW_ADJUST paramiko.kex_group1-module.html#MSG_CHANNEL_WINDOW_ADJUST
+paramiko.kex_group1.MSG_CHANNEL_REQUEST paramiko.kex_group1-module.html#MSG_CHANNEL_REQUEST
+paramiko.kex_group1.MSG_NAMES paramiko.kex_group1-module.html#MSG_NAMES
+paramiko.kex_group1.MSG_CHANNEL_OPEN paramiko.kex_group1-module.html#MSG_CHANNEL_OPEN
+paramiko.kex_group1.MSG_REQUEST_SUCCESS paramiko.kex_group1-module.html#MSG_REQUEST_SUCCESS
+paramiko.kex_group1.MSG_DISCONNECT paramiko.kex_group1-module.html#MSG_DISCONNECT
+paramiko.kex_group1.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE paramiko.kex_group1-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.kex_group1.MSG_SERVICE_ACCEPT paramiko.kex_group1-module.html#MSG_SERVICE_ACCEPT
+paramiko.kex_group1.MSG_IGNORE paramiko.kex_group1-module.html#MSG_IGNORE
+paramiko.kex_group1.WARNING paramiko.kex_group1-module.html#WARNING
+paramiko.kex_group1.MSG_GLOBAL_REQUEST paramiko.kex_group1-module.html#MSG_GLOBAL_REQUEST
+paramiko.kex_group1.MSG_USERAUTH_INFO_RESPONSE paramiko.kex_group1-module.html#MSG_USERAUTH_INFO_RESPONSE
+paramiko.kex_group1.MSG_DEBUG paramiko.kex_group1-module.html#MSG_DEBUG
+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.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
+paramiko.kex_group1.MSG_UNIMPLEMENTED paramiko.kex_group1-module.html#MSG_UNIMPLEMENTED
+paramiko.kex_group1.MSG_CHANNEL_OPEN_FAILURE paramiko.kex_group1-module.html#MSG_CHANNEL_OPEN_FAILURE
+paramiko.kex_group1.MSG_USERAUTH_INFO_REQUEST paramiko.kex_group1-module.html#MSG_USERAUTH_INFO_REQUEST
+paramiko.kex_group1.G paramiko.kex_group1-module.html#G
+paramiko.kex_group1.MSG_CHANNEL_FAILURE paramiko.kex_group1-module.html#MSG_CHANNEL_FAILURE
+paramiko.kex_group1.OPEN_SUCCEEDED paramiko.kex_group1-module.html#OPEN_SUCCEEDED
+paramiko.kex_group1.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE paramiko.kex_group1-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.kex_group1.OPEN_FAILED_RESOURCE_SHORTAGE paramiko.kex_group1-module.html#OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.kex_group1._MSG_KEXDH_INIT paramiko.kex_group1-module.html#_MSG_KEXDH_INIT
+paramiko.kex_group1.ERROR paramiko.kex_group1-module.html#ERROR
+paramiko.kex_group1.DEBUG paramiko.kex_group1-module.html#DEBUG
+paramiko.kex_group1.AUTH_PARTIALLY_SUCCESSFUL paramiko.kex_group1-module.html#AUTH_PARTIALLY_SUCCESSFUL
+paramiko.kex_group1._MSG_KEXDH_REPLY paramiko.kex_group1-module.html#_MSG_KEXDH_REPLY
+paramiko.kex_group1.OPEN_FAILED_CONNECT_FAILED paramiko.kex_group1-module.html#OPEN_FAILED_CONNECT_FAILED
+paramiko.kex_group1.INFO paramiko.kex_group1-module.html#INFO
+paramiko.kex_group1.MSG_USERAUTH_BANNER paramiko.kex_group1-module.html#MSG_USERAUTH_BANNER
+paramiko.kex_group1.MSG_NEWKEYS paramiko.kex_group1-module.html#MSG_NEWKEYS
+paramiko.kex_group1.MSG_USERAUTH_PK_OK paramiko.kex_group1-module.html#MSG_USERAUTH_PK_OK
+paramiko.kex_group1.MSG_USERAUTH_REQUEST paramiko.kex_group1-module.html#MSG_USERAUTH_REQUEST
+paramiko.kex_group1.DISCONNECT_SERVICE_NOT_AVAILABLE paramiko.kex_group1-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.kex_group1.PY22 paramiko.kex_group1-module.html#PY22
+paramiko.kex_group1.MSG_SERVICE_REQUEST paramiko.kex_group1-module.html#MSG_SERVICE_REQUEST
+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.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
+paramiko.kex_group1.CONNECTION_FAILED_CODE paramiko.kex_group1-module.html#CONNECTION_FAILED_CODE
+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.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.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
+paramiko.packet.MSG_CHANNEL_WINDOW_ADJUST paramiko.packet-module.html#MSG_CHANNEL_WINDOW_ADJUST
+paramiko.packet.MSG_CHANNEL_REQUEST paramiko.packet-module.html#MSG_CHANNEL_REQUEST
+paramiko.packet.MSG_NAMES paramiko.packet-module.html#MSG_NAMES
+paramiko.packet.PY22 paramiko.packet-module.html#PY22
+paramiko.packet.MSG_CHANNEL_OPEN paramiko.packet-module.html#MSG_CHANNEL_OPEN
+paramiko.packet.MSG_REQUEST_SUCCESS paramiko.packet-module.html#MSG_REQUEST_SUCCESS
+paramiko.packet.MSG_DISCONNECT paramiko.packet-module.html#MSG_DISCONNECT
+paramiko.packet.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE paramiko.packet-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.packet.MSG_SERVICE_ACCEPT paramiko.packet-module.html#MSG_SERVICE_ACCEPT
+paramiko.packet.MSG_IGNORE paramiko.packet-module.html#MSG_IGNORE
+paramiko.packet.WARNING paramiko.packet-module.html#WARNING
+paramiko.packet.MSG_GLOBAL_REQUEST paramiko.packet-module.html#MSG_GLOBAL_REQUEST
+paramiko.packet.MSG_USERAUTH_INFO_RESPONSE paramiko.packet-module.html#MSG_USERAUTH_INFO_RESPONSE
+paramiko.packet.MSG_CHANNEL_SUCCESS paramiko.packet-module.html#MSG_CHANNEL_SUCCESS
+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.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
+paramiko.packet.got_r_hmac paramiko.packet-module.html#got_r_hmac
+paramiko.packet.MSG_UNIMPLEMENTED paramiko.packet-module.html#MSG_UNIMPLEMENTED
+paramiko.packet.MSG_CHANNEL_OPEN_FAILURE paramiko.packet-module.html#MSG_CHANNEL_OPEN_FAILURE
+paramiko.packet.MSG_USERAUTH_INFO_REQUEST paramiko.packet-module.html#MSG_USERAUTH_INFO_REQUEST
+paramiko.packet.MSG_DEBUG paramiko.packet-module.html#MSG_DEBUG
+paramiko.packet.MSG_CHANNEL_FAILURE paramiko.packet-module.html#MSG_CHANNEL_FAILURE
+paramiko.packet.OPEN_SUCCEEDED paramiko.packet-module.html#OPEN_SUCCEEDED
+paramiko.packet.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE paramiko.packet-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.packet.OPEN_FAILED_RESOURCE_SHORTAGE paramiko.packet-module.html#OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.packet.ERROR paramiko.packet-module.html#ERROR
+paramiko.packet.DEBUG paramiko.packet-module.html#DEBUG
+paramiko.packet.AUTH_PARTIALLY_SUCCESSFUL paramiko.packet-module.html#AUTH_PARTIALLY_SUCCESSFUL
+paramiko.packet.OPEN_FAILED_CONNECT_FAILED paramiko.packet-module.html#OPEN_FAILED_CONNECT_FAILED
+paramiko.packet.INFO paramiko.packet-module.html#INFO
+paramiko.packet.MSG_USERAUTH_BANNER paramiko.packet-module.html#MSG_USERAUTH_BANNER
+paramiko.packet.MSG_NEWKEYS paramiko.packet-module.html#MSG_NEWKEYS
+paramiko.packet.MSG_USERAUTH_PK_OK paramiko.packet-module.html#MSG_USERAUTH_PK_OK
+paramiko.packet.MSG_USERAUTH_REQUEST paramiko.packet-module.html#MSG_USERAUTH_REQUEST
+paramiko.packet.DISCONNECT_SERVICE_NOT_AVAILABLE paramiko.packet-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.packet.MSG_SERVICE_REQUEST paramiko.packet-module.html#MSG_SERVICE_REQUEST
+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.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.make_pipe paramiko.pipe-module.html#make_pipe
+paramiko.pkey paramiko.pkey-module.html
+paramiko.pkey.AUTH_SUCCESSFUL paramiko.pkey-module.html#AUTH_SUCCESSFUL
+paramiko.pkey.MSG_KEXINIT paramiko.pkey-module.html#MSG_KEXINIT
+paramiko.pkey.MSG_CHANNEL_WINDOW_ADJUST paramiko.pkey-module.html#MSG_CHANNEL_WINDOW_ADJUST
+paramiko.pkey.MSG_CHANNEL_REQUEST paramiko.pkey-module.html#MSG_CHANNEL_REQUEST
+paramiko.pkey.MSG_NAMES paramiko.pkey-module.html#MSG_NAMES
+paramiko.pkey.MSG_CHANNEL_OPEN paramiko.pkey-module.html#MSG_CHANNEL_OPEN
+paramiko.pkey.MSG_REQUEST_SUCCESS paramiko.pkey-module.html#MSG_REQUEST_SUCCESS
+paramiko.pkey.MSG_DISCONNECT paramiko.pkey-module.html#MSG_DISCONNECT
+paramiko.pkey.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE paramiko.pkey-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.pkey.MSG_SERVICE_ACCEPT paramiko.pkey-module.html#MSG_SERVICE_ACCEPT
+paramiko.pkey.MSG_IGNORE paramiko.pkey-module.html#MSG_IGNORE
+paramiko.pkey.WARNING paramiko.pkey-module.html#WARNING
+paramiko.pkey.MSG_GLOBAL_REQUEST paramiko.pkey-module.html#MSG_GLOBAL_REQUEST
+paramiko.pkey.MSG_USERAUTH_INFO_RESPONSE paramiko.pkey-module.html#MSG_USERAUTH_INFO_RESPONSE
+paramiko.pkey.MSG_CHANNEL_SUCCESS paramiko.pkey-module.html#MSG_CHANNEL_SUCCESS
+paramiko.pkey.MSG_USERAUTH_FAILURE paramiko.pkey-module.html#MSG_USERAUTH_FAILURE
+paramiko.pkey.MSG_REQUEST_FAILURE paramiko.pkey-module.html#MSG_REQUEST_FAILURE
+paramiko.pkey.MSG_CHANNEL_DATA paramiko.pkey-module.html#MSG_CHANNEL_DATA
+paramiko.pkey.CRITICAL paramiko.pkey-module.html#CRITICAL
+paramiko.pkey.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED paramiko.pkey-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.pkey.MSG_UNIMPLEMENTED paramiko.pkey-module.html#MSG_UNIMPLEMENTED
+paramiko.pkey.OPEN_FAILED_CONNECT_FAILED paramiko.pkey-module.html#OPEN_FAILED_CONNECT_FAILED
+paramiko.pkey.MSG_CHANNEL_OPEN_FAILURE paramiko.pkey-module.html#MSG_CHANNEL_OPEN_FAILURE
+paramiko.pkey.MSG_USERAUTH_INFO_REQUEST paramiko.pkey-module.html#MSG_USERAUTH_INFO_REQUEST
+paramiko.pkey.MSG_DEBUG paramiko.pkey-module.html#MSG_DEBUG
+paramiko.pkey.MSG_CHANNEL_FAILURE paramiko.pkey-module.html#MSG_CHANNEL_FAILURE
+paramiko.pkey.OPEN_SUCCEEDED paramiko.pkey-module.html#OPEN_SUCCEEDED
+paramiko.pkey.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE paramiko.pkey-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.pkey.OPEN_FAILED_RESOURCE_SHORTAGE paramiko.pkey-module.html#OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.pkey.ERROR paramiko.pkey-module.html#ERROR
+paramiko.pkey.DEBUG paramiko.pkey-module.html#DEBUG
+paramiko.pkey.AUTH_PARTIALLY_SUCCESSFUL paramiko.pkey-module.html#AUTH_PARTIALLY_SUCCESSFUL
+paramiko.pkey.INFO paramiko.pkey-module.html#INFO
+paramiko.pkey.MSG_USERAUTH_BANNER paramiko.pkey-module.html#MSG_USERAUTH_BANNER
+paramiko.pkey.MSG_NEWKEYS paramiko.pkey-module.html#MSG_NEWKEYS
+paramiko.pkey.MSG_USERAUTH_PK_OK paramiko.pkey-module.html#MSG_USERAUTH_PK_OK
+paramiko.pkey.MSG_USERAUTH_REQUEST paramiko.pkey-module.html#MSG_USERAUTH_REQUEST
+paramiko.pkey.DISCONNECT_SERVICE_NOT_AVAILABLE paramiko.pkey-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.pkey.PY22 paramiko.pkey-module.html#PY22
+paramiko.pkey.MSG_SERVICE_REQUEST paramiko.pkey-module.html#MSG_SERVICE_REQUEST
+paramiko.pkey.AUTH_FAILED paramiko.pkey-module.html#AUTH_FAILED
+paramiko.pkey.MSG_CHANNEL_EXTENDED_DATA paramiko.pkey-module.html#MSG_CHANNEL_EXTENDED_DATA
+paramiko.pkey.MSG_CHANNEL_CLOSE paramiko.pkey-module.html#MSG_CHANNEL_CLOSE
+paramiko.pkey.DISCONNECT_AUTH_CANCELLED_BY_USER paramiko.pkey-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER
+paramiko.pkey.randpool paramiko.pkey-module.html#randpool
+paramiko.pkey.MSG_CHANNEL_OPEN_SUCCESS paramiko.pkey-module.html#MSG_CHANNEL_OPEN_SUCCESS
+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.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.resource paramiko.resource-module.html
+paramiko.resource.ResourceManager paramiko.resource-module.html#ResourceManager
+paramiko.rng paramiko.rng-module.html
+paramiko.rng.rng_device paramiko.rng-module.html#rng_device
+paramiko.rng._strxor paramiko.rng-module.html#_strxor
+paramiko.rng_posix paramiko.rng_posix-module.html
+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.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
+paramiko.rsakey.AUTH_SUCCESSFUL paramiko.rsakey-module.html#AUTH_SUCCESSFUL
+paramiko.rsakey.MSG_KEXINIT paramiko.rsakey-module.html#MSG_KEXINIT
+paramiko.rsakey.MSG_CHANNEL_WINDOW_ADJUST paramiko.rsakey-module.html#MSG_CHANNEL_WINDOW_ADJUST
+paramiko.rsakey.MSG_CHANNEL_REQUEST paramiko.rsakey-module.html#MSG_CHANNEL_REQUEST
+paramiko.rsakey.MSG_NAMES paramiko.rsakey-module.html#MSG_NAMES
+paramiko.rsakey.MSG_CHANNEL_OPEN paramiko.rsakey-module.html#MSG_CHANNEL_OPEN
+paramiko.rsakey.MSG_REQUEST_SUCCESS paramiko.rsakey-module.html#MSG_REQUEST_SUCCESS
+paramiko.rsakey.MSG_DISCONNECT paramiko.rsakey-module.html#MSG_DISCONNECT
+paramiko.rsakey.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE paramiko.rsakey-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.rsakey.MSG_SERVICE_ACCEPT paramiko.rsakey-module.html#MSG_SERVICE_ACCEPT
+paramiko.rsakey.MSG_IGNORE paramiko.rsakey-module.html#MSG_IGNORE
+paramiko.rsakey.WARNING paramiko.rsakey-module.html#WARNING
+paramiko.rsakey.MSG_GLOBAL_REQUEST paramiko.rsakey-module.html#MSG_GLOBAL_REQUEST
+paramiko.rsakey.MSG_USERAUTH_INFO_RESPONSE paramiko.rsakey-module.html#MSG_USERAUTH_INFO_RESPONSE
+paramiko.rsakey.MSG_CHANNEL_SUCCESS paramiko.rsakey-module.html#MSG_CHANNEL_SUCCESS
+paramiko.rsakey.MSG_USERAUTH_FAILURE paramiko.rsakey-module.html#MSG_USERAUTH_FAILURE
+paramiko.rsakey.MSG_REQUEST_FAILURE paramiko.rsakey-module.html#MSG_REQUEST_FAILURE
+paramiko.rsakey.MSG_CHANNEL_DATA paramiko.rsakey-module.html#MSG_CHANNEL_DATA
+paramiko.rsakey.CRITICAL paramiko.rsakey-module.html#CRITICAL
+paramiko.rsakey.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED paramiko.rsakey-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.rsakey.MSG_UNIMPLEMENTED paramiko.rsakey-module.html#MSG_UNIMPLEMENTED
+paramiko.rsakey.OPEN_FAILED_CONNECT_FAILED paramiko.rsakey-module.html#OPEN_FAILED_CONNECT_FAILED
+paramiko.rsakey.MSG_CHANNEL_OPEN_FAILURE paramiko.rsakey-module.html#MSG_CHANNEL_OPEN_FAILURE
+paramiko.rsakey.MSG_USERAUTH_INFO_REQUEST paramiko.rsakey-module.html#MSG_USERAUTH_INFO_REQUEST
+paramiko.rsakey.MSG_DEBUG paramiko.rsakey-module.html#MSG_DEBUG
+paramiko.rsakey.MSG_CHANNEL_FAILURE paramiko.rsakey-module.html#MSG_CHANNEL_FAILURE
+paramiko.rsakey.OPEN_SUCCEEDED paramiko.rsakey-module.html#OPEN_SUCCEEDED
+paramiko.rsakey.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE paramiko.rsakey-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.rsakey.OPEN_FAILED_RESOURCE_SHORTAGE paramiko.rsakey-module.html#OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.rsakey.ERROR paramiko.rsakey-module.html#ERROR
+paramiko.rsakey.DEBUG paramiko.rsakey-module.html#DEBUG
+paramiko.rsakey.AUTH_PARTIALLY_SUCCESSFUL paramiko.rsakey-module.html#AUTH_PARTIALLY_SUCCESSFUL
+paramiko.rsakey.INFO paramiko.rsakey-module.html#INFO
+paramiko.rsakey.MSG_USERAUTH_BANNER paramiko.rsakey-module.html#MSG_USERAUTH_BANNER
+paramiko.rsakey.MSG_NEWKEYS paramiko.rsakey-module.html#MSG_NEWKEYS
+paramiko.rsakey.MSG_USERAUTH_PK_OK paramiko.rsakey-module.html#MSG_USERAUTH_PK_OK
+paramiko.rsakey.MSG_USERAUTH_REQUEST paramiko.rsakey-module.html#MSG_USERAUTH_REQUEST
+paramiko.rsakey.DISCONNECT_SERVICE_NOT_AVAILABLE paramiko.rsakey-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.rsakey.PY22 paramiko.rsakey-module.html#PY22
+paramiko.rsakey.MSG_SERVICE_REQUEST paramiko.rsakey-module.html#MSG_SERVICE_REQUEST
+paramiko.rsakey.AUTH_FAILED paramiko.rsakey-module.html#AUTH_FAILED
+paramiko.rsakey.MSG_CHANNEL_EXTENDED_DATA paramiko.rsakey-module.html#MSG_CHANNEL_EXTENDED_DATA
+paramiko.rsakey.MSG_CHANNEL_CLOSE paramiko.rsakey-module.html#MSG_CHANNEL_CLOSE
+paramiko.rsakey.DISCONNECT_AUTH_CANCELLED_BY_USER paramiko.rsakey-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER
+paramiko.rsakey.randpool paramiko.rsakey-module.html#randpool
+paramiko.rsakey.MSG_CHANNEL_OPEN_SUCCESS paramiko.rsakey-module.html#MSG_CHANNEL_OPEN_SUCCESS
+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.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
+paramiko.server.MSG_CHANNEL_WINDOW_ADJUST paramiko.server-module.html#MSG_CHANNEL_WINDOW_ADJUST
+paramiko.server.MSG_CHANNEL_REQUEST paramiko.server-module.html#MSG_CHANNEL_REQUEST
+paramiko.server.MSG_NAMES paramiko.server-module.html#MSG_NAMES
+paramiko.server.MSG_CHANNEL_OPEN paramiko.server-module.html#MSG_CHANNEL_OPEN
+paramiko.server.MSG_REQUEST_SUCCESS paramiko.server-module.html#MSG_REQUEST_SUCCESS
+paramiko.server.MSG_DISCONNECT paramiko.server-module.html#MSG_DISCONNECT
+paramiko.server.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE paramiko.server-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.server.MSG_SERVICE_ACCEPT paramiko.server-module.html#MSG_SERVICE_ACCEPT
+paramiko.server.MSG_IGNORE paramiko.server-module.html#MSG_IGNORE
+paramiko.server.MSG_GLOBAL_REQUEST paramiko.server-module.html#MSG_GLOBAL_REQUEST
+paramiko.server.MSG_USERAUTH_INFO_RESPONSE paramiko.server-module.html#MSG_USERAUTH_INFO_RESPONSE
+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.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
+paramiko.server.MSG_UNIMPLEMENTED paramiko.server-module.html#MSG_UNIMPLEMENTED
+paramiko.server.MSG_CHANNEL_OPEN_FAILURE paramiko.server-module.html#MSG_CHANNEL_OPEN_FAILURE
+paramiko.server.MSG_USERAUTH_INFO_REQUEST paramiko.server-module.html#MSG_USERAUTH_INFO_REQUEST
+paramiko.server.MSG_DEBUG paramiko.server-module.html#MSG_DEBUG
+paramiko.server.MSG_CHANNEL_FAILURE paramiko.server-module.html#MSG_CHANNEL_FAILURE
+paramiko.server.OPEN_SUCCEEDED paramiko.server-module.html#OPEN_SUCCEEDED
+paramiko.server.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE paramiko.server-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.server.OPEN_FAILED_RESOURCE_SHORTAGE paramiko.server-module.html#OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.server.ERROR paramiko.server-module.html#ERROR
+paramiko.server.DEBUG paramiko.server-module.html#DEBUG
+paramiko.server.AUTH_PARTIALLY_SUCCESSFUL paramiko.server-module.html#AUTH_PARTIALLY_SUCCESSFUL
+paramiko.server.OPEN_FAILED_CONNECT_FAILED paramiko.server-module.html#OPEN_FAILED_CONNECT_FAILED
+paramiko.server.INFO paramiko.server-module.html#INFO
+paramiko.server.MSG_USERAUTH_BANNER paramiko.server-module.html#MSG_USERAUTH_BANNER
+paramiko.server.MSG_NEWKEYS paramiko.server-module.html#MSG_NEWKEYS
+paramiko.server.MSG_USERAUTH_PK_OK paramiko.server-module.html#MSG_USERAUTH_PK_OK
+paramiko.server.WARNING paramiko.server-module.html#WARNING
+paramiko.server.MSG_USERAUTH_REQUEST paramiko.server-module.html#MSG_USERAUTH_REQUEST
+paramiko.server.DISCONNECT_SERVICE_NOT_AVAILABLE paramiko.server-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.server.PY22 paramiko.server-module.html#PY22
+paramiko.server.MSG_SERVICE_REQUEST paramiko.server-module.html#MSG_SERVICE_REQUEST
+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.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
+paramiko.server.CONNECTION_FAILED_CODE paramiko.server-module.html#CONNECTION_FAILED_CODE
+paramiko.sftp paramiko.sftp-module.html
+paramiko.sftp.MSG_NAMES paramiko.sftp-module.html#MSG_NAMES
+paramiko.sftp.CMD_MKDIR paramiko.sftp-module.html#CMD_MKDIR
+paramiko.sftp.SFTP_FLAG_APPEND paramiko.sftp-module.html#SFTP_FLAG_APPEND
+paramiko.sftp.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE paramiko.sftp-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.sftp.SFTP_DESC paramiko.sftp-module.html#SFTP_DESC
+paramiko.sftp.CMD_LSTAT paramiko.sftp-module.html#CMD_LSTAT
+paramiko.sftp.MSG_GLOBAL_REQUEST paramiko.sftp-module.html#MSG_GLOBAL_REQUEST
+paramiko.sftp.MSG_CHANNEL_SUCCESS paramiko.sftp-module.html#MSG_CHANNEL_SUCCESS
+paramiko.sftp.CRITICAL paramiko.sftp-module.html#CRITICAL
+paramiko.sftp.SFTP_FLAG_READ paramiko.sftp-module.html#SFTP_FLAG_READ
+paramiko.sftp.CMD_SYMLINK paramiko.sftp-module.html#CMD_SYMLINK
+paramiko.sftp.OPEN_FAILED_RESOURCE_SHORTAGE paramiko.sftp-module.html#OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.sftp.MSG_CHANNEL_OPEN_FAILURE paramiko.sftp-module.html#MSG_CHANNEL_OPEN_FAILURE
+paramiko.sftp.CMD_VERSION paramiko.sftp-module.html#CMD_VERSION
+paramiko.sftp.CMD_INIT paramiko.sftp-module.html#CMD_INIT
+paramiko.sftp.CMD_EXTENDED paramiko.sftp-module.html#CMD_EXTENDED
+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.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
+paramiko.sftp.MSG_USERAUTH_PK_OK paramiko.sftp-module.html#MSG_USERAUTH_PK_OK
+paramiko.sftp.CMD_READDIR paramiko.sftp-module.html#CMD_READDIR
+paramiko.sftp.SFTP_FLAG_WRITE paramiko.sftp-module.html#SFTP_FLAG_WRITE
+paramiko.sftp.CMD_NAMES paramiko.sftp-module.html#CMD_NAMES
+paramiko.sftp.CMD_WRITE paramiko.sftp-module.html#CMD_WRITE
+paramiko.sftp.CMD_OPEN paramiko.sftp-module.html#CMD_OPEN
+paramiko.sftp.MSG_SERVICE_ACCEPT paramiko.sftp-module.html#MSG_SERVICE_ACCEPT
+paramiko.sftp.randpool paramiko.sftp-module.html#randpool
+paramiko.sftp.WARNING paramiko.sftp-module.html#WARNING
+paramiko.sftp.CMD_REMOVE paramiko.sftp-module.html#CMD_REMOVE
+paramiko.sftp.SFTP_EOF paramiko.sftp-module.html#SFTP_EOF
+paramiko.sftp.CMD_FSETSTAT paramiko.sftp-module.html#CMD_FSETSTAT
+paramiko.sftp.SFTP_FLAG_TRUNC paramiko.sftp-module.html#SFTP_FLAG_TRUNC
+paramiko.sftp.CMD_SETSTAT paramiko.sftp-module.html#CMD_SETSTAT
+paramiko.sftp.ERROR paramiko.sftp-module.html#ERROR
+paramiko.sftp.DEBUG paramiko.sftp-module.html#DEBUG
+paramiko.sftp.CMD_FSTAT paramiko.sftp-module.html#CMD_FSTAT
+paramiko.sftp.MSG_USERAUTH_BANNER paramiko.sftp-module.html#MSG_USERAUTH_BANNER
+paramiko.sftp.CMD_OPENDIR paramiko.sftp-module.html#CMD_OPENDIR
+paramiko.sftp.SFTP_FAILURE paramiko.sftp-module.html#SFTP_FAILURE
+paramiko.sftp.SFTP_NO_CONNECTION paramiko.sftp-module.html#SFTP_NO_CONNECTION
+paramiko.sftp.AUTH_FAILED paramiko.sftp-module.html#AUTH_FAILED
+paramiko.sftp.MSG_REQUEST_SUCCESS paramiko.sftp-module.html#MSG_REQUEST_SUCCESS
+paramiko.sftp.AUTH_SUCCESSFUL paramiko.sftp-module.html#AUTH_SUCCESSFUL
+paramiko.sftp.MSG_CHANNEL_WINDOW_ADJUST paramiko.sftp-module.html#MSG_CHANNEL_WINDOW_ADJUST
+paramiko.sftp.MSG_CHANNEL_REQUEST paramiko.sftp-module.html#MSG_CHANNEL_REQUEST
+paramiko.sftp.MSG_USERAUTH_INFO_REQUEST paramiko.sftp-module.html#MSG_USERAUTH_INFO_REQUEST
+paramiko.sftp.CMD_ATTRS paramiko.sftp-module.html#CMD_ATTRS
+paramiko.sftp.CMD_EXTENDED_REPLY paramiko.sftp-module.html#CMD_EXTENDED_REPLY
+paramiko.sftp.MSG_DISCONNECT paramiko.sftp-module.html#MSG_DISCONNECT
+paramiko.sftp.MSG_IGNORE paramiko.sftp-module.html#MSG_IGNORE
+paramiko.sftp.SFTP_FLAG_EXCL paramiko.sftp-module.html#SFTP_FLAG_EXCL
+paramiko.sftp.SFTP_NO_SUCH_FILE paramiko.sftp-module.html#SFTP_NO_SUCH_FILE
+paramiko.sftp.MSG_USERAUTH_FAILURE paramiko.sftp-module.html#MSG_USERAUTH_FAILURE
+paramiko.sftp.MSG_KEXINIT paramiko.sftp-module.html#MSG_KEXINIT
+paramiko.sftp.MSG_CHANNEL_DATA paramiko.sftp-module.html#MSG_CHANNEL_DATA
+paramiko.sftp.CMD_CLOSE paramiko.sftp-module.html#CMD_CLOSE
+paramiko.sftp.CMD_RENAME paramiko.sftp-module.html#CMD_RENAME
+paramiko.sftp.SFTP_FLAG_CREATE paramiko.sftp-module.html#SFTP_FLAG_CREATE
+paramiko.sftp.MSG_DEBUG paramiko.sftp-module.html#MSG_DEBUG
+paramiko.sftp.SFTP_PERMISSION_DENIED paramiko.sftp-module.html#SFTP_PERMISSION_DENIED
+paramiko.sftp.OPEN_SUCCEEDED paramiko.sftp-module.html#OPEN_SUCCEEDED
+paramiko.sftp.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE paramiko.sftp-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.sftp.CMD_DATA paramiko.sftp-module.html#CMD_DATA
+paramiko.sftp.MSG_UNIMPLEMENTED paramiko.sftp-module.html#MSG_UNIMPLEMENTED
+paramiko.sftp.INFO paramiko.sftp-module.html#INFO
+paramiko.sftp.CMD_STAT paramiko.sftp-module.html#CMD_STAT
+paramiko.sftp.DISCONNECT_SERVICE_NOT_AVAILABLE paramiko.sftp-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.sftp.MSG_CHANNEL_EXTENDED_DATA paramiko.sftp-module.html#MSG_CHANNEL_EXTENDED_DATA
+paramiko.sftp.CMD_NAME paramiko.sftp-module.html#CMD_NAME
+paramiko.sftp.CONNECTION_FAILED_CODE paramiko.sftp-module.html#CONNECTION_FAILED_CODE
+paramiko.sftp.CMD_HANDLE paramiko.sftp-module.html#CMD_HANDLE
+paramiko.sftp._VERSION paramiko.sftp-module.html#_VERSION
+paramiko.sftp.MSG_CHANNEL_OPEN paramiko.sftp-module.html#MSG_CHANNEL_OPEN
+paramiko.sftp.CMD_RMDIR paramiko.sftp-module.html#CMD_RMDIR
+paramiko.sftp.SFTP_OK paramiko.sftp-module.html#SFTP_OK
+paramiko.sftp.CMD_READ paramiko.sftp-module.html#CMD_READ
+paramiko.sftp.SFTP_OP_UNSUPPORTED paramiko.sftp-module.html#SFTP_OP_UNSUPPORTED
+paramiko.sftp.MSG_USERAUTH_INFO_RESPONSE paramiko.sftp-module.html#MSG_USERAUTH_INFO_RESPONSE
+paramiko.sftp.MSG_REQUEST_FAILURE paramiko.sftp-module.html#MSG_REQUEST_FAILURE
+paramiko.sftp.CMD_STATUS paramiko.sftp-module.html#CMD_STATUS
+paramiko.sftp.AUTH_PARTIALLY_SUCCESSFUL paramiko.sftp-module.html#AUTH_PARTIALLY_SUCCESSFUL
+paramiko.sftp.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED paramiko.sftp-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.sftp.MSG_CHANNEL_FAILURE paramiko.sftp-module.html#MSG_CHANNEL_FAILURE
+paramiko.sftp.SFTP_CONNECTION_LOST paramiko.sftp-module.html#SFTP_CONNECTION_LOST
+paramiko.sftp.OPEN_FAILED_CONNECT_FAILED paramiko.sftp-module.html#OPEN_FAILED_CONNECT_FAILED
+paramiko.sftp.MSG_USERAUTH_REQUEST paramiko.sftp-module.html#MSG_USERAUTH_REQUEST
+paramiko.sftp.MSG_SERVICE_REQUEST paramiko.sftp-module.html#MSG_SERVICE_REQUEST
+paramiko.sftp.CMD_REALPATH paramiko.sftp-module.html#CMD_REALPATH
+paramiko.sftp.MSG_CHANNEL_CLOSE paramiko.sftp-module.html#MSG_CHANNEL_CLOSE
+paramiko.sftp.MSG_CHANNEL_OPEN_SUCCESS paramiko.sftp-module.html#MSG_CHANNEL_OPEN_SUCCESS
+paramiko.sftp_attr paramiko.sftp_attr-module.html
+paramiko.sftp_attr.MSG_NAMES paramiko.sftp_attr-module.html#MSG_NAMES
+paramiko.sftp_attr.CMD_MKDIR paramiko.sftp_attr-module.html#CMD_MKDIR
+paramiko.sftp_attr.SFTP_FLAG_APPEND paramiko.sftp_attr-module.html#SFTP_FLAG_APPEND
+paramiko.sftp_attr.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE paramiko.sftp_attr-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.sftp_attr.SFTP_DESC paramiko.sftp_attr-module.html#SFTP_DESC
+paramiko.sftp_attr.CMD_LSTAT paramiko.sftp_attr-module.html#CMD_LSTAT
+paramiko.sftp_attr.MSG_GLOBAL_REQUEST paramiko.sftp_attr-module.html#MSG_GLOBAL_REQUEST
+paramiko.sftp_attr.MSG_CHANNEL_SUCCESS paramiko.sftp_attr-module.html#MSG_CHANNEL_SUCCESS
+paramiko.sftp_attr.CRITICAL paramiko.sftp_attr-module.html#CRITICAL
+paramiko.sftp_attr.SFTP_FLAG_READ paramiko.sftp_attr-module.html#SFTP_FLAG_READ
+paramiko.sftp_attr.CMD_SYMLINK paramiko.sftp_attr-module.html#CMD_SYMLINK
+paramiko.sftp_attr.OPEN_FAILED_RESOURCE_SHORTAGE paramiko.sftp_attr-module.html#OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.sftp_attr.MSG_CHANNEL_OPEN_FAILURE paramiko.sftp_attr-module.html#MSG_CHANNEL_OPEN_FAILURE
+paramiko.sftp_attr.CMD_VERSION paramiko.sftp_attr-module.html#CMD_VERSION
+paramiko.sftp_attr.CMD_INIT paramiko.sftp_attr-module.html#CMD_INIT
+paramiko.sftp_attr.CMD_EXTENDED paramiko.sftp_attr-module.html#CMD_EXTENDED
+paramiko.sftp_attr.MSG_CHANNEL_EOF paramiko.sftp_attr-module.html#MSG_CHANNEL_EOF
+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.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
+paramiko.sftp_attr.MSG_USERAUTH_PK_OK paramiko.sftp_attr-module.html#MSG_USERAUTH_PK_OK
+paramiko.sftp_attr.CMD_READDIR paramiko.sftp_attr-module.html#CMD_READDIR
+paramiko.sftp_attr.SFTP_FLAG_WRITE paramiko.sftp_attr-module.html#SFTP_FLAG_WRITE
+paramiko.sftp_attr.CMD_NAMES paramiko.sftp_attr-module.html#CMD_NAMES
+paramiko.sftp_attr.CMD_WRITE paramiko.sftp_attr-module.html#CMD_WRITE
+paramiko.sftp_attr.CMD_OPEN paramiko.sftp_attr-module.html#CMD_OPEN
+paramiko.sftp_attr.MSG_SERVICE_ACCEPT paramiko.sftp_attr-module.html#MSG_SERVICE_ACCEPT
+paramiko.sftp_attr.randpool paramiko.sftp_attr-module.html#randpool
+paramiko.sftp_attr.WARNING paramiko.sftp_attr-module.html#WARNING
+paramiko.sftp_attr.CMD_REMOVE paramiko.sftp_attr-module.html#CMD_REMOVE
+paramiko.sftp_attr.SFTP_EOF paramiko.sftp_attr-module.html#SFTP_EOF
+paramiko.sftp_attr.CMD_FSETSTAT paramiko.sftp_attr-module.html#CMD_FSETSTAT
+paramiko.sftp_attr.SFTP_FLAG_TRUNC paramiko.sftp_attr-module.html#SFTP_FLAG_TRUNC
+paramiko.sftp_attr.CMD_SETSTAT paramiko.sftp_attr-module.html#CMD_SETSTAT
+paramiko.sftp_attr.ERROR paramiko.sftp_attr-module.html#ERROR
+paramiko.sftp_attr.DEBUG paramiko.sftp_attr-module.html#DEBUG
+paramiko.sftp_attr.CMD_FSTAT paramiko.sftp_attr-module.html#CMD_FSTAT
+paramiko.sftp_attr.MSG_USERAUTH_BANNER paramiko.sftp_attr-module.html#MSG_USERAUTH_BANNER
+paramiko.sftp_attr.CMD_OPENDIR paramiko.sftp_attr-module.html#CMD_OPENDIR
+paramiko.sftp_attr.SFTP_FAILURE paramiko.sftp_attr-module.html#SFTP_FAILURE
+paramiko.sftp_attr.SFTP_NO_CONNECTION paramiko.sftp_attr-module.html#SFTP_NO_CONNECTION
+paramiko.sftp_attr.AUTH_FAILED paramiko.sftp_attr-module.html#AUTH_FAILED
+paramiko.sftp_attr.MSG_REQUEST_SUCCESS paramiko.sftp_attr-module.html#MSG_REQUEST_SUCCESS
+paramiko.sftp_attr.AUTH_SUCCESSFUL paramiko.sftp_attr-module.html#AUTH_SUCCESSFUL
+paramiko.sftp_attr.MSG_CHANNEL_WINDOW_ADJUST paramiko.sftp_attr-module.html#MSG_CHANNEL_WINDOW_ADJUST
+paramiko.sftp_attr.MSG_CHANNEL_REQUEST paramiko.sftp_attr-module.html#MSG_CHANNEL_REQUEST
+paramiko.sftp_attr.MSG_USERAUTH_INFO_REQUEST paramiko.sftp_attr-module.html#MSG_USERAUTH_INFO_REQUEST
+paramiko.sftp_attr.CMD_ATTRS paramiko.sftp_attr-module.html#CMD_ATTRS
+paramiko.sftp_attr.CMD_EXTENDED_REPLY paramiko.sftp_attr-module.html#CMD_EXTENDED_REPLY
+paramiko.sftp_attr.MSG_DISCONNECT paramiko.sftp_attr-module.html#MSG_DISCONNECT
+paramiko.sftp_attr.MSG_IGNORE paramiko.sftp_attr-module.html#MSG_IGNORE
+paramiko.sftp_attr.SFTP_FLAG_EXCL paramiko.sftp_attr-module.html#SFTP_FLAG_EXCL
+paramiko.sftp_attr.SFTP_NO_SUCH_FILE paramiko.sftp_attr-module.html#SFTP_NO_SUCH_FILE
+paramiko.sftp_attr.MSG_USERAUTH_FAILURE paramiko.sftp_attr-module.html#MSG_USERAUTH_FAILURE
+paramiko.sftp_attr.MSG_KEXINIT paramiko.sftp_attr-module.html#MSG_KEXINIT
+paramiko.sftp_attr.MSG_CHANNEL_DATA paramiko.sftp_attr-module.html#MSG_CHANNEL_DATA
+paramiko.sftp_attr.CMD_CLOSE paramiko.sftp_attr-module.html#CMD_CLOSE
+paramiko.sftp_attr.CMD_RENAME paramiko.sftp_attr-module.html#CMD_RENAME
+paramiko.sftp_attr.SFTP_FLAG_CREATE paramiko.sftp_attr-module.html#SFTP_FLAG_CREATE
+paramiko.sftp_attr.MSG_DEBUG paramiko.sftp_attr-module.html#MSG_DEBUG
+paramiko.sftp_attr.SFTP_PERMISSION_DENIED paramiko.sftp_attr-module.html#SFTP_PERMISSION_DENIED
+paramiko.sftp_attr.OPEN_SUCCEEDED paramiko.sftp_attr-module.html#OPEN_SUCCEEDED
+paramiko.sftp_attr.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE paramiko.sftp_attr-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.sftp_attr.CMD_DATA paramiko.sftp_attr-module.html#CMD_DATA
+paramiko.sftp_attr.MSG_UNIMPLEMENTED paramiko.sftp_attr-module.html#MSG_UNIMPLEMENTED
+paramiko.sftp_attr.INFO paramiko.sftp_attr-module.html#INFO
+paramiko.sftp_attr.CMD_STAT paramiko.sftp_attr-module.html#CMD_STAT
+paramiko.sftp_attr.DISCONNECT_SERVICE_NOT_AVAILABLE paramiko.sftp_attr-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.sftp_attr.MSG_CHANNEL_EXTENDED_DATA paramiko.sftp_attr-module.html#MSG_CHANNEL_EXTENDED_DATA
+paramiko.sftp_attr.CMD_NAME paramiko.sftp_attr-module.html#CMD_NAME
+paramiko.sftp_attr.CONNECTION_FAILED_CODE paramiko.sftp_attr-module.html#CONNECTION_FAILED_CODE
+paramiko.sftp_attr.CMD_HANDLE paramiko.sftp_attr-module.html#CMD_HANDLE
+paramiko.sftp_attr.MSG_CHANNEL_OPEN paramiko.sftp_attr-module.html#MSG_CHANNEL_OPEN
+paramiko.sftp_attr.CMD_RMDIR paramiko.sftp_attr-module.html#CMD_RMDIR
+paramiko.sftp_attr.SFTP_OK paramiko.sftp_attr-module.html#SFTP_OK
+paramiko.sftp_attr.CMD_READ paramiko.sftp_attr-module.html#CMD_READ
+paramiko.sftp_attr.SFTP_OP_UNSUPPORTED paramiko.sftp_attr-module.html#SFTP_OP_UNSUPPORTED
+paramiko.sftp_attr.MSG_USERAUTH_INFO_RESPONSE paramiko.sftp_attr-module.html#MSG_USERAUTH_INFO_RESPONSE
+paramiko.sftp_attr.MSG_REQUEST_FAILURE paramiko.sftp_attr-module.html#MSG_REQUEST_FAILURE
+paramiko.sftp_attr.CMD_STATUS paramiko.sftp_attr-module.html#CMD_STATUS
+paramiko.sftp_attr.AUTH_PARTIALLY_SUCCESSFUL paramiko.sftp_attr-module.html#AUTH_PARTIALLY_SUCCESSFUL
+paramiko.sftp_attr.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED paramiko.sftp_attr-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.sftp_attr.MSG_CHANNEL_FAILURE paramiko.sftp_attr-module.html#MSG_CHANNEL_FAILURE
+paramiko.sftp_attr.SFTP_CONNECTION_LOST paramiko.sftp_attr-module.html#SFTP_CONNECTION_LOST
+paramiko.sftp_attr.OPEN_FAILED_CONNECT_FAILED paramiko.sftp_attr-module.html#OPEN_FAILED_CONNECT_FAILED
+paramiko.sftp_attr.MSG_USERAUTH_REQUEST paramiko.sftp_attr-module.html#MSG_USERAUTH_REQUEST
+paramiko.sftp_attr.MSG_SERVICE_REQUEST paramiko.sftp_attr-module.html#MSG_SERVICE_REQUEST
+paramiko.sftp_attr.CMD_REALPATH paramiko.sftp_attr-module.html#CMD_REALPATH
+paramiko.sftp_attr.MSG_CHANNEL_CLOSE paramiko.sftp_attr-module.html#MSG_CHANNEL_CLOSE
+paramiko.sftp_attr.MSG_CHANNEL_OPEN_SUCCESS paramiko.sftp_attr-module.html#MSG_CHANNEL_OPEN_SUCCESS
+paramiko.sftp_client paramiko.sftp_client-module.html
+paramiko.sftp_client.MSG_NAMES paramiko.sftp_client-module.html#MSG_NAMES
+paramiko.sftp_client.CMD_MKDIR paramiko.sftp_client-module.html#CMD_MKDIR
+paramiko.sftp_client.SFTP_FLAG_APPEND paramiko.sftp_client-module.html#SFTP_FLAG_APPEND
+paramiko.sftp_client.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE paramiko.sftp_client-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.sftp_client.SFTP_DESC paramiko.sftp_client-module.html#SFTP_DESC
+paramiko.sftp_client.CMD_LSTAT paramiko.sftp_client-module.html#CMD_LSTAT
+paramiko.sftp_client.MSG_GLOBAL_REQUEST paramiko.sftp_client-module.html#MSG_GLOBAL_REQUEST
+paramiko.sftp_client.MSG_CHANNEL_SUCCESS paramiko.sftp_client-module.html#MSG_CHANNEL_SUCCESS
+paramiko.sftp_client.CRITICAL paramiko.sftp_client-module.html#CRITICAL
+paramiko.sftp_client.SFTP_FLAG_READ paramiko.sftp_client-module.html#SFTP_FLAG_READ
+paramiko.sftp_client.CMD_SYMLINK paramiko.sftp_client-module.html#CMD_SYMLINK
+paramiko.sftp_client.OPEN_FAILED_RESOURCE_SHORTAGE paramiko.sftp_client-module.html#OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.sftp_client.MSG_CHANNEL_OPEN_FAILURE paramiko.sftp_client-module.html#MSG_CHANNEL_OPEN_FAILURE
+paramiko.sftp_client.CMD_VERSION paramiko.sftp_client-module.html#CMD_VERSION
+paramiko.sftp_client.CMD_INIT paramiko.sftp_client-module.html#CMD_INIT
+paramiko.sftp_client.CMD_EXTENDED paramiko.sftp_client-module.html#CMD_EXTENDED
+paramiko.sftp_client.MSG_CHANNEL_EOF paramiko.sftp_client-module.html#MSG_CHANNEL_EOF
+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.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
+paramiko.sftp_client.MSG_USERAUTH_PK_OK paramiko.sftp_client-module.html#MSG_USERAUTH_PK_OK
+paramiko.sftp_client.CMD_READDIR paramiko.sftp_client-module.html#CMD_READDIR
+paramiko.sftp_client.SFTP_FLAG_WRITE paramiko.sftp_client-module.html#SFTP_FLAG_WRITE
+paramiko.sftp_client.CMD_NAMES paramiko.sftp_client-module.html#CMD_NAMES
+paramiko.sftp_client.CMD_WRITE paramiko.sftp_client-module.html#CMD_WRITE
+paramiko.sftp_client.CMD_OPEN paramiko.sftp_client-module.html#CMD_OPEN
+paramiko.sftp_client.MSG_SERVICE_ACCEPT paramiko.sftp_client-module.html#MSG_SERVICE_ACCEPT
+paramiko.sftp_client.randpool paramiko.sftp_client-module.html#randpool
+paramiko.sftp_client.WARNING paramiko.sftp_client-module.html#WARNING
+paramiko.sftp_client.CMD_REMOVE paramiko.sftp_client-module.html#CMD_REMOVE
+paramiko.sftp_client.SFTP_EOF paramiko.sftp_client-module.html#SFTP_EOF
+paramiko.sftp_client.CMD_FSETSTAT paramiko.sftp_client-module.html#CMD_FSETSTAT
+paramiko.sftp_client.SFTP_FLAG_TRUNC paramiko.sftp_client-module.html#SFTP_FLAG_TRUNC
+paramiko.sftp_client.CMD_SETSTAT paramiko.sftp_client-module.html#CMD_SETSTAT
+paramiko.sftp_client.ERROR paramiko.sftp_client-module.html#ERROR
+paramiko.sftp_client.DEBUG paramiko.sftp_client-module.html#DEBUG
+paramiko.sftp_client.CMD_FSTAT paramiko.sftp_client-module.html#CMD_FSTAT
+paramiko.sftp_client.MSG_USERAUTH_BANNER paramiko.sftp_client-module.html#MSG_USERAUTH_BANNER
+paramiko.sftp_client.CMD_OPENDIR paramiko.sftp_client-module.html#CMD_OPENDIR
+paramiko.sftp_client.SFTP_FAILURE paramiko.sftp_client-module.html#SFTP_FAILURE
+paramiko.sftp_client.SFTP_NO_CONNECTION paramiko.sftp_client-module.html#SFTP_NO_CONNECTION
+paramiko.sftp_client.AUTH_FAILED paramiko.sftp_client-module.html#AUTH_FAILED
+paramiko.sftp_client.MSG_REQUEST_SUCCESS paramiko.sftp_client-module.html#MSG_REQUEST_SUCCESS
+paramiko.sftp_client.AUTH_SUCCESSFUL paramiko.sftp_client-module.html#AUTH_SUCCESSFUL
+paramiko.sftp_client.MSG_CHANNEL_WINDOW_ADJUST paramiko.sftp_client-module.html#MSG_CHANNEL_WINDOW_ADJUST
+paramiko.sftp_client.MSG_CHANNEL_REQUEST paramiko.sftp_client-module.html#MSG_CHANNEL_REQUEST
+paramiko.sftp_client.MSG_USERAUTH_INFO_REQUEST paramiko.sftp_client-module.html#MSG_USERAUTH_INFO_REQUEST
+paramiko.sftp_client.CMD_ATTRS paramiko.sftp_client-module.html#CMD_ATTRS
+paramiko.sftp_client.CMD_EXTENDED_REPLY paramiko.sftp_client-module.html#CMD_EXTENDED_REPLY
+paramiko.sftp_client.MSG_DISCONNECT paramiko.sftp_client-module.html#MSG_DISCONNECT
+paramiko.sftp_client.MSG_IGNORE paramiko.sftp_client-module.html#MSG_IGNORE
+paramiko.sftp_client.SFTP_FLAG_EXCL paramiko.sftp_client-module.html#SFTP_FLAG_EXCL
+paramiko.sftp_client.SFTP_NO_SUCH_FILE paramiko.sftp_client-module.html#SFTP_NO_SUCH_FILE
+paramiko.sftp_client.MSG_USERAUTH_FAILURE paramiko.sftp_client-module.html#MSG_USERAUTH_FAILURE
+paramiko.sftp_client.MSG_KEXINIT paramiko.sftp_client-module.html#MSG_KEXINIT
+paramiko.sftp_client.MSG_CHANNEL_DATA paramiko.sftp_client-module.html#MSG_CHANNEL_DATA
+paramiko.sftp_client.CMD_CLOSE paramiko.sftp_client-module.html#CMD_CLOSE
+paramiko.sftp_client.CMD_RENAME paramiko.sftp_client-module.html#CMD_RENAME
+paramiko.sftp_client.SFTP_FLAG_CREATE paramiko.sftp_client-module.html#SFTP_FLAG_CREATE
+paramiko.sftp_client.MSG_DEBUG paramiko.sftp_client-module.html#MSG_DEBUG
+paramiko.sftp_client.SFTP_PERMISSION_DENIED paramiko.sftp_client-module.html#SFTP_PERMISSION_DENIED
+paramiko.sftp_client.OPEN_SUCCEEDED paramiko.sftp_client-module.html#OPEN_SUCCEEDED
+paramiko.sftp_client.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE paramiko.sftp_client-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.sftp_client.CMD_DATA paramiko.sftp_client-module.html#CMD_DATA
+paramiko.sftp_client.MSG_UNIMPLEMENTED paramiko.sftp_client-module.html#MSG_UNIMPLEMENTED
+paramiko.sftp_client.INFO paramiko.sftp_client-module.html#INFO
+paramiko.sftp_client.DISCONNECT_SERVICE_NOT_AVAILABLE paramiko.sftp_client-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.sftp_client._to_unicode paramiko.sftp_client-module.html#_to_unicode
+paramiko.sftp_client.MSG_CHANNEL_EXTENDED_DATA paramiko.sftp_client-module.html#MSG_CHANNEL_EXTENDED_DATA
+paramiko.sftp_client.CMD_NAME paramiko.sftp_client-module.html#CMD_NAME
+paramiko.sftp_client.CONNECTION_FAILED_CODE paramiko.sftp_client-module.html#CONNECTION_FAILED_CODE
+paramiko.sftp_client.CMD_HANDLE paramiko.sftp_client-module.html#CMD_HANDLE
+paramiko.sftp_client.MSG_CHANNEL_OPEN paramiko.sftp_client-module.html#MSG_CHANNEL_OPEN
+paramiko.sftp_client.CMD_RMDIR paramiko.sftp_client-module.html#CMD_RMDIR
+paramiko.sftp_client.SFTP_OK paramiko.sftp_client-module.html#SFTP_OK
+paramiko.sftp_client.CMD_READ paramiko.sftp_client-module.html#CMD_READ
+paramiko.sftp_client.SFTP_OP_UNSUPPORTED paramiko.sftp_client-module.html#SFTP_OP_UNSUPPORTED
+paramiko.sftp_client.MSG_USERAUTH_INFO_RESPONSE paramiko.sftp_client-module.html#MSG_USERAUTH_INFO_RESPONSE
+paramiko.sftp_client.MSG_REQUEST_FAILURE paramiko.sftp_client-module.html#MSG_REQUEST_FAILURE
+paramiko.sftp_client.CMD_STATUS paramiko.sftp_client-module.html#CMD_STATUS
+paramiko.sftp_client.AUTH_PARTIALLY_SUCCESSFUL paramiko.sftp_client-module.html#AUTH_PARTIALLY_SUCCESSFUL
+paramiko.sftp_client.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED paramiko.sftp_client-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.sftp_client.MSG_CHANNEL_FAILURE paramiko.sftp_client-module.html#MSG_CHANNEL_FAILURE
+paramiko.sftp_client.SFTP_CONNECTION_LOST paramiko.sftp_client-module.html#SFTP_CONNECTION_LOST
+paramiko.sftp_client.OPEN_FAILED_CONNECT_FAILED paramiko.sftp_client-module.html#OPEN_FAILED_CONNECT_FAILED
+paramiko.sftp_client.MSG_USERAUTH_REQUEST paramiko.sftp_client-module.html#MSG_USERAUTH_REQUEST
+paramiko.sftp_client.MSG_SERVICE_REQUEST paramiko.sftp_client-module.html#MSG_SERVICE_REQUEST
+paramiko.sftp_client.CMD_REALPATH paramiko.sftp_client-module.html#CMD_REALPATH
+paramiko.sftp_client.MSG_CHANNEL_CLOSE paramiko.sftp_client-module.html#MSG_CHANNEL_CLOSE
+paramiko.sftp_client.MSG_CHANNEL_OPEN_SUCCESS paramiko.sftp_client-module.html#MSG_CHANNEL_OPEN_SUCCESS
+paramiko.sftp_file paramiko.sftp_file-module.html
+paramiko.sftp_file.MSG_NAMES paramiko.sftp_file-module.html#MSG_NAMES
+paramiko.sftp_file.CMD_MKDIR paramiko.sftp_file-module.html#CMD_MKDIR
+paramiko.sftp_file.SFTP_FLAG_APPEND paramiko.sftp_file-module.html#SFTP_FLAG_APPEND
+paramiko.sftp_file.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE paramiko.sftp_file-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.sftp_file.SFTP_DESC paramiko.sftp_file-module.html#SFTP_DESC
+paramiko.sftp_file.CMD_LSTAT paramiko.sftp_file-module.html#CMD_LSTAT
+paramiko.sftp_file.MSG_GLOBAL_REQUEST paramiko.sftp_file-module.html#MSG_GLOBAL_REQUEST
+paramiko.sftp_file.MSG_CHANNEL_SUCCESS paramiko.sftp_file-module.html#MSG_CHANNEL_SUCCESS
+paramiko.sftp_file.CRITICAL paramiko.sftp_file-module.html#CRITICAL
+paramiko.sftp_file.SFTP_FLAG_READ paramiko.sftp_file-module.html#SFTP_FLAG_READ
+paramiko.sftp_file.CMD_SYMLINK paramiko.sftp_file-module.html#CMD_SYMLINK
+paramiko.sftp_file.OPEN_FAILED_RESOURCE_SHORTAGE paramiko.sftp_file-module.html#OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.sftp_file.MSG_CHANNEL_OPEN_FAILURE paramiko.sftp_file-module.html#MSG_CHANNEL_OPEN_FAILURE
+paramiko.sftp_file.CMD_VERSION paramiko.sftp_file-module.html#CMD_VERSION
+paramiko.sftp_file.CMD_INIT paramiko.sftp_file-module.html#CMD_INIT
+paramiko.sftp_file.CMD_EXTENDED paramiko.sftp_file-module.html#CMD_EXTENDED
+paramiko.sftp_file.MSG_CHANNEL_EOF paramiko.sftp_file-module.html#MSG_CHANNEL_EOF
+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.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
+paramiko.sftp_file.MSG_USERAUTH_PK_OK paramiko.sftp_file-module.html#MSG_USERAUTH_PK_OK
+paramiko.sftp_file.CMD_READDIR paramiko.sftp_file-module.html#CMD_READDIR
+paramiko.sftp_file.SFTP_FLAG_WRITE paramiko.sftp_file-module.html#SFTP_FLAG_WRITE
+paramiko.sftp_file.CMD_NAMES paramiko.sftp_file-module.html#CMD_NAMES
+paramiko.sftp_file.CMD_WRITE paramiko.sftp_file-module.html#CMD_WRITE
+paramiko.sftp_file.CMD_OPEN paramiko.sftp_file-module.html#CMD_OPEN
+paramiko.sftp_file.MSG_SERVICE_ACCEPT paramiko.sftp_file-module.html#MSG_SERVICE_ACCEPT
+paramiko.sftp_file.randpool paramiko.sftp_file-module.html#randpool
+paramiko.sftp_file.WARNING paramiko.sftp_file-module.html#WARNING
+paramiko.sftp_file.CMD_REMOVE paramiko.sftp_file-module.html#CMD_REMOVE
+paramiko.sftp_file.SFTP_EOF paramiko.sftp_file-module.html#SFTP_EOF
+paramiko.sftp_file.CMD_FSETSTAT paramiko.sftp_file-module.html#CMD_FSETSTAT
+paramiko.sftp_file.SFTP_FLAG_TRUNC paramiko.sftp_file-module.html#SFTP_FLAG_TRUNC
+paramiko.sftp_file.CMD_SETSTAT paramiko.sftp_file-module.html#CMD_SETSTAT
+paramiko.sftp_file.ERROR paramiko.sftp_file-module.html#ERROR
+paramiko.sftp_file.DEBUG paramiko.sftp_file-module.html#DEBUG
+paramiko.sftp_file.CMD_FSTAT paramiko.sftp_file-module.html#CMD_FSTAT
+paramiko.sftp_file.MSG_USERAUTH_BANNER paramiko.sftp_file-module.html#MSG_USERAUTH_BANNER
+paramiko.sftp_file.CMD_OPENDIR paramiko.sftp_file-module.html#CMD_OPENDIR
+paramiko.sftp_file.SFTP_FAILURE paramiko.sftp_file-module.html#SFTP_FAILURE
+paramiko.sftp_file.SFTP_NO_CONNECTION paramiko.sftp_file-module.html#SFTP_NO_CONNECTION
+paramiko.sftp_file.AUTH_FAILED paramiko.sftp_file-module.html#AUTH_FAILED
+paramiko.sftp_file.MSG_REQUEST_SUCCESS paramiko.sftp_file-module.html#MSG_REQUEST_SUCCESS
+paramiko.sftp_file.AUTH_SUCCESSFUL paramiko.sftp_file-module.html#AUTH_SUCCESSFUL
+paramiko.sftp_file.MSG_CHANNEL_WINDOW_ADJUST paramiko.sftp_file-module.html#MSG_CHANNEL_WINDOW_ADJUST
+paramiko.sftp_file.MSG_CHANNEL_REQUEST paramiko.sftp_file-module.html#MSG_CHANNEL_REQUEST
+paramiko.sftp_file.MSG_USERAUTH_INFO_REQUEST paramiko.sftp_file-module.html#MSG_USERAUTH_INFO_REQUEST
+paramiko.sftp_file.CMD_ATTRS paramiko.sftp_file-module.html#CMD_ATTRS
+paramiko.sftp_file.CMD_EXTENDED_REPLY paramiko.sftp_file-module.html#CMD_EXTENDED_REPLY
+paramiko.sftp_file.MSG_DISCONNECT paramiko.sftp_file-module.html#MSG_DISCONNECT
+paramiko.sftp_file.MSG_IGNORE paramiko.sftp_file-module.html#MSG_IGNORE
+paramiko.sftp_file.SFTP_FLAG_EXCL paramiko.sftp_file-module.html#SFTP_FLAG_EXCL
+paramiko.sftp_file.SFTP_NO_SUCH_FILE paramiko.sftp_file-module.html#SFTP_NO_SUCH_FILE
+paramiko.sftp_file.MSG_USERAUTH_FAILURE paramiko.sftp_file-module.html#MSG_USERAUTH_FAILURE
+paramiko.sftp_file.MSG_KEXINIT paramiko.sftp_file-module.html#MSG_KEXINIT
+paramiko.sftp_file.MSG_CHANNEL_DATA paramiko.sftp_file-module.html#MSG_CHANNEL_DATA
+paramiko.sftp_file.CMD_CLOSE paramiko.sftp_file-module.html#CMD_CLOSE
+paramiko.sftp_file.CMD_RENAME paramiko.sftp_file-module.html#CMD_RENAME
+paramiko.sftp_file.SFTP_FLAG_CREATE paramiko.sftp_file-module.html#SFTP_FLAG_CREATE
+paramiko.sftp_file.MSG_DEBUG paramiko.sftp_file-module.html#MSG_DEBUG
+paramiko.sftp_file.SFTP_PERMISSION_DENIED paramiko.sftp_file-module.html#SFTP_PERMISSION_DENIED
+paramiko.sftp_file.OPEN_SUCCEEDED paramiko.sftp_file-module.html#OPEN_SUCCEEDED
+paramiko.sftp_file.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE paramiko.sftp_file-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.sftp_file.CMD_DATA paramiko.sftp_file-module.html#CMD_DATA
+paramiko.sftp_file.MSG_UNIMPLEMENTED paramiko.sftp_file-module.html#MSG_UNIMPLEMENTED
+paramiko.sftp_file.INFO paramiko.sftp_file-module.html#INFO
+paramiko.sftp_file.DISCONNECT_SERVICE_NOT_AVAILABLE paramiko.sftp_file-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.sftp_file.MSG_CHANNEL_EXTENDED_DATA paramiko.sftp_file-module.html#MSG_CHANNEL_EXTENDED_DATA
+paramiko.sftp_file.CMD_NAME paramiko.sftp_file-module.html#CMD_NAME
+paramiko.sftp_file.CONNECTION_FAILED_CODE paramiko.sftp_file-module.html#CONNECTION_FAILED_CODE
+paramiko.sftp_file.CMD_HANDLE paramiko.sftp_file-module.html#CMD_HANDLE
+paramiko.sftp_file.MSG_CHANNEL_OPEN paramiko.sftp_file-module.html#MSG_CHANNEL_OPEN
+paramiko.sftp_file.CMD_RMDIR paramiko.sftp_file-module.html#CMD_RMDIR
+paramiko.sftp_file.SFTP_OK paramiko.sftp_file-module.html#SFTP_OK
+paramiko.sftp_file.CMD_READ paramiko.sftp_file-module.html#CMD_READ
+paramiko.sftp_file.SFTP_OP_UNSUPPORTED paramiko.sftp_file-module.html#SFTP_OP_UNSUPPORTED
+paramiko.sftp_file.MSG_USERAUTH_INFO_RESPONSE paramiko.sftp_file-module.html#MSG_USERAUTH_INFO_RESPONSE
+paramiko.sftp_file.MSG_REQUEST_FAILURE paramiko.sftp_file-module.html#MSG_REQUEST_FAILURE
+paramiko.sftp_file.CMD_STATUS paramiko.sftp_file-module.html#CMD_STATUS
+paramiko.sftp_file.AUTH_PARTIALLY_SUCCESSFUL paramiko.sftp_file-module.html#AUTH_PARTIALLY_SUCCESSFUL
+paramiko.sftp_file.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED paramiko.sftp_file-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.sftp_file.MSG_CHANNEL_FAILURE paramiko.sftp_file-module.html#MSG_CHANNEL_FAILURE
+paramiko.sftp_file.SFTP_CONNECTION_LOST paramiko.sftp_file-module.html#SFTP_CONNECTION_LOST
+paramiko.sftp_file.OPEN_FAILED_CONNECT_FAILED paramiko.sftp_file-module.html#OPEN_FAILED_CONNECT_FAILED
+paramiko.sftp_file.MSG_USERAUTH_REQUEST paramiko.sftp_file-module.html#MSG_USERAUTH_REQUEST
+paramiko.sftp_file.MSG_SERVICE_REQUEST paramiko.sftp_file-module.html#MSG_SERVICE_REQUEST
+paramiko.sftp_file.CMD_REALPATH paramiko.sftp_file-module.html#CMD_REALPATH
+paramiko.sftp_file.MSG_CHANNEL_CLOSE paramiko.sftp_file-module.html#MSG_CHANNEL_CLOSE
+paramiko.sftp_file.MSG_CHANNEL_OPEN_SUCCESS paramiko.sftp_file-module.html#MSG_CHANNEL_OPEN_SUCCESS
+paramiko.sftp_handle paramiko.sftp_handle-module.html
+paramiko.sftp_handle.MSG_NAMES paramiko.sftp_handle-module.html#MSG_NAMES
+paramiko.sftp_handle.CMD_MKDIR paramiko.sftp_handle-module.html#CMD_MKDIR
+paramiko.sftp_handle.SFTP_FLAG_APPEND paramiko.sftp_handle-module.html#SFTP_FLAG_APPEND
+paramiko.sftp_handle.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE paramiko.sftp_handle-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.sftp_handle.SFTP_DESC paramiko.sftp_handle-module.html#SFTP_DESC
+paramiko.sftp_handle.CMD_LSTAT paramiko.sftp_handle-module.html#CMD_LSTAT
+paramiko.sftp_handle.MSG_GLOBAL_REQUEST paramiko.sftp_handle-module.html#MSG_GLOBAL_REQUEST
+paramiko.sftp_handle.MSG_CHANNEL_SUCCESS paramiko.sftp_handle-module.html#MSG_CHANNEL_SUCCESS
+paramiko.sftp_handle.CRITICAL paramiko.sftp_handle-module.html#CRITICAL
+paramiko.sftp_handle.SFTP_FLAG_READ paramiko.sftp_handle-module.html#SFTP_FLAG_READ
+paramiko.sftp_handle.CMD_SYMLINK paramiko.sftp_handle-module.html#CMD_SYMLINK
+paramiko.sftp_handle.OPEN_FAILED_RESOURCE_SHORTAGE paramiko.sftp_handle-module.html#OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.sftp_handle.MSG_CHANNEL_OPEN_FAILURE paramiko.sftp_handle-module.html#MSG_CHANNEL_OPEN_FAILURE
+paramiko.sftp_handle.CMD_VERSION paramiko.sftp_handle-module.html#CMD_VERSION
+paramiko.sftp_handle.CMD_INIT paramiko.sftp_handle-module.html#CMD_INIT
+paramiko.sftp_handle.CMD_EXTENDED paramiko.sftp_handle-module.html#CMD_EXTENDED
+paramiko.sftp_handle.MSG_CHANNEL_EOF paramiko.sftp_handle-module.html#MSG_CHANNEL_EOF
+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.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
+paramiko.sftp_handle.MSG_USERAUTH_PK_OK paramiko.sftp_handle-module.html#MSG_USERAUTH_PK_OK
+paramiko.sftp_handle.CMD_READDIR paramiko.sftp_handle-module.html#CMD_READDIR
+paramiko.sftp_handle.SFTP_FLAG_WRITE paramiko.sftp_handle-module.html#SFTP_FLAG_WRITE
+paramiko.sftp_handle.CMD_NAMES paramiko.sftp_handle-module.html#CMD_NAMES
+paramiko.sftp_handle.CMD_WRITE paramiko.sftp_handle-module.html#CMD_WRITE
+paramiko.sftp_handle.CMD_OPEN paramiko.sftp_handle-module.html#CMD_OPEN
+paramiko.sftp_handle.MSG_SERVICE_ACCEPT paramiko.sftp_handle-module.html#MSG_SERVICE_ACCEPT
+paramiko.sftp_handle.randpool paramiko.sftp_handle-module.html#randpool
+paramiko.sftp_handle.WARNING paramiko.sftp_handle-module.html#WARNING
+paramiko.sftp_handle.CMD_REMOVE paramiko.sftp_handle-module.html#CMD_REMOVE
+paramiko.sftp_handle.SFTP_EOF paramiko.sftp_handle-module.html#SFTP_EOF
+paramiko.sftp_handle.CMD_FSETSTAT paramiko.sftp_handle-module.html#CMD_FSETSTAT
+paramiko.sftp_handle.SFTP_FLAG_TRUNC paramiko.sftp_handle-module.html#SFTP_FLAG_TRUNC
+paramiko.sftp_handle.CMD_SETSTAT paramiko.sftp_handle-module.html#CMD_SETSTAT
+paramiko.sftp_handle.ERROR paramiko.sftp_handle-module.html#ERROR
+paramiko.sftp_handle.DEBUG paramiko.sftp_handle-module.html#DEBUG
+paramiko.sftp_handle.CMD_FSTAT paramiko.sftp_handle-module.html#CMD_FSTAT
+paramiko.sftp_handle.MSG_USERAUTH_BANNER paramiko.sftp_handle-module.html#MSG_USERAUTH_BANNER
+paramiko.sftp_handle.CMD_OPENDIR paramiko.sftp_handle-module.html#CMD_OPENDIR
+paramiko.sftp_handle.SFTP_FAILURE paramiko.sftp_handle-module.html#SFTP_FAILURE
+paramiko.sftp_handle.SFTP_NO_CONNECTION paramiko.sftp_handle-module.html#SFTP_NO_CONNECTION
+paramiko.sftp_handle.AUTH_FAILED paramiko.sftp_handle-module.html#AUTH_FAILED
+paramiko.sftp_handle.MSG_REQUEST_SUCCESS paramiko.sftp_handle-module.html#MSG_REQUEST_SUCCESS
+paramiko.sftp_handle.AUTH_SUCCESSFUL paramiko.sftp_handle-module.html#AUTH_SUCCESSFUL
+paramiko.sftp_handle.MSG_CHANNEL_WINDOW_ADJUST paramiko.sftp_handle-module.html#MSG_CHANNEL_WINDOW_ADJUST
+paramiko.sftp_handle.MSG_CHANNEL_REQUEST paramiko.sftp_handle-module.html#MSG_CHANNEL_REQUEST
+paramiko.sftp_handle.MSG_USERAUTH_INFO_REQUEST paramiko.sftp_handle-module.html#MSG_USERAUTH_INFO_REQUEST
+paramiko.sftp_handle.CMD_ATTRS paramiko.sftp_handle-module.html#CMD_ATTRS
+paramiko.sftp_handle.CMD_EXTENDED_REPLY paramiko.sftp_handle-module.html#CMD_EXTENDED_REPLY
+paramiko.sftp_handle.MSG_DISCONNECT paramiko.sftp_handle-module.html#MSG_DISCONNECT
+paramiko.sftp_handle.MSG_IGNORE paramiko.sftp_handle-module.html#MSG_IGNORE
+paramiko.sftp_handle.SFTP_FLAG_EXCL paramiko.sftp_handle-module.html#SFTP_FLAG_EXCL
+paramiko.sftp_handle.SFTP_NO_SUCH_FILE paramiko.sftp_handle-module.html#SFTP_NO_SUCH_FILE
+paramiko.sftp_handle.MSG_USERAUTH_FAILURE paramiko.sftp_handle-module.html#MSG_USERAUTH_FAILURE
+paramiko.sftp_handle.MSG_KEXINIT paramiko.sftp_handle-module.html#MSG_KEXINIT
+paramiko.sftp_handle.MSG_CHANNEL_DATA paramiko.sftp_handle-module.html#MSG_CHANNEL_DATA
+paramiko.sftp_handle.CMD_CLOSE paramiko.sftp_handle-module.html#CMD_CLOSE
+paramiko.sftp_handle.CMD_RENAME paramiko.sftp_handle-module.html#CMD_RENAME
+paramiko.sftp_handle.SFTP_FLAG_CREATE paramiko.sftp_handle-module.html#SFTP_FLAG_CREATE
+paramiko.sftp_handle.MSG_DEBUG paramiko.sftp_handle-module.html#MSG_DEBUG
+paramiko.sftp_handle.SFTP_PERMISSION_DENIED paramiko.sftp_handle-module.html#SFTP_PERMISSION_DENIED
+paramiko.sftp_handle.OPEN_SUCCEEDED paramiko.sftp_handle-module.html#OPEN_SUCCEEDED
+paramiko.sftp_handle.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE paramiko.sftp_handle-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.sftp_handle.CMD_DATA paramiko.sftp_handle-module.html#CMD_DATA
+paramiko.sftp_handle.MSG_UNIMPLEMENTED paramiko.sftp_handle-module.html#MSG_UNIMPLEMENTED
+paramiko.sftp_handle.INFO paramiko.sftp_handle-module.html#INFO
+paramiko.sftp_handle.CMD_STAT paramiko.sftp_handle-module.html#CMD_STAT
+paramiko.sftp_handle.DISCONNECT_SERVICE_NOT_AVAILABLE paramiko.sftp_handle-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.sftp_handle.MSG_CHANNEL_EXTENDED_DATA paramiko.sftp_handle-module.html#MSG_CHANNEL_EXTENDED_DATA
+paramiko.sftp_handle.CMD_NAME paramiko.sftp_handle-module.html#CMD_NAME
+paramiko.sftp_handle.CONNECTION_FAILED_CODE paramiko.sftp_handle-module.html#CONNECTION_FAILED_CODE
+paramiko.sftp_handle.CMD_HANDLE paramiko.sftp_handle-module.html#CMD_HANDLE
+paramiko.sftp_handle.MSG_CHANNEL_OPEN paramiko.sftp_handle-module.html#MSG_CHANNEL_OPEN
+paramiko.sftp_handle.CMD_RMDIR paramiko.sftp_handle-module.html#CMD_RMDIR
+paramiko.sftp_handle.SFTP_OK paramiko.sftp_handle-module.html#SFTP_OK
+paramiko.sftp_handle.CMD_READ paramiko.sftp_handle-module.html#CMD_READ
+paramiko.sftp_handle.SFTP_OP_UNSUPPORTED paramiko.sftp_handle-module.html#SFTP_OP_UNSUPPORTED
+paramiko.sftp_handle.MSG_USERAUTH_INFO_RESPONSE paramiko.sftp_handle-module.html#MSG_USERAUTH_INFO_RESPONSE
+paramiko.sftp_handle.MSG_REQUEST_FAILURE paramiko.sftp_handle-module.html#MSG_REQUEST_FAILURE
+paramiko.sftp_handle.CMD_STATUS paramiko.sftp_handle-module.html#CMD_STATUS
+paramiko.sftp_handle.AUTH_PARTIALLY_SUCCESSFUL paramiko.sftp_handle-module.html#AUTH_PARTIALLY_SUCCESSFUL
+paramiko.sftp_handle.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED paramiko.sftp_handle-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.sftp_handle.MSG_CHANNEL_FAILURE paramiko.sftp_handle-module.html#MSG_CHANNEL_FAILURE
+paramiko.sftp_handle.SFTP_CONNECTION_LOST paramiko.sftp_handle-module.html#SFTP_CONNECTION_LOST
+paramiko.sftp_handle.OPEN_FAILED_CONNECT_FAILED paramiko.sftp_handle-module.html#OPEN_FAILED_CONNECT_FAILED
+paramiko.sftp_handle.MSG_USERAUTH_REQUEST paramiko.sftp_handle-module.html#MSG_USERAUTH_REQUEST
+paramiko.sftp_handle.MSG_SERVICE_REQUEST paramiko.sftp_handle-module.html#MSG_SERVICE_REQUEST
+paramiko.sftp_handle.CMD_REALPATH paramiko.sftp_handle-module.html#CMD_REALPATH
+paramiko.sftp_handle.MSG_CHANNEL_CLOSE paramiko.sftp_handle-module.html#MSG_CHANNEL_CLOSE
+paramiko.sftp_handle.MSG_CHANNEL_OPEN_SUCCESS paramiko.sftp_handle-module.html#MSG_CHANNEL_OPEN_SUCCESS
+paramiko.sftp_server paramiko.sftp_server-module.html
+paramiko.sftp_server.MSG_NAMES paramiko.sftp_server-module.html#MSG_NAMES
+paramiko.sftp_server.CMD_MKDIR paramiko.sftp_server-module.html#CMD_MKDIR
+paramiko.sftp_server.SFTP_FLAG_APPEND paramiko.sftp_server-module.html#SFTP_FLAG_APPEND
+paramiko.sftp_server.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE paramiko.sftp_server-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.sftp_server.SFTP_DESC paramiko.sftp_server-module.html#SFTP_DESC
+paramiko.sftp_server.CMD_LSTAT paramiko.sftp_server-module.html#CMD_LSTAT
+paramiko.sftp_server.MSG_GLOBAL_REQUEST paramiko.sftp_server-module.html#MSG_GLOBAL_REQUEST
+paramiko.sftp_server.MSG_CHANNEL_SUCCESS paramiko.sftp_server-module.html#MSG_CHANNEL_SUCCESS
+paramiko.sftp_server.CRITICAL paramiko.sftp_server-module.html#CRITICAL
+paramiko.sftp_server.SFTP_FLAG_READ paramiko.sftp_server-module.html#SFTP_FLAG_READ
+paramiko.sftp_server.CMD_SYMLINK paramiko.sftp_server-module.html#CMD_SYMLINK
+paramiko.sftp_server.OPEN_FAILED_RESOURCE_SHORTAGE paramiko.sftp_server-module.html#OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.sftp_server.MSG_CHANNEL_OPEN_FAILURE paramiko.sftp_server-module.html#MSG_CHANNEL_OPEN_FAILURE
+paramiko.sftp_server.CMD_VERSION paramiko.sftp_server-module.html#CMD_VERSION
+paramiko.sftp_server.CMD_INIT paramiko.sftp_server-module.html#CMD_INIT
+paramiko.sftp_server.CMD_EXTENDED paramiko.sftp_server-module.html#CMD_EXTENDED
+paramiko.sftp_server.MSG_CHANNEL_EOF paramiko.sftp_server-module.html#MSG_CHANNEL_EOF
+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.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
+paramiko.sftp_server.MSG_USERAUTH_PK_OK paramiko.sftp_server-module.html#MSG_USERAUTH_PK_OK
+paramiko.sftp_server.CMD_READDIR paramiko.sftp_server-module.html#CMD_READDIR
+paramiko.sftp_server.SFTP_FLAG_WRITE paramiko.sftp_server-module.html#SFTP_FLAG_WRITE
+paramiko.sftp_server.CMD_NAMES paramiko.sftp_server-module.html#CMD_NAMES
+paramiko.sftp_server.CMD_WRITE paramiko.sftp_server-module.html#CMD_WRITE
+paramiko.sftp_server.CMD_OPEN paramiko.sftp_server-module.html#CMD_OPEN
+paramiko.sftp_server.MSG_SERVICE_ACCEPT paramiko.sftp_server-module.html#MSG_SERVICE_ACCEPT
+paramiko.sftp_server.randpool paramiko.sftp_server-module.html#randpool
+paramiko.sftp_server.WARNING paramiko.sftp_server-module.html#WARNING
+paramiko.sftp_server.CMD_REMOVE paramiko.sftp_server-module.html#CMD_REMOVE
+paramiko.sftp_server.SFTP_EOF paramiko.sftp_server-module.html#SFTP_EOF
+paramiko.sftp_server.CMD_FSETSTAT paramiko.sftp_server-module.html#CMD_FSETSTAT
+paramiko.sftp_server.SFTP_FLAG_TRUNC paramiko.sftp_server-module.html#SFTP_FLAG_TRUNC
+paramiko.sftp_server.CMD_SETSTAT paramiko.sftp_server-module.html#CMD_SETSTAT
+paramiko.sftp_server.ERROR paramiko.sftp_server-module.html#ERROR
+paramiko.sftp_server.DEBUG paramiko.sftp_server-module.html#DEBUG
+paramiko.sftp_server.CMD_FSTAT paramiko.sftp_server-module.html#CMD_FSTAT
+paramiko.sftp_server.MSG_USERAUTH_BANNER paramiko.sftp_server-module.html#MSG_USERAUTH_BANNER
+paramiko.sftp_server.CMD_OPENDIR paramiko.sftp_server-module.html#CMD_OPENDIR
+paramiko.sftp_server.SFTP_FAILURE paramiko.sftp_server-module.html#SFTP_FAILURE
+paramiko.sftp_server.SFTP_NO_CONNECTION paramiko.sftp_server-module.html#SFTP_NO_CONNECTION
+paramiko.sftp_server.AUTH_FAILED paramiko.sftp_server-module.html#AUTH_FAILED
+paramiko.sftp_server.MSG_REQUEST_SUCCESS paramiko.sftp_server-module.html#MSG_REQUEST_SUCCESS
+paramiko.sftp_server.AUTH_SUCCESSFUL paramiko.sftp_server-module.html#AUTH_SUCCESSFUL
+paramiko.sftp_server.MSG_CHANNEL_WINDOW_ADJUST paramiko.sftp_server-module.html#MSG_CHANNEL_WINDOW_ADJUST
+paramiko.sftp_server.MSG_CHANNEL_REQUEST paramiko.sftp_server-module.html#MSG_CHANNEL_REQUEST
+paramiko.sftp_server.MSG_USERAUTH_INFO_REQUEST paramiko.sftp_server-module.html#MSG_USERAUTH_INFO_REQUEST
+paramiko.sftp_server.CMD_ATTRS paramiko.sftp_server-module.html#CMD_ATTRS
+paramiko.sftp_server.CMD_EXTENDED_REPLY paramiko.sftp_server-module.html#CMD_EXTENDED_REPLY
+paramiko.sftp_server.MSG_DISCONNECT paramiko.sftp_server-module.html#MSG_DISCONNECT
+paramiko.sftp_server.MSG_IGNORE paramiko.sftp_server-module.html#MSG_IGNORE
+paramiko.sftp_server.SFTP_FLAG_EXCL paramiko.sftp_server-module.html#SFTP_FLAG_EXCL
+paramiko.sftp_server.SFTP_NO_SUCH_FILE paramiko.sftp_server-module.html#SFTP_NO_SUCH_FILE
+paramiko.sftp_server.MSG_USERAUTH_FAILURE paramiko.sftp_server-module.html#MSG_USERAUTH_FAILURE
+paramiko.sftp_server.MSG_KEXINIT paramiko.sftp_server-module.html#MSG_KEXINIT
+paramiko.sftp_server.MSG_CHANNEL_DATA paramiko.sftp_server-module.html#MSG_CHANNEL_DATA
+paramiko.sftp_server.CMD_CLOSE paramiko.sftp_server-module.html#CMD_CLOSE
+paramiko.sftp_server.CMD_RENAME paramiko.sftp_server-module.html#CMD_RENAME
+paramiko.sftp_server.SFTP_FLAG_CREATE paramiko.sftp_server-module.html#SFTP_FLAG_CREATE
+paramiko.sftp_server.MSG_DEBUG paramiko.sftp_server-module.html#MSG_DEBUG
+paramiko.sftp_server.SFTP_PERMISSION_DENIED paramiko.sftp_server-module.html#SFTP_PERMISSION_DENIED
+paramiko.sftp_server.OPEN_SUCCEEDED paramiko.sftp_server-module.html#OPEN_SUCCEEDED
+paramiko.sftp_server._hash_class paramiko.sftp_server-module.html#_hash_class
+paramiko.sftp_server.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE paramiko.sftp_server-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.sftp_server.CMD_DATA paramiko.sftp_server-module.html#CMD_DATA
+paramiko.sftp_server.MSG_UNIMPLEMENTED paramiko.sftp_server-module.html#MSG_UNIMPLEMENTED
+paramiko.sftp_server.INFO paramiko.sftp_server-module.html#INFO
+paramiko.sftp_server.CMD_STAT paramiko.sftp_server-module.html#CMD_STAT
+paramiko.sftp_server.DISCONNECT_SERVICE_NOT_AVAILABLE paramiko.sftp_server-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.sftp_server.MSG_CHANNEL_EXTENDED_DATA paramiko.sftp_server-module.html#MSG_CHANNEL_EXTENDED_DATA
+paramiko.sftp_server.CMD_NAME paramiko.sftp_server-module.html#CMD_NAME
+paramiko.sftp_server.CONNECTION_FAILED_CODE paramiko.sftp_server-module.html#CONNECTION_FAILED_CODE
+paramiko.sftp_server.CMD_HANDLE paramiko.sftp_server-module.html#CMD_HANDLE
+paramiko.sftp_server.MSG_CHANNEL_OPEN paramiko.sftp_server-module.html#MSG_CHANNEL_OPEN
+paramiko.sftp_server.CMD_RMDIR paramiko.sftp_server-module.html#CMD_RMDIR
+paramiko.sftp_server.SFTP_OK paramiko.sftp_server-module.html#SFTP_OK
+paramiko.sftp_server.CMD_READ paramiko.sftp_server-module.html#CMD_READ
+paramiko.sftp_server.SFTP_OP_UNSUPPORTED paramiko.sftp_server-module.html#SFTP_OP_UNSUPPORTED
+paramiko.sftp_server.MSG_USERAUTH_INFO_RESPONSE paramiko.sftp_server-module.html#MSG_USERAUTH_INFO_RESPONSE
+paramiko.sftp_server.MSG_REQUEST_FAILURE paramiko.sftp_server-module.html#MSG_REQUEST_FAILURE
+paramiko.sftp_server.CMD_STATUS paramiko.sftp_server-module.html#CMD_STATUS
+paramiko.sftp_server.AUTH_PARTIALLY_SUCCESSFUL paramiko.sftp_server-module.html#AUTH_PARTIALLY_SUCCESSFUL
+paramiko.sftp_server.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED paramiko.sftp_server-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.sftp_server.MSG_CHANNEL_FAILURE paramiko.sftp_server-module.html#MSG_CHANNEL_FAILURE
+paramiko.sftp_server.SFTP_CONNECTION_LOST paramiko.sftp_server-module.html#SFTP_CONNECTION_LOST
+paramiko.sftp_server.OPEN_FAILED_CONNECT_FAILED paramiko.sftp_server-module.html#OPEN_FAILED_CONNECT_FAILED
+paramiko.sftp_server.MSG_USERAUTH_REQUEST paramiko.sftp_server-module.html#MSG_USERAUTH_REQUEST
+paramiko.sftp_server.MSG_SERVICE_REQUEST paramiko.sftp_server-module.html#MSG_SERVICE_REQUEST
+paramiko.sftp_server.CMD_REALPATH paramiko.sftp_server-module.html#CMD_REALPATH
+paramiko.sftp_server.MSG_CHANNEL_CLOSE paramiko.sftp_server-module.html#MSG_CHANNEL_CLOSE
+paramiko.sftp_server.MSG_CHANNEL_OPEN_SUCCESS paramiko.sftp_server-module.html#MSG_CHANNEL_OPEN_SUCCESS
+paramiko.sftp_si paramiko.sftp_si-module.html
+paramiko.sftp_si.MSG_NAMES paramiko.sftp_si-module.html#MSG_NAMES
+paramiko.sftp_si.CMD_MKDIR paramiko.sftp_si-module.html#CMD_MKDIR
+paramiko.sftp_si.SFTP_FLAG_APPEND paramiko.sftp_si-module.html#SFTP_FLAG_APPEND
+paramiko.sftp_si.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE paramiko.sftp_si-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.sftp_si.SFTP_DESC paramiko.sftp_si-module.html#SFTP_DESC
+paramiko.sftp_si.CMD_LSTAT paramiko.sftp_si-module.html#CMD_LSTAT
+paramiko.sftp_si.MSG_GLOBAL_REQUEST paramiko.sftp_si-module.html#MSG_GLOBAL_REQUEST
+paramiko.sftp_si.MSG_CHANNEL_SUCCESS paramiko.sftp_si-module.html#MSG_CHANNEL_SUCCESS
+paramiko.sftp_si.CRITICAL paramiko.sftp_si-module.html#CRITICAL
+paramiko.sftp_si.SFTP_FLAG_READ paramiko.sftp_si-module.html#SFTP_FLAG_READ
+paramiko.sftp_si.CMD_SYMLINK paramiko.sftp_si-module.html#CMD_SYMLINK
+paramiko.sftp_si.OPEN_FAILED_RESOURCE_SHORTAGE paramiko.sftp_si-module.html#OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.sftp_si.MSG_CHANNEL_OPEN_FAILURE paramiko.sftp_si-module.html#MSG_CHANNEL_OPEN_FAILURE
+paramiko.sftp_si.CMD_VERSION paramiko.sftp_si-module.html#CMD_VERSION
+paramiko.sftp_si.CMD_INIT paramiko.sftp_si-module.html#CMD_INIT
+paramiko.sftp_si.CMD_EXTENDED paramiko.sftp_si-module.html#CMD_EXTENDED
+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.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
+paramiko.sftp_si.MSG_USERAUTH_PK_OK paramiko.sftp_si-module.html#MSG_USERAUTH_PK_OK
+paramiko.sftp_si.CMD_READDIR paramiko.sftp_si-module.html#CMD_READDIR
+paramiko.sftp_si.SFTP_FLAG_WRITE paramiko.sftp_si-module.html#SFTP_FLAG_WRITE
+paramiko.sftp_si.CMD_NAMES paramiko.sftp_si-module.html#CMD_NAMES
+paramiko.sftp_si.CMD_WRITE paramiko.sftp_si-module.html#CMD_WRITE
+paramiko.sftp_si.CMD_OPEN paramiko.sftp_si-module.html#CMD_OPEN
+paramiko.sftp_si.MSG_SERVICE_ACCEPT paramiko.sftp_si-module.html#MSG_SERVICE_ACCEPT
+paramiko.sftp_si.randpool paramiko.sftp_si-module.html#randpool
+paramiko.sftp_si.WARNING paramiko.sftp_si-module.html#WARNING
+paramiko.sftp_si.CMD_REMOVE paramiko.sftp_si-module.html#CMD_REMOVE
+paramiko.sftp_si.SFTP_EOF paramiko.sftp_si-module.html#SFTP_EOF
+paramiko.sftp_si.CMD_FSETSTAT paramiko.sftp_si-module.html#CMD_FSETSTAT
+paramiko.sftp_si.SFTP_FLAG_TRUNC paramiko.sftp_si-module.html#SFTP_FLAG_TRUNC
+paramiko.sftp_si.CMD_SETSTAT paramiko.sftp_si-module.html#CMD_SETSTAT
+paramiko.sftp_si.ERROR paramiko.sftp_si-module.html#ERROR
+paramiko.sftp_si.DEBUG paramiko.sftp_si-module.html#DEBUG
+paramiko.sftp_si.CMD_FSTAT paramiko.sftp_si-module.html#CMD_FSTAT
+paramiko.sftp_si.MSG_USERAUTH_BANNER paramiko.sftp_si-module.html#MSG_USERAUTH_BANNER
+paramiko.sftp_si.CMD_OPENDIR paramiko.sftp_si-module.html#CMD_OPENDIR
+paramiko.sftp_si.SFTP_FAILURE paramiko.sftp_si-module.html#SFTP_FAILURE
+paramiko.sftp_si.SFTP_NO_CONNECTION paramiko.sftp_si-module.html#SFTP_NO_CONNECTION
+paramiko.sftp_si.AUTH_FAILED paramiko.sftp_si-module.html#AUTH_FAILED
+paramiko.sftp_si.MSG_REQUEST_SUCCESS paramiko.sftp_si-module.html#MSG_REQUEST_SUCCESS
+paramiko.sftp_si.AUTH_SUCCESSFUL paramiko.sftp_si-module.html#AUTH_SUCCESSFUL
+paramiko.sftp_si.MSG_CHANNEL_WINDOW_ADJUST paramiko.sftp_si-module.html#MSG_CHANNEL_WINDOW_ADJUST
+paramiko.sftp_si.MSG_CHANNEL_REQUEST paramiko.sftp_si-module.html#MSG_CHANNEL_REQUEST
+paramiko.sftp_si.MSG_USERAUTH_INFO_REQUEST paramiko.sftp_si-module.html#MSG_USERAUTH_INFO_REQUEST
+paramiko.sftp_si.CMD_ATTRS paramiko.sftp_si-module.html#CMD_ATTRS
+paramiko.sftp_si.CMD_EXTENDED_REPLY paramiko.sftp_si-module.html#CMD_EXTENDED_REPLY
+paramiko.sftp_si.MSG_DISCONNECT paramiko.sftp_si-module.html#MSG_DISCONNECT
+paramiko.sftp_si.MSG_IGNORE paramiko.sftp_si-module.html#MSG_IGNORE
+paramiko.sftp_si.SFTP_FLAG_EXCL paramiko.sftp_si-module.html#SFTP_FLAG_EXCL
+paramiko.sftp_si.SFTP_NO_SUCH_FILE paramiko.sftp_si-module.html#SFTP_NO_SUCH_FILE
+paramiko.sftp_si.MSG_USERAUTH_FAILURE paramiko.sftp_si-module.html#MSG_USERAUTH_FAILURE
+paramiko.sftp_si.MSG_KEXINIT paramiko.sftp_si-module.html#MSG_KEXINIT
+paramiko.sftp_si.MSG_CHANNEL_DATA paramiko.sftp_si-module.html#MSG_CHANNEL_DATA
+paramiko.sftp_si.CMD_CLOSE paramiko.sftp_si-module.html#CMD_CLOSE
+paramiko.sftp_si.CMD_RENAME paramiko.sftp_si-module.html#CMD_RENAME
+paramiko.sftp_si.SFTP_FLAG_CREATE paramiko.sftp_si-module.html#SFTP_FLAG_CREATE
+paramiko.sftp_si.MSG_DEBUG paramiko.sftp_si-module.html#MSG_DEBUG
+paramiko.sftp_si.SFTP_PERMISSION_DENIED paramiko.sftp_si-module.html#SFTP_PERMISSION_DENIED
+paramiko.sftp_si.OPEN_SUCCEEDED paramiko.sftp_si-module.html#OPEN_SUCCEEDED
+paramiko.sftp_si.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE paramiko.sftp_si-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.sftp_si.CMD_DATA paramiko.sftp_si-module.html#CMD_DATA
+paramiko.sftp_si.MSG_UNIMPLEMENTED paramiko.sftp_si-module.html#MSG_UNIMPLEMENTED
+paramiko.sftp_si.INFO paramiko.sftp_si-module.html#INFO
+paramiko.sftp_si.CMD_STAT paramiko.sftp_si-module.html#CMD_STAT
+paramiko.sftp_si.DISCONNECT_SERVICE_NOT_AVAILABLE paramiko.sftp_si-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.sftp_si.MSG_CHANNEL_EXTENDED_DATA paramiko.sftp_si-module.html#MSG_CHANNEL_EXTENDED_DATA
+paramiko.sftp_si.CMD_NAME paramiko.sftp_si-module.html#CMD_NAME
+paramiko.sftp_si.CONNECTION_FAILED_CODE paramiko.sftp_si-module.html#CONNECTION_FAILED_CODE
+paramiko.sftp_si.CMD_HANDLE paramiko.sftp_si-module.html#CMD_HANDLE
+paramiko.sftp_si.MSG_CHANNEL_OPEN paramiko.sftp_si-module.html#MSG_CHANNEL_OPEN
+paramiko.sftp_si.CMD_RMDIR paramiko.sftp_si-module.html#CMD_RMDIR
+paramiko.sftp_si.SFTP_OK paramiko.sftp_si-module.html#SFTP_OK
+paramiko.sftp_si.CMD_READ paramiko.sftp_si-module.html#CMD_READ
+paramiko.sftp_si.SFTP_OP_UNSUPPORTED paramiko.sftp_si-module.html#SFTP_OP_UNSUPPORTED
+paramiko.sftp_si.MSG_USERAUTH_INFO_RESPONSE paramiko.sftp_si-module.html#MSG_USERAUTH_INFO_RESPONSE
+paramiko.sftp_si.MSG_REQUEST_FAILURE paramiko.sftp_si-module.html#MSG_REQUEST_FAILURE
+paramiko.sftp_si.CMD_STATUS paramiko.sftp_si-module.html#CMD_STATUS
+paramiko.sftp_si.AUTH_PARTIALLY_SUCCESSFUL paramiko.sftp_si-module.html#AUTH_PARTIALLY_SUCCESSFUL
+paramiko.sftp_si.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED paramiko.sftp_si-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.sftp_si.MSG_CHANNEL_FAILURE paramiko.sftp_si-module.html#MSG_CHANNEL_FAILURE
+paramiko.sftp_si.SFTP_CONNECTION_LOST paramiko.sftp_si-module.html#SFTP_CONNECTION_LOST
+paramiko.sftp_si.OPEN_FAILED_CONNECT_FAILED paramiko.sftp_si-module.html#OPEN_FAILED_CONNECT_FAILED
+paramiko.sftp_si.MSG_USERAUTH_REQUEST paramiko.sftp_si-module.html#MSG_USERAUTH_REQUEST
+paramiko.sftp_si.MSG_SERVICE_REQUEST paramiko.sftp_si-module.html#MSG_SERVICE_REQUEST
+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.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
+paramiko.transport.MSG_GLOBAL_REQUEST paramiko.transport-module.html#MSG_GLOBAL_REQUEST
+paramiko.transport._active_threads paramiko.transport-module.html#_active_threads
+paramiko.transport.MSG_CHANNEL_SUCCESS paramiko.transport-module.html#MSG_CHANNEL_SUCCESS
+paramiko.transport.CRITICAL paramiko.transport-module.html#CRITICAL
+paramiko.transport.OPEN_FAILED_RESOURCE_SHORTAGE paramiko.transport-module.html#OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.transport.MSG_CHANNEL_OPEN_FAILURE paramiko.transport-module.html#MSG_CHANNEL_OPEN_FAILURE
+paramiko.transport.PY22 paramiko.transport-module.html#PY22
+paramiko.transport.DISCONNECT_AUTH_CANCELLED_BY_USER paramiko.transport-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER
+paramiko.transport.MSG_NEWKEYS paramiko.transport-module.html#MSG_NEWKEYS
+paramiko.transport.MSG_USERAUTH_SUCCESS paramiko.transport-module.html#MSG_USERAUTH_SUCCESS
+paramiko.transport.MSG_KEXINIT paramiko.transport-module.html#MSG_KEXINIT
+paramiko.transport.MSG_SERVICE_ACCEPT paramiko.transport-module.html#MSG_SERVICE_ACCEPT
+paramiko.transport.randpool paramiko.transport-module.html#randpool
+paramiko.transport.WARNING paramiko.transport-module.html#WARNING
+paramiko.transport.ERROR paramiko.transport-module.html#ERROR
+paramiko.transport.DEBUG paramiko.transport-module.html#DEBUG
+paramiko.transport.MSG_USERAUTH_BANNER paramiko.transport-module.html#MSG_USERAUTH_BANNER
+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
+paramiko.transport.MSG_USERAUTH_INFO_REQUEST paramiko.transport-module.html#MSG_USERAUTH_INFO_REQUEST
+paramiko.transport.MSG_DISCONNECT paramiko.transport-module.html#MSG_DISCONNECT
+paramiko.transport.MSG_IGNORE paramiko.transport-module.html#MSG_IGNORE
+paramiko.transport.MSG_USERAUTH_FAILURE paramiko.transport-module.html#MSG_USERAUTH_FAILURE
+paramiko.transport.MSG_CHANNEL_DATA paramiko.transport-module.html#MSG_CHANNEL_DATA
+paramiko.transport.MSG_UNIMPLEMENTED paramiko.transport-module.html#MSG_UNIMPLEMENTED
+paramiko.transport.MSG_DEBUG paramiko.transport-module.html#MSG_DEBUG
+paramiko.transport.OPEN_SUCCEEDED paramiko.transport-module.html#OPEN_SUCCEEDED
+paramiko.transport.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE paramiko.transport-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.transport.INFO paramiko.transport-module.html#INFO
+paramiko.transport.DISCONNECT_SERVICE_NOT_AVAILABLE paramiko.transport-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.transport.MSG_CHANNEL_EXTENDED_DATA paramiko.transport-module.html#MSG_CHANNEL_EXTENDED_DATA
+paramiko.transport.CONNECTION_FAILED_CODE paramiko.transport-module.html#CONNECTION_FAILED_CODE
+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.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.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_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
+paramiko.util.generate_key_bytes paramiko.util-module.html#generate_key_bytes
+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.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
+paramiko.util.load_host_keys paramiko.util-module.html#load_host_keys
+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
+paramiko.util.MSG_GLOBAL_REQUEST paramiko.util-module.html#MSG_GLOBAL_REQUEST
+paramiko.util.MSG_USERAUTH_INFO_RESPONSE paramiko.util-module.html#MSG_USERAUTH_INFO_RESPONSE
+paramiko.util.get_logger paramiko.util-module.html#get_logger
+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._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
+paramiko.util.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED paramiko.util-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.util.parse_ssh_config paramiko.util-module.html#parse_ssh_config
+paramiko.util.MSG_UNIMPLEMENTED paramiko.util-module.html#MSG_UNIMPLEMENTED
+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.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
+paramiko.util.safe_string paramiko.util-module.html#safe_string
+paramiko.util.format_binary_line paramiko.util-module.html#format_binary_line
+paramiko.util.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE paramiko.util-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.util.OPEN_FAILED_RESOURCE_SHORTAGE paramiko.util-module.html#OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.util.ERROR paramiko.util-module.html#ERROR
+paramiko.util.DEBUG paramiko.util-module.html#DEBUG
+paramiko.util.AUTH_PARTIALLY_SUCCESSFUL paramiko.util-module.html#AUTH_PARTIALLY_SUCCESSFUL
+paramiko.util.hexify paramiko.util-module.html#hexify
+paramiko.util.OPEN_FAILED_CONNECT_FAILED paramiko.util-module.html#OPEN_FAILED_CONNECT_FAILED
+paramiko.util.INFO paramiko.util-module.html#INFO
+paramiko.util.MSG_USERAUTH_BANNER paramiko.util-module.html#MSG_USERAUTH_BANNER
+paramiko.util.MSG_NEWKEYS paramiko.util-module.html#MSG_NEWKEYS
+paramiko.util.MSG_USERAUTH_PK_OK paramiko.util-module.html#MSG_USERAUTH_PK_OK
+paramiko.util.WARNING paramiko.util-module.html#WARNING
+paramiko.util.mod_inverse paramiko.util-module.html#mod_inverse
+paramiko.util.MSG_USERAUTH_REQUEST paramiko.util-module.html#MSG_USERAUTH_REQUEST
+paramiko.util.DISCONNECT_SERVICE_NOT_AVAILABLE paramiko.util-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.util.format_binary_weird paramiko.util-module.html#format_binary_weird
+paramiko.util.PY22 paramiko.util-module.html#PY22
+paramiko.util.MSG_SERVICE_REQUEST paramiko.util-module.html#MSG_SERVICE_REQUEST
+paramiko.util.AUTH_FAILED paramiko.util-module.html#AUTH_FAILED
+paramiko.util._pfilter paramiko.util-module.html#_pfilter
+paramiko.util.MSG_CHANNEL_EXTENDED_DATA paramiko.util-module.html#MSG_CHANNEL_EXTENDED_DATA
+paramiko.util.format_binary paramiko.util-module.html#format_binary
+paramiko.util.MSG_CHANNEL_CLOSE paramiko.util-module.html#MSG_CHANNEL_CLOSE
+paramiko.util.DISCONNECT_AUTH_CANCELLED_BY_USER paramiko.util-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER
+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.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._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_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
+paramiko.Agent._send_message paramiko.Agent-class.html#_send_message
+paramiko.Agent.close paramiko.Agent-class.html#close
+paramiko.Agent.get_keys paramiko.Agent-class.html#get_keys
+paramiko.Agent.__init__ paramiko.Agent-class.html#__init__
+paramiko.Agent._read_all paramiko.Agent-class.html#_read_all
+paramiko.AgentKey paramiko.AgentKey-class.html
+paramiko.AgentKey.sign_ssh_data paramiko.AgentKey-class.html#sign_ssh_data
+paramiko.PKey.write_private_key_file paramiko.PKey-class.html#write_private_key_file
+paramiko.AgentKey.__str__ paramiko.AgentKey-class.html#__str__
+paramiko.PKey._write_private_key_file paramiko.PKey-class.html#_write_private_key_file
+paramiko.PKey.__cmp__ paramiko.PKey-class.html#__cmp__
+paramiko.AgentKey.__init__ paramiko.AgentKey-class.html#__init__
+paramiko.PKey.get_bits paramiko.PKey-class.html#get_bits
+paramiko.PKey.from_private_key paramiko.PKey-class.html#from_private_key
+paramiko.PKey.from_private_key_file paramiko.PKey-class.html#from_private_key_file
+paramiko.PKey.verify_ssh_sig paramiko.PKey-class.html#verify_ssh_sig
+paramiko.PKey._CIPHER_TABLE paramiko.PKey-class.html#_CIPHER_TABLE
+paramiko.PKey.get_fingerprint paramiko.PKey-class.html#get_fingerprint
+paramiko.PKey._write_private_key paramiko.PKey-class.html#_write_private_key
+paramiko.PKey.get_base64 paramiko.PKey-class.html#get_base64
+paramiko.PKey._read_private_key paramiko.PKey-class.html#_read_private_key
+paramiko.PKey.write_private_key paramiko.PKey-class.html#write_private_key
+paramiko.AgentKey.get_name paramiko.AgentKey-class.html#get_name
+paramiko.PKey._read_private_key_file paramiko.PKey-class.html#_read_private_key_file
+paramiko.PKey.can_sign paramiko.PKey-class.html#can_sign
+paramiko.AuthenticationException paramiko.AuthenticationException-class.html
+paramiko.AutoAddPolicy paramiko.AutoAddPolicy-class.html
+paramiko.AutoAddPolicy.missing_host_key paramiko.AutoAddPolicy-class.html#missing_host_key
+paramiko.BadAuthenticationType paramiko.BadAuthenticationType-class.html
+paramiko.BadAuthenticationType.__str__ paramiko.BadAuthenticationType-class.html#__str__
+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.BufferedFile paramiko.BufferedFile-class.html
+paramiko.BufferedFile.xreadlines paramiko.BufferedFile-class.html#xreadlines
+paramiko.BufferedFile.readlines paramiko.BufferedFile-class.html#readlines
+paramiko.BufferedFile.SEEK_CUR paramiko.BufferedFile-class.html#SEEK_CUR
+paramiko.BufferedFile.FLAG_READ paramiko.BufferedFile-class.html#FLAG_READ
+paramiko.BufferedFile.flush paramiko.BufferedFile-class.html#flush
+paramiko.BufferedFile.close paramiko.BufferedFile-class.html#close
+paramiko.BufferedFile._set_mode paramiko.BufferedFile-class.html#_set_mode
+paramiko.BufferedFile._write paramiko.BufferedFile-class.html#_write
+paramiko.BufferedFile.__init__ paramiko.BufferedFile-class.html#__init__
+paramiko.BufferedFile.FLAG_UNIVERSAL_NEWLINE paramiko.BufferedFile-class.html#FLAG_UNIVERSAL_NEWLINE
+paramiko.BufferedFile.readline paramiko.BufferedFile-class.html#readline
+paramiko.BufferedFile.seek paramiko.BufferedFile-class.html#seek
+paramiko.BufferedFile.next paramiko.BufferedFile-class.html#next
+paramiko.BufferedFile.write paramiko.BufferedFile-class.html#write
+paramiko.BufferedFile.read paramiko.BufferedFile-class.html#read
+paramiko.BufferedFile.tell paramiko.BufferedFile-class.html#tell
+paramiko.BufferedFile.FLAG_BINARY paramiko.BufferedFile-class.html#FLAG_BINARY
+paramiko.BufferedFile.__del__ paramiko.BufferedFile-class.html#__del__
+paramiko.BufferedFile.SEEK_SET paramiko.BufferedFile-class.html#SEEK_SET
+paramiko.BufferedFile.FLAG_APPEND paramiko.BufferedFile-class.html#FLAG_APPEND
+paramiko.BufferedFile.__iter__ paramiko.BufferedFile-class.html#__iter__
+paramiko.BufferedFile._record_newline paramiko.BufferedFile-class.html#_record_newline
+paramiko.BufferedFile._DEFAULT_BUFSIZE paramiko.BufferedFile-class.html#_DEFAULT_BUFSIZE
+paramiko.BufferedFile.FLAG_BUFFERED paramiko.BufferedFile-class.html#FLAG_BUFFERED
+paramiko.BufferedFile._write_all paramiko.BufferedFile-class.html#_write_all
+paramiko.BufferedFile.writelines paramiko.BufferedFile-class.html#writelines
+paramiko.BufferedFile.SEEK_END paramiko.BufferedFile-class.html#SEEK_END
+paramiko.BufferedFile._read paramiko.BufferedFile-class.html#_read
+paramiko.BufferedFile.FLAG_LINE_BUFFERED paramiko.BufferedFile-class.html#FLAG_LINE_BUFFERED
+paramiko.BufferedFile._get_size paramiko.BufferedFile-class.html#_get_size
+paramiko.BufferedFile.FLAG_WRITE paramiko.BufferedFile-class.html#FLAG_WRITE
+paramiko.Channel paramiko.Channel-class.html
+paramiko.Channel.makefile_stderr paramiko.Channel-class.html#makefile_stderr
+paramiko.Channel.gettimeout paramiko.Channel-class.html#gettimeout
+paramiko.Channel.shutdown_read paramiko.Channel-class.html#shutdown_read
+paramiko.Channel.set_combine_stderr paramiko.Channel-class.html#set_combine_stderr
+paramiko.Channel.send_ready paramiko.Channel-class.html#send_ready
+paramiko.Channel._unlink paramiko.Channel-class.html#_unlink
+paramiko.Channel.shutdown paramiko.Channel-class.html#shutdown
+paramiko.Channel.get_transport paramiko.Channel-class.html#get_transport
+paramiko.Channel.sendall_stderr paramiko.Channel-class.html#sendall_stderr
+paramiko.Channel.close paramiko.Channel-class.html#close
+paramiko.Channel.send_exit_status paramiko.Channel-class.html#send_exit_status
+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.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
+paramiko.Channel._set_remote_channel paramiko.Channel-class.html#_set_remote_channel
+paramiko.Channel._feed paramiko.Channel-class.html#_feed
+paramiko.Channel.makefile paramiko.Channel-class.html#makefile
+paramiko.Channel._handle_close paramiko.Channel-class.html#_handle_close
+paramiko.Channel.send paramiko.Channel-class.html#send
+paramiko.Channel._handle_request paramiko.Channel-class.html#_handle_request
+paramiko.Channel.resize_pty paramiko.Channel-class.html#resize_pty
+paramiko.Channel.get_pty paramiko.Channel-class.html#get_pty
+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.__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
+paramiko.Channel.invoke_shell paramiko.Channel-class.html#invoke_shell
+paramiko.Channel.recv_exit_status paramiko.Channel-class.html#recv_exit_status
+paramiko.Channel._request_failed paramiko.Channel-class.html#_request_failed
+paramiko.Channel.get_id paramiko.Channel-class.html#get_id
+paramiko.Channel.send_stderr paramiko.Channel-class.html#send_stderr
+paramiko.Channel._log paramiko.Channel-class.html#_log
+paramiko.Channel.getpeername paramiko.Channel-class.html#getpeername
+paramiko.Channel.recv paramiko.Channel-class.html#recv
+paramiko.Channel.exec_command paramiko.Channel-class.html#exec_command
+paramiko.Channel.setblocking paramiko.Channel-class.html#setblocking
+paramiko.Channel._wait_for_event paramiko.Channel-class.html#_wait_for_event
+paramiko.Channel.fileno paramiko.Channel-class.html#fileno
+paramiko.Channel.set_name paramiko.Channel-class.html#set_name
+paramiko.Channel._handle_eof paramiko.Channel-class.html#_handle_eof
+paramiko.Channel._close_internal paramiko.Channel-class.html#_close_internal
+paramiko.Channel._set_window paramiko.Channel-class.html#_set_window
+paramiko.Channel._set_transport paramiko.Channel-class.html#_set_transport
+paramiko.Channel.get_name paramiko.Channel-class.html#get_name
+paramiko.Channel.__repr__ paramiko.Channel-class.html#__repr__
+paramiko.Channel.sendall paramiko.Channel-class.html#sendall
+paramiko.Channel._wait_for_send_window paramiko.Channel-class.html#_wait_for_send_window
+paramiko.Channel.settimeout paramiko.Channel-class.html#settimeout
+paramiko.ChannelException paramiko.ChannelException-class.html
+paramiko.ChannelException.code paramiko.ChannelException-class.html#code
+paramiko.ChannelException.__init__ paramiko.ChannelException-class.html#__init__
+paramiko.DSSKey paramiko.DSSKey-class.html
+paramiko.DSSKey.sign_ssh_data paramiko.DSSKey-class.html#sign_ssh_data
+paramiko.DSSKey._from_private_key paramiko.DSSKey-class.html#_from_private_key
+paramiko.DSSKey.write_private_key_file paramiko.DSSKey-class.html#write_private_key_file
+paramiko.DSSKey.__str__ paramiko.DSSKey-class.html#__str__
+paramiko.PKey._write_private_key_file paramiko.PKey-class.html#_write_private_key_file
+paramiko.PKey.__cmp__ paramiko.PKey-class.html#__cmp__
+paramiko.DSSKey.__init__ paramiko.DSSKey-class.html#__init__
+paramiko.DSSKey._from_private_key_file paramiko.DSSKey-class.html#_from_private_key_file
+paramiko.DSSKey.get_bits paramiko.DSSKey-class.html#get_bits
+paramiko.PKey.from_private_key paramiko.PKey-class.html#from_private_key
+paramiko.DSSKey.verify_ssh_sig paramiko.DSSKey-class.html#verify_ssh_sig
+paramiko.DSSKey.can_sign paramiko.DSSKey-class.html#can_sign
+paramiko.PKey.from_private_key_file paramiko.PKey-class.html#from_private_key_file
+paramiko.PKey._CIPHER_TABLE paramiko.PKey-class.html#_CIPHER_TABLE
+paramiko.PKey.get_fingerprint paramiko.PKey-class.html#get_fingerprint
+paramiko.PKey._write_private_key paramiko.PKey-class.html#_write_private_key
+paramiko.PKey.get_base64 paramiko.PKey-class.html#get_base64
+paramiko.PKey._read_private_key paramiko.PKey-class.html#_read_private_key
+paramiko.DSSKey.write_private_key paramiko.DSSKey-class.html#write_private_key
+paramiko.DSSKey.generate paramiko.DSSKey-class.html#generate
+paramiko.DSSKey.get_name paramiko.DSSKey-class.html#get_name
+paramiko.DSSKey._encode_key paramiko.DSSKey-class.html#_encode_key
+paramiko.DSSKey._decode_key paramiko.DSSKey-class.html#_decode_key
+paramiko.DSSKey.__hash__ paramiko.DSSKey-class.html#__hash__
+paramiko.PKey._read_private_key_file paramiko.PKey-class.html#_read_private_key_file
+paramiko.HostKeys paramiko.HostKeys-class.html
+paramiko.HostKeys.load paramiko.HostKeys-class.html#load
+paramiko.HostKeys.check paramiko.HostKeys-class.html#check
+paramiko.HostKeys.__init__ paramiko.HostKeys-class.html#__init__
+paramiko.HostKeys.add paramiko.HostKeys-class.html#add
+paramiko.HostKeys.lookup paramiko.HostKeys-class.html#lookup
+paramiko.HostKeys.save paramiko.HostKeys-class.html#save
+paramiko.HostKeys.__getitem__ paramiko.HostKeys-class.html#__getitem__
+paramiko.HostKeys.keys paramiko.HostKeys-class.html#keys
+paramiko.HostKeys.hash_host paramiko.HostKeys-class.html#hash_host
+paramiko.HostKeys.clear paramiko.HostKeys-class.html#clear
+paramiko.HostKeys.__setitem__ paramiko.HostKeys-class.html#__setitem__
+paramiko.HostKeys.values paramiko.HostKeys-class.html#values
+paramiko.Message paramiko.Message-class.html
+paramiko.Message.get_byte paramiko.Message-class.html#get_byte
+paramiko.Message.__str__ paramiko.Message-class.html#__str__
+paramiko.Message.get_so_far paramiko.Message-class.html#get_so_far
+paramiko.Message._add paramiko.Message-class.html#_add
+paramiko.Message.add_list paramiko.Message-class.html#add_list
+paramiko.Message.__init__ paramiko.Message-class.html#__init__
+paramiko.Message.get_mpint paramiko.Message-class.html#get_mpint
+paramiko.Message.add_byte paramiko.Message-class.html#add_byte
+paramiko.Message.get_list paramiko.Message-class.html#get_list
+paramiko.Message.add paramiko.Message-class.html#add
+paramiko.Message.get_string paramiko.Message-class.html#get_string
+paramiko.Message.rewind paramiko.Message-class.html#rewind
+paramiko.Message.get_bytes paramiko.Message-class.html#get_bytes
+paramiko.Message.get_boolean paramiko.Message-class.html#get_boolean
+paramiko.Message.get_int64 paramiko.Message-class.html#get_int64
+paramiko.Message.add_boolean paramiko.Message-class.html#add_boolean
+paramiko.Message.add_int64 paramiko.Message-class.html#add_int64
+paramiko.Message.add_bytes paramiko.Message-class.html#add_bytes
+paramiko.Message.add_int paramiko.Message-class.html#add_int
+paramiko.Message.get_int paramiko.Message-class.html#get_int
+paramiko.Message.__repr__ paramiko.Message-class.html#__repr__
+paramiko.Message.get_remainder paramiko.Message-class.html#get_remainder
+paramiko.Message.add_string paramiko.Message-class.html#add_string
+paramiko.Message.add_mpint paramiko.Message-class.html#add_mpint
+paramiko.MissingHostKeyPolicy paramiko.MissingHostKeyPolicy-class.html
+paramiko.MissingHostKeyPolicy.missing_host_key paramiko.MissingHostKeyPolicy-class.html#missing_host_key
+paramiko.PKey paramiko.PKey-class.html
+paramiko.PKey.sign_ssh_data paramiko.PKey-class.html#sign_ssh_data
+paramiko.PKey.write_private_key_file paramiko.PKey-class.html#write_private_key_file
+paramiko.PKey.__str__ paramiko.PKey-class.html#__str__
+paramiko.PKey._write_private_key_file paramiko.PKey-class.html#_write_private_key_file
+paramiko.PKey.__cmp__ paramiko.PKey-class.html#__cmp__
+paramiko.PKey.__init__ paramiko.PKey-class.html#__init__
+paramiko.PKey.get_bits paramiko.PKey-class.html#get_bits
+paramiko.PKey.from_private_key paramiko.PKey-class.html#from_private_key
+paramiko.PKey.from_private_key_file paramiko.PKey-class.html#from_private_key_file
+paramiko.PKey.verify_ssh_sig paramiko.PKey-class.html#verify_ssh_sig
+paramiko.PKey._CIPHER_TABLE paramiko.PKey-class.html#_CIPHER_TABLE
+paramiko.PKey.get_fingerprint paramiko.PKey-class.html#get_fingerprint
+paramiko.PKey._write_private_key paramiko.PKey-class.html#_write_private_key
+paramiko.PKey.get_base64 paramiko.PKey-class.html#get_base64
+paramiko.PKey._read_private_key paramiko.PKey-class.html#_read_private_key
+paramiko.PKey.write_private_key paramiko.PKey-class.html#write_private_key
+paramiko.PKey.get_name paramiko.PKey-class.html#get_name
+paramiko.PKey.can_sign paramiko.PKey-class.html#can_sign
+paramiko.PKey._read_private_key_file paramiko.PKey-class.html#_read_private_key_file
+paramiko.PasswordRequiredException paramiko.PasswordRequiredException-class.html
+paramiko.RSAKey paramiko.RSAKey-class.html
+paramiko.RSAKey.sign_ssh_data paramiko.RSAKey-class.html#sign_ssh_data
+paramiko.RSAKey._from_private_key paramiko.RSAKey-class.html#_from_private_key
+paramiko.PKey.from_private_key paramiko.PKey-class.html#from_private_key
+paramiko.RSAKey.__str__ paramiko.RSAKey-class.html#__str__
+paramiko.PKey._write_private_key_file paramiko.PKey-class.html#_write_private_key_file
+paramiko.PKey.__cmp__ paramiko.PKey-class.html#__cmp__
+paramiko.RSAKey.__init__ paramiko.RSAKey-class.html#__init__
+paramiko.RSAKey._from_private_key_file paramiko.RSAKey-class.html#_from_private_key_file
+paramiko.RSAKey.get_bits paramiko.RSAKey-class.html#get_bits
+paramiko.RSAKey.write_private_key_file paramiko.RSAKey-class.html#write_private_key_file
+paramiko.RSAKey.verify_ssh_sig paramiko.RSAKey-class.html#verify_ssh_sig
+paramiko.RSAKey._pkcs1imify paramiko.RSAKey-class.html#_pkcs1imify
+paramiko.PKey.from_private_key_file paramiko.PKey-class.html#from_private_key_file
+paramiko.PKey._CIPHER_TABLE paramiko.PKey-class.html#_CIPHER_TABLE
+paramiko.PKey.get_fingerprint paramiko.PKey-class.html#get_fingerprint
+paramiko.PKey._write_private_key paramiko.PKey-class.html#_write_private_key
+paramiko.PKey.get_base64 paramiko.PKey-class.html#get_base64
+paramiko.PKey._read_private_key paramiko.PKey-class.html#_read_private_key
+paramiko.RSAKey.write_private_key paramiko.RSAKey-class.html#write_private_key
+paramiko.RSAKey.generate paramiko.RSAKey-class.html#generate
+paramiko.PKey._read_private_key_file paramiko.PKey-class.html#_read_private_key_file
+paramiko.RSAKey.get_name paramiko.RSAKey-class.html#get_name
+paramiko.RSAKey.can_sign paramiko.RSAKey-class.html#can_sign
+paramiko.RSAKey._decode_key paramiko.RSAKey-class.html#_decode_key
+paramiko.RSAKey.__hash__ paramiko.RSAKey-class.html#__hash__
+paramiko.RSAKey._encode_key paramiko.RSAKey-class.html#_encode_key
+paramiko.RejectPolicy paramiko.RejectPolicy-class.html
+paramiko.RejectPolicy.missing_host_key paramiko.RejectPolicy-class.html#missing_host_key
+paramiko.SFTP paramiko.SFTP-class.html
+paramiko.SFTPClient.rename paramiko.SFTPClient-class.html#rename
+paramiko.SFTPClient._request paramiko.SFTPClient-class.html#_request
+paramiko.SFTPClient.stat paramiko.SFTPClient-class.html#stat
+paramiko.SFTPClient.chmod paramiko.SFTPClient-class.html#chmod
+paramiko.SFTPClient.file paramiko.SFTPClient-class.html#file
+paramiko.SFTPClient.close paramiko.SFTPClient-class.html#close
+paramiko.SFTPClient.open paramiko.SFTPClient-class.html#open
+paramiko.SFTPClient.__init__ paramiko.SFTPClient-class.html#__init__
+paramiko.SFTPClient.normalize paramiko.SFTPClient-class.html#normalize
+paramiko.SFTPClient._convert_status paramiko.SFTPClient-class.html#_convert_status
+paramiko.SFTPClient.lstat paramiko.SFTPClient-class.html#lstat
+paramiko.SFTPClient.mkdir paramiko.SFTPClient-class.html#mkdir
+paramiko.SFTPClient._finish_responses paramiko.SFTPClient-class.html#_finish_responses
+paramiko.SFTPClient._adjust_cwd paramiko.SFTPClient-class.html#_adjust_cwd
+paramiko.SFTPClient.rmdir paramiko.SFTPClient-class.html#rmdir
+paramiko.SFTPClient.listdir paramiko.SFTPClient-class.html#listdir
+paramiko.SFTPClient.truncate paramiko.SFTPClient-class.html#truncate
+paramiko.SFTPClient.get paramiko.SFTPClient-class.html#get
+paramiko.SFTPClient.get_channel paramiko.SFTPClient-class.html#get_channel
+paramiko.SFTPClient.getcwd paramiko.SFTPClient-class.html#getcwd
+paramiko.SFTPClient._async_request paramiko.SFTPClient-class.html#_async_request
+paramiko.SFTPClient.symlink paramiko.SFTPClient-class.html#symlink
+paramiko.SFTPClient.readlink paramiko.SFTPClient-class.html#readlink
+paramiko.SFTPClient._log paramiko.SFTPClient-class.html#_log
+paramiko.SFTPClient.put paramiko.SFTPClient-class.html#put
+paramiko.SFTPClient.unlink paramiko.SFTPClient-class.html#unlink
+paramiko.SFTPClient.listdir_attr paramiko.SFTPClient-class.html#listdir_attr
+paramiko.SFTPClient.utime paramiko.SFTPClient-class.html#utime
+paramiko.SFTPClient.chdir paramiko.SFTPClient-class.html#chdir
+paramiko.SFTPClient.remove paramiko.SFTPClient-class.html#remove
+paramiko.SFTPClient.from_transport paramiko.SFTPClient-class.html#from_transport
+paramiko.SFTPClient.chown paramiko.SFTPClient-class.html#chown
+paramiko.SFTPClient._read_response paramiko.SFTPClient-class.html#_read_response
+paramiko.SFTPAttributes paramiko.SFTPAttributes-class.html
+paramiko.SFTPAttributes.__str__ paramiko.SFTPAttributes-class.html#__str__
+paramiko.SFTPAttributes.FLAG_AMTIME paramiko.SFTPAttributes-class.html#FLAG_AMTIME
+paramiko.SFTPAttributes._pack paramiko.SFTPAttributes-class.html#_pack
+paramiko.SFTPAttributes.__init__ paramiko.SFTPAttributes-class.html#__init__
+paramiko.SFTPAttributes.FLAG_EXTENDED paramiko.SFTPAttributes-class.html#FLAG_EXTENDED
+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._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.SFTPClient paramiko.SFTPClient-class.html
+paramiko.SFTPClient.rename paramiko.SFTPClient-class.html#rename
+paramiko.SFTPClient._request paramiko.SFTPClient-class.html#_request
+paramiko.SFTPClient.listdir paramiko.SFTPClient-class.html#listdir
+paramiko.SFTPClient.chmod paramiko.SFTPClient-class.html#chmod
+paramiko.SFTPClient.file paramiko.SFTPClient-class.html#file
+paramiko.SFTPClient.close paramiko.SFTPClient-class.html#close
+paramiko.SFTPClient.open paramiko.SFTPClient-class.html#open
+paramiko.SFTPClient.__init__ paramiko.SFTPClient-class.html#__init__
+paramiko.SFTPClient.normalize paramiko.SFTPClient-class.html#normalize
+paramiko.SFTPClient._convert_status paramiko.SFTPClient-class.html#_convert_status
+paramiko.SFTPClient.get paramiko.SFTPClient-class.html#get
+paramiko.SFTPClient.mkdir paramiko.SFTPClient-class.html#mkdir
+paramiko.SFTPClient._finish_responses paramiko.SFTPClient-class.html#_finish_responses
+paramiko.SFTPClient._adjust_cwd paramiko.SFTPClient-class.html#_adjust_cwd
+paramiko.SFTPClient.rmdir paramiko.SFTPClient-class.html#rmdir
+paramiko.SFTPClient.stat paramiko.SFTPClient-class.html#stat
+paramiko.SFTPClient.truncate paramiko.SFTPClient-class.html#truncate
+paramiko.SFTPClient.lstat paramiko.SFTPClient-class.html#lstat
+paramiko.SFTPClient.get_channel paramiko.SFTPClient-class.html#get_channel
+paramiko.SFTPClient.getcwd paramiko.SFTPClient-class.html#getcwd
+paramiko.SFTPClient._async_request paramiko.SFTPClient-class.html#_async_request
+paramiko.SFTPClient.symlink paramiko.SFTPClient-class.html#symlink
+paramiko.SFTPClient.readlink paramiko.SFTPClient-class.html#readlink
+paramiko.SFTPClient._log paramiko.SFTPClient-class.html#_log
+paramiko.SFTPClient.put paramiko.SFTPClient-class.html#put
+paramiko.SFTPClient.unlink paramiko.SFTPClient-class.html#unlink
+paramiko.SFTPClient.listdir_attr paramiko.SFTPClient-class.html#listdir_attr
+paramiko.SFTPClient.utime paramiko.SFTPClient-class.html#utime
+paramiko.SFTPClient.chdir paramiko.SFTPClient-class.html#chdir
+paramiko.SFTPClient.remove paramiko.SFTPClient-class.html#remove
+paramiko.SFTPClient.from_transport paramiko.SFTPClient-class.html#from_transport
+paramiko.SFTPClient.chown paramiko.SFTPClient-class.html#chown
+paramiko.SFTPClient._read_response paramiko.SFTPClient-class.html#_read_response
+paramiko.SFTPError paramiko.SFTPError-class.html
+paramiko.SFTPFile paramiko.SFTPFile-class.html
+paramiko.BufferedFile._record_newline paramiko.BufferedFile-class.html#_record_newline
+paramiko.SFTPFile._get_size paramiko.SFTPFile-class.html#_get_size
+paramiko.SFTPFile.gettimeout paramiko.SFTPFile-class.html#gettimeout
+paramiko.BufferedFile.xreadlines paramiko.BufferedFile-class.html#xreadlines
+paramiko.BufferedFile.readlines paramiko.BufferedFile-class.html#readlines
+paramiko.SFTPFile.chmod paramiko.SFTPFile-class.html#chmod
+paramiko.BufferedFile.SEEK_CUR paramiko.BufferedFile-class.html#SEEK_CUR
+paramiko.BufferedFile.FLAG_READ paramiko.BufferedFile-class.html#FLAG_READ
+paramiko.SFTPFile.readv paramiko.SFTPFile-class.html#readv
+paramiko.SFTPFile.close paramiko.SFTPFile-class.html#close
+paramiko.BufferedFile.next paramiko.BufferedFile-class.html#next
+paramiko.SFTPFile.seek paramiko.SFTPFile-class.html#seek
+paramiko.SFTPFile._read_prefetch paramiko.SFTPFile-class.html#_read_prefetch
+paramiko.SFTPFile.__init__ paramiko.SFTPFile-class.html#__init__
+paramiko.BufferedFile.FLAG_UNIVERSAL_NEWLINE paramiko.BufferedFile-class.html#FLAG_UNIVERSAL_NEWLINE
+paramiko.BufferedFile.readline paramiko.BufferedFile-class.html#readline
+paramiko.BufferedFile._set_mode paramiko.BufferedFile-class.html#_set_mode
+paramiko.BufferedFile.flush paramiko.BufferedFile-class.html#flush
+paramiko.SFTPFile._async_response paramiko.SFTPFile-class.html#_async_response
+paramiko.SFTPFile.check paramiko.SFTPFile-class.html#check
+paramiko.BufferedFile.write paramiko.BufferedFile-class.html#write
+paramiko.SFTPFile.__del__ paramiko.SFTPFile-class.html#__del__
+paramiko.SFTPFile._start_prefetch paramiko.SFTPFile-class.html#_start_prefetch
+paramiko.BufferedFile._DEFAULT_BUFSIZE paramiko.BufferedFile-class.html#_DEFAULT_BUFSIZE
+paramiko.BufferedFile.tell paramiko.BufferedFile-class.html#tell
+paramiko.SFTPFile._close paramiko.SFTPFile-class.html#_close
+paramiko.SFTPFile.stat paramiko.SFTPFile-class.html#stat
+paramiko.BufferedFile.FLAG_BINARY paramiko.BufferedFile-class.html#FLAG_BINARY
+paramiko.SFTPFile.truncate paramiko.SFTPFile-class.html#truncate
+paramiko.SFTPFile.MAX_REQUEST_SIZE paramiko.SFTPFile-class.html#MAX_REQUEST_SIZE
+paramiko.BufferedFile.SEEK_SET paramiko.BufferedFile-class.html#SEEK_SET
+paramiko.SFTPFile._check_exception paramiko.SFTPFile-class.html#_check_exception
+paramiko.BufferedFile.FLAG_APPEND paramiko.BufferedFile-class.html#FLAG_APPEND
+paramiko.SFTPFile._data_in_prefetch_buffers paramiko.SFTPFile-class.html#_data_in_prefetch_buffers
+paramiko.BufferedFile.__iter__ paramiko.BufferedFile-class.html#__iter__
+paramiko.SFTPFile._write paramiko.SFTPFile-class.html#_write
+paramiko.SFTPFile._data_in_prefetch_requests paramiko.SFTPFile-class.html#_data_in_prefetch_requests
+paramiko.SFTPFile.setblocking paramiko.SFTPFile-class.html#setblocking
+paramiko.SFTPFile.utime paramiko.SFTPFile-class.html#utime
+paramiko.BufferedFile.FLAG_BUFFERED paramiko.BufferedFile-class.html#FLAG_BUFFERED
+paramiko.BufferedFile._write_all paramiko.BufferedFile-class.html#_write_all
+paramiko.BufferedFile.writelines paramiko.BufferedFile-class.html#writelines
+paramiko.BufferedFile.SEEK_END paramiko.BufferedFile-class.html#SEEK_END
+paramiko.BufferedFile.read paramiko.BufferedFile-class.html#read
+paramiko.SFTPFile._read paramiko.SFTPFile-class.html#_read
+paramiko.SFTPFile.set_pipelined paramiko.SFTPFile-class.html#set_pipelined
+paramiko.BufferedFile.FLAG_LINE_BUFFERED paramiko.BufferedFile-class.html#FLAG_LINE_BUFFERED
+paramiko.SFTPFile.chown paramiko.SFTPFile-class.html#chown
+paramiko.BufferedFile.FLAG_WRITE paramiko.BufferedFile-class.html#FLAG_WRITE
+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.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.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
+paramiko.SFTPServer._open_folder paramiko.SFTPServer-class.html#_open_folder
+paramiko.SFTPServer._process paramiko.SFTPServer-class.html#_process
+paramiko.SFTPServer._send_status paramiko.SFTPServer-class.html#_send_status
+paramiko.SFTPServer.__init__ paramiko.SFTPServer-class.html#__init__
+paramiko.SFTPServer._response paramiko.SFTPServer-class.html#_response
+paramiko.SubsystemHandler._run paramiko.SubsystemHandler-class.html#_run
+paramiko.SFTPServer._convert_pflags paramiko.SFTPServer-class.html#_convert_pflags
+paramiko.SFTPServer._check_file paramiko.SFTPServer-class.html#_check_file
+paramiko.SFTPServer._log paramiko.SFTPServer-class.html#_log
+paramiko.SFTPServer.finish_subsystem paramiko.SFTPServer-class.html#finish_subsystem
+paramiko.SubsystemHandler.get_server paramiko.SubsystemHandler-class.html#get_server
+paramiko.SFTPServer.convert_errno paramiko.SFTPServer-class.html#convert_errno
+paramiko.SFTPServer.set_file_attr paramiko.SFTPServer-class.html#set_file_attr
+paramiko.SFTPServer._read_folder paramiko.SFTPServer-class.html#_read_folder
+paramiko.SFTPServerInterface paramiko.SFTPServerInterface-class.html
+paramiko.SFTPServerInterface.rename paramiko.SFTPServerInterface-class.html#rename
+paramiko.SFTPServerInterface.canonicalize paramiko.SFTPServerInterface-class.html#canonicalize
+paramiko.SFTPServerInterface.open paramiko.SFTPServerInterface-class.html#open
+paramiko.SFTPServerInterface.__init__ paramiko.SFTPServerInterface-class.html#__init__
+paramiko.SFTPServerInterface.mkdir paramiko.SFTPServerInterface-class.html#mkdir
+paramiko.SFTPServerInterface.chattr paramiko.SFTPServerInterface-class.html#chattr
+paramiko.SFTPServerInterface.list_folder paramiko.SFTPServerInterface-class.html#list_folder
+paramiko.SFTPServerInterface.rmdir paramiko.SFTPServerInterface-class.html#rmdir
+paramiko.SFTPServerInterface.stat paramiko.SFTPServerInterface-class.html#stat
+paramiko.SFTPServerInterface.lstat paramiko.SFTPServerInterface-class.html#lstat
+paramiko.SFTPServerInterface.session_ended paramiko.SFTPServerInterface-class.html#session_ended
+paramiko.SFTPServerInterface.symlink paramiko.SFTPServerInterface-class.html#symlink
+paramiko.SFTPServerInterface.readlink paramiko.SFTPServerInterface-class.html#readlink
+paramiko.SFTPServerInterface.remove paramiko.SFTPServerInterface-class.html#remove
+paramiko.SFTPServerInterface.session_started paramiko.SFTPServerInterface-class.html#session_started
+paramiko.SSHClient paramiko.SSHClient-class.html
+paramiko.SSHClient.open_sftp paramiko.SSHClient-class.html#open_sftp
+paramiko.SSHClient.connect paramiko.SSHClient-class.html#connect
+paramiko.SSHClient.get_transport paramiko.SSHClient-class.html#get_transport
+paramiko.SSHClient.close paramiko.SSHClient-class.html#close
+paramiko.SSHClient.__init__ paramiko.SSHClient-class.html#__init__
+paramiko.SSHClient.set_log_channel paramiko.SSHClient-class.html#set_log_channel
+paramiko.SSHClient.load_system_host_keys paramiko.SSHClient-class.html#load_system_host_keys
+paramiko.SSHClient.load_host_keys paramiko.SSHClient-class.html#load_host_keys
+paramiko.SSHClient.save_host_keys paramiko.SSHClient-class.html#save_host_keys
+paramiko.SSHClient._auth paramiko.SSHClient-class.html#_auth
+paramiko.SSHClient.invoke_shell paramiko.SSHClient-class.html#invoke_shell
+paramiko.SSHClient._log paramiko.SSHClient-class.html#_log
+paramiko.SSHClient.exec_command paramiko.SSHClient-class.html#exec_command
+paramiko.SSHClient.get_host_keys paramiko.SSHClient-class.html#get_host_keys
+paramiko.SSHClient.set_missing_host_key_policy paramiko.SSHClient-class.html#set_missing_host_key_policy
+paramiko.SSHConfig paramiko.SSHConfig-class.html
+paramiko.SSHConfig.parse paramiko.SSHConfig-class.html#parse
+paramiko.SSHConfig.lookup paramiko.SSHConfig-class.html#lookup
+paramiko.SSHConfig.__init__ paramiko.SSHConfig-class.html#__init__
+paramiko.SSHException paramiko.SSHException-class.html
+paramiko.SecurityOptions paramiko.SecurityOptions-class.html
+paramiko.SecurityOptions._transport paramiko.SecurityOptions-class.html#_transport
+paramiko.SecurityOptions._get_digests paramiko.SecurityOptions-class.html#_get_digests
+paramiko.SecurityOptions._set_digests paramiko.SecurityOptions-class.html#_set_digests
+paramiko.SecurityOptions.__init__ paramiko.SecurityOptions-class.html#__init__
+paramiko.SecurityOptions._get_ciphers paramiko.SecurityOptions-class.html#_get_ciphers
+paramiko.SecurityOptions._set_compression paramiko.SecurityOptions-class.html#_set_compression
+paramiko.SecurityOptions.compression paramiko.SecurityOptions-class.html#compression
+paramiko.SecurityOptions.key_types paramiko.SecurityOptions-class.html#key_types
+paramiko.SecurityOptions._get_compression paramiko.SecurityOptions-class.html#_get_compression
+paramiko.SecurityOptions.digests paramiko.SecurityOptions-class.html#digests
+paramiko.SecurityOptions._set_key_types paramiko.SecurityOptions-class.html#_set_key_types
+paramiko.SecurityOptions.ciphers paramiko.SecurityOptions-class.html#ciphers
+paramiko.SecurityOptions._get_key_types paramiko.SecurityOptions-class.html#_get_key_types
+paramiko.SecurityOptions.kex paramiko.SecurityOptions-class.html#kex
+paramiko.SecurityOptions._get_kex paramiko.SecurityOptions-class.html#_get_kex
+paramiko.SecurityOptions._set_ciphers paramiko.SecurityOptions-class.html#_set_ciphers
+paramiko.SecurityOptions._set_kex paramiko.SecurityOptions-class.html#_set_kex
+paramiko.SecurityOptions.__repr__ paramiko.SecurityOptions-class.html#__repr__
+paramiko.SecurityOptions._set paramiko.SecurityOptions-class.html#_set
+paramiko.ServerInterface paramiko.ServerInterface-class.html
+paramiko.ServerInterface.check_auth_interactive paramiko.ServerInterface-class.html#check_auth_interactive
+paramiko.ServerInterface.check_auth_none paramiko.ServerInterface-class.html#check_auth_none
+paramiko.ServerInterface.check_channel_pty_request paramiko.ServerInterface-class.html#check_channel_pty_request
+paramiko.ServerInterface.cancel_port_forward_request paramiko.ServerInterface-class.html#cancel_port_forward_request
+paramiko.ServerInterface.check_channel_direct_tcpip_request paramiko.ServerInterface-class.html#check_channel_direct_tcpip_request
+paramiko.ServerInterface.get_allowed_auths paramiko.ServerInterface-class.html#get_allowed_auths
+paramiko.ServerInterface.check_auth_interactive_response paramiko.ServerInterface-class.html#check_auth_interactive_response
+paramiko.ServerInterface.check_global_request paramiko.ServerInterface-class.html#check_global_request
+paramiko.ServerInterface.check_auth_password paramiko.ServerInterface-class.html#check_auth_password
+paramiko.ServerInterface.check_channel_window_change_request paramiko.ServerInterface-class.html#check_channel_window_change_request
+paramiko.ServerInterface.check_auth_publickey paramiko.ServerInterface-class.html#check_auth_publickey
+paramiko.ServerInterface.check_channel_shell_request paramiko.ServerInterface-class.html#check_channel_shell_request
+paramiko.ServerInterface.check_channel_request paramiko.ServerInterface-class.html#check_channel_request
+paramiko.ServerInterface.check_channel_x11_request paramiko.ServerInterface-class.html#check_channel_x11_request
+paramiko.ServerInterface.check_channel_subsystem_request paramiko.ServerInterface-class.html#check_channel_subsystem_request
+paramiko.ServerInterface.check_port_forward_request paramiko.ServerInterface-class.html#check_port_forward_request
+paramiko.ServerInterface.check_channel_exec_request paramiko.ServerInterface-class.html#check_channel_exec_request
+paramiko.SubsystemHandler paramiko.SubsystemHandler-class.html
+paramiko.SubsystemHandler.start_subsystem paramiko.SubsystemHandler-class.html#start_subsystem
+paramiko.SubsystemHandler.__init__ paramiko.SubsystemHandler-class.html#__init__
+paramiko.SubsystemHandler._run paramiko.SubsystemHandler-class.html#_run
+paramiko.SubsystemHandler.finish_subsystem paramiko.SubsystemHandler-class.html#finish_subsystem
+paramiko.SubsystemHandler.get_server paramiko.SubsystemHandler-class.html#get_server
+paramiko.Transport paramiko.Transport-class.html
+paramiko.Transport._auth_trigger paramiko.Transport-class.html#_auth_trigger
+paramiko.Transport.set_subsystem_handler paramiko.Transport-class.html#set_subsystem_handler
+paramiko.Transport._preferred_kex paramiko.Transport-class.html#_preferred_kex
+paramiko.Transport.open_session paramiko.Transport-class.html#open_session
+paramiko.Transport._parse_request_success paramiko.Transport-class.html#_parse_request_success
+paramiko.Transport._parse_kex_init paramiko.Transport-class.html#_parse_kex_init
+paramiko.Transport.set_keepalive paramiko.Transport-class.html#set_keepalive
+paramiko.Transport.auth_none paramiko.Transport-class.html#auth_none
+paramiko.Transport._parse_request_failure paramiko.Transport-class.html#_parse_request_failure
+paramiko.Transport._key_info paramiko.Transport-class.html#_key_info
+paramiko.Transport._parse_disconnect paramiko.Transport-class.html#_parse_disconnect
+paramiko.Transport._channel_handler_table paramiko.Transport-class.html#_channel_handler_table
+paramiko.Transport.is_active paramiko.Transport-class.html#is_active
+paramiko.Transport.cancel_port_forward paramiko.Transport-class.html#cancel_port_forward
+paramiko.Transport.get_security_options paramiko.Transport-class.html#get_security_options
+paramiko.Transport.send_ignore paramiko.Transport-class.html#send_ignore
+paramiko.Transport._preferred_macs paramiko.Transport-class.html#_preferred_macs
+paramiko.Transport._parse_debug paramiko.Transport-class.html#_parse_debug
+paramiko.Transport._parse_newkeys paramiko.Transport-class.html#_parse_newkeys
+paramiko.Transport.start_client paramiko.Transport-class.html#start_client
+paramiko.Transport._get_modulus_pack paramiko.Transport-class.html#_get_modulus_pack
+paramiko.Transport._preferred_ciphers paramiko.Transport-class.html#_preferred_ciphers
+paramiko.Transport._get_subsystem_handler paramiko.Transport-class.html#_get_subsystem_handler
+paramiko.Transport._queue_incoming_channel paramiko.Transport-class.html#_queue_incoming_channel
+paramiko.Transport._next_channel paramiko.Transport-class.html#_next_channel
+paramiko.Transport._verify_key paramiko.Transport-class.html#_verify_key
+paramiko.Transport.connect paramiko.Transport-class.html#connect
+paramiko.Transport._negotiate_keys paramiko.Transport-class.html#_negotiate_keys
+paramiko.Transport.close paramiko.Transport-class.html#close
+paramiko.Transport.stop_thread paramiko.Transport-class.html#stop_thread
+paramiko.Transport._mac_info paramiko.Transport-class.html#_mac_info
+paramiko.Transport.get_username paramiko.Transport-class.html#get_username
+paramiko.Transport.get_exception paramiko.Transport-class.html#get_exception
+paramiko.Transport._send_message paramiko.Transport-class.html#_send_message
+paramiko.Transport.run paramiko.Transport-class.html#run
+paramiko.Transport.atfork paramiko.Transport-class.html#atfork
+paramiko.Transport.getpeername paramiko.Transport-class.html#getpeername
+paramiko.Transport._cipher_info paramiko.Transport-class.html#_cipher_info
+paramiko.Transport._activate_inbound paramiko.Transport-class.html#_activate_inbound
+paramiko.Transport.__repr__ paramiko.Transport-class.html#__repr__
+paramiko.Transport._parse_global_request paramiko.Transport-class.html#_parse_global_request
+paramiko.Transport._expect_packet paramiko.Transport-class.html#_expect_packet
+paramiko.Transport.set_hexdump paramiko.Transport-class.html#set_hexdump
+paramiko.Transport.auth_password paramiko.Transport-class.html#auth_password
+paramiko.Transport.get_log_channel paramiko.Transport-class.html#get_log_channel
+paramiko.Transport._kex_info paramiko.Transport-class.html#_kex_info
+paramiko.Transport._check_banner paramiko.Transport-class.html#_check_banner
+paramiko.Transport.open_sftp_client paramiko.Transport-class.html#open_sftp_client
+paramiko.Transport.is_authenticated paramiko.Transport-class.html#is_authenticated
+paramiko.Transport.request_port_forward paramiko.Transport-class.html#request_port_forward
+paramiko.Transport.auth_publickey paramiko.Transport-class.html#auth_publickey
+paramiko.Transport._CLIENT_ID paramiko.Transport-class.html#_CLIENT_ID
+paramiko.Transport.global_request paramiko.Transport-class.html#global_request
+paramiko.Transport._get_cipher paramiko.Transport-class.html#_get_cipher
+paramiko.Transport.renegotiate_keys paramiko.Transport-class.html#renegotiate_keys
+paramiko.Transport.open_x11_channel paramiko.Transport-class.html#open_x11_channel
+paramiko.Transport._PROTO_ID paramiko.Transport-class.html#_PROTO_ID
+paramiko.Transport._set_K_H paramiko.Transport-class.html#_set_K_H
+paramiko.Transport.use_compression paramiko.Transport-class.html#use_compression
+paramiko.Transport._log paramiko.Transport-class.html#_log
+paramiko.Transport.start_server paramiko.Transport-class.html#start_server
+paramiko.Transport._send_user_message paramiko.Transport-class.html#_send_user_message
+paramiko.Transport._modulus_pack paramiko.Transport-class.html#_modulus_pack
+paramiko.Transport.get_hexdump paramiko.Transport-class.html#get_hexdump
+paramiko.Transport.add_server_key paramiko.Transport-class.html#add_server_key
+paramiko.Transport._activate_outbound paramiko.Transport-class.html#_activate_outbound
+paramiko.Transport.accept paramiko.Transport-class.html#accept
+paramiko.Transport._preferred_compression paramiko.Transport-class.html#_preferred_compression
+paramiko.Transport._compute_key paramiko.Transport-class.html#_compute_key
+paramiko.Transport.__init__ paramiko.Transport-class.html#__init__
+paramiko.Transport._unlink_channel paramiko.Transport-class.html#_unlink_channel
+paramiko.Transport.auth_interactive paramiko.Transport-class.html#auth_interactive
+paramiko.Transport.set_log_channel paramiko.Transport-class.html#set_log_channel
+paramiko.Transport._set_x11_handler paramiko.Transport-class.html#_set_x11_handler
+paramiko.Transport._compression_info paramiko.Transport-class.html#_compression_info
+paramiko.Transport._handler_table paramiko.Transport-class.html#_handler_table
+paramiko.Transport.load_server_moduli paramiko.Transport-class.html#load_server_moduli
+paramiko.Transport._parse_channel_open_success paramiko.Transport-class.html#_parse_channel_open_success
+paramiko.Transport.get_server_key paramiko.Transport-class.html#get_server_key
+paramiko.Transport._parse_channel_open_failure paramiko.Transport-class.html#_parse_channel_open_failure
+paramiko.Transport.get_remote_server_key paramiko.Transport-class.html#get_remote_server_key
+paramiko.Transport._parse_channel_open paramiko.Transport-class.html#_parse_channel_open
+paramiko.Transport.open_forwarded_tcpip_channel paramiko.Transport-class.html#open_forwarded_tcpip_channel
+paramiko.Transport._preferred_keys paramiko.Transport-class.html#_preferred_keys
+paramiko.Transport.open_channel paramiko.Transport-class.html#open_channel
+paramiko.Transport._send_kex_init paramiko.Transport-class.html#_send_kex_init
+paramiko.WarningPolicy paramiko.WarningPolicy-class.html
+paramiko.WarningPolicy.missing_host_key paramiko.WarningPolicy-class.html#missing_host_key
+paramiko.ber.BER paramiko.ber.BER-class.html
+paramiko.ber.BER.decode_sequence paramiko.ber.BER-class.html#decode_sequence
+paramiko.ber.BER.decode_next paramiko.ber.BER-class.html#decode_next
+paramiko.ber.BER.__str__ paramiko.ber.BER-class.html#__str__
+paramiko.ber.BER.encode_tlv paramiko.ber.BER-class.html#encode_tlv
+paramiko.ber.BER.encode_sequence paramiko.ber.BER-class.html#encode_sequence
+paramiko.ber.BER.decode paramiko.ber.BER-class.html#decode
+paramiko.ber.BER.__repr__ paramiko.ber.BER-class.html#__repr__
+paramiko.ber.BER.encode paramiko.ber.BER-class.html#encode
+paramiko.ber.BER.__init__ paramiko.ber.BER-class.html#__init__
+paramiko.ber.BERException paramiko.ber.BERException-class.html
+paramiko.buffered_pipe.BufferedPipe paramiko.buffered_pipe.BufferedPipe-class.html
+paramiko.buffered_pipe.BufferedPipe.feed paramiko.buffered_pipe.BufferedPipe-class.html#feed
+paramiko.buffered_pipe.BufferedPipe.set_event paramiko.buffered_pipe.BufferedPipe-class.html#set_event
+paramiko.buffered_pipe.BufferedPipe.read paramiko.buffered_pipe.BufferedPipe-class.html#read
+paramiko.buffered_pipe.BufferedPipe.read_ready paramiko.buffered_pipe.BufferedPipe-class.html#read_ready
+paramiko.buffered_pipe.BufferedPipe.__len__ paramiko.buffered_pipe.BufferedPipe-class.html#__len__
+paramiko.buffered_pipe.BufferedPipe.empty paramiko.buffered_pipe.BufferedPipe-class.html#empty
+paramiko.buffered_pipe.BufferedPipe.close paramiko.buffered_pipe.BufferedPipe-class.html#close
+paramiko.buffered_pipe.BufferedPipe.__init__ paramiko.buffered_pipe.BufferedPipe-class.html#__init__
+paramiko.buffered_pipe.PipeTimeout paramiko.buffered_pipe.PipeTimeout-class.html
+paramiko.channel.ChannelStderrFile paramiko.channel.ChannelStderrFile-class.html
+paramiko.BufferedFile._record_newline paramiko.BufferedFile-class.html#_record_newline
+paramiko.BufferedFile.xreadlines paramiko.BufferedFile-class.html#xreadlines
+paramiko.BufferedFile.readlines paramiko.BufferedFile-class.html#readlines
+paramiko.BufferedFile.SEEK_CUR paramiko.BufferedFile-class.html#SEEK_CUR
+paramiko.BufferedFile.FLAG_READ paramiko.BufferedFile-class.html#FLAG_READ
+paramiko.BufferedFile.flush paramiko.BufferedFile-class.html#flush
+paramiko.BufferedFile.close paramiko.BufferedFile-class.html#close
+paramiko.BufferedFile.seek paramiko.BufferedFile-class.html#seek
+paramiko.BufferedFile.readline paramiko.BufferedFile-class.html#readline
+paramiko.channel.ChannelStderrFile.__init__ paramiko.channel.ChannelStderrFile-class.html#__init__
+paramiko.BufferedFile.FLAG_UNIVERSAL_NEWLINE paramiko.BufferedFile-class.html#FLAG_UNIVERSAL_NEWLINE
+paramiko.BufferedFile._set_mode paramiko.BufferedFile-class.html#_set_mode
+paramiko.BufferedFile.next paramiko.BufferedFile-class.html#next
+paramiko.BufferedFile.write paramiko.BufferedFile-class.html#write
+paramiko.BufferedFile.__del__ paramiko.BufferedFile-class.html#__del__
+paramiko.BufferedFile.tell paramiko.BufferedFile-class.html#tell
+paramiko.BufferedFile.FLAG_BINARY paramiko.BufferedFile-class.html#FLAG_BINARY
+paramiko.BufferedFile.read paramiko.BufferedFile-class.html#read
+paramiko.BufferedFile.SEEK_SET paramiko.BufferedFile-class.html#SEEK_SET
+paramiko.BufferedFile.FLAG_APPEND paramiko.BufferedFile-class.html#FLAG_APPEND
+paramiko.BufferedFile.__iter__ paramiko.BufferedFile-class.html#__iter__
+paramiko.channel.ChannelStderrFile._write paramiko.channel.ChannelStderrFile-class.html#_write
+paramiko.BufferedFile._DEFAULT_BUFSIZE paramiko.BufferedFile-class.html#_DEFAULT_BUFSIZE
+paramiko.BufferedFile.FLAG_BUFFERED paramiko.BufferedFile-class.html#FLAG_BUFFERED
+paramiko.BufferedFile._write_all paramiko.BufferedFile-class.html#_write_all
+paramiko.BufferedFile.writelines paramiko.BufferedFile-class.html#writelines
+paramiko.BufferedFile.SEEK_END paramiko.BufferedFile-class.html#SEEK_END
+paramiko.channel.ChannelStderrFile._read paramiko.channel.ChannelStderrFile-class.html#_read
+paramiko.BufferedFile.FLAG_LINE_BUFFERED paramiko.BufferedFile-class.html#FLAG_LINE_BUFFERED
+paramiko.BufferedFile._get_size paramiko.BufferedFile-class.html#_get_size
+paramiko.BufferedFile.FLAG_WRITE paramiko.BufferedFile-class.html#FLAG_WRITE
+paramiko.compress.ZlibCompressor paramiko.compress.ZlibCompressor-class.html
+paramiko.compress.ZlibCompressor.__call__ paramiko.compress.ZlibCompressor-class.html#__call__
+paramiko.compress.ZlibCompressor.__init__ paramiko.compress.ZlibCompressor-class.html#__init__
+paramiko.compress.ZlibDecompressor paramiko.compress.ZlibDecompressor-class.html
+paramiko.compress.ZlibDecompressor.__call__ paramiko.compress.ZlibDecompressor-class.html#__call__
+paramiko.compress.ZlibDecompressor.__init__ paramiko.compress.ZlibDecompressor-class.html#__init__
+paramiko.hostkeys.HostKeyEntry paramiko.hostkeys.HostKeyEntry-class.html
+paramiko.hostkeys.HostKeyEntry.from_line paramiko.hostkeys.HostKeyEntry-class.html#from_line
+paramiko.hostkeys.HostKeyEntry.__repr__ paramiko.hostkeys.HostKeyEntry-class.html#__repr__
+paramiko.hostkeys.HostKeyEntry.__init__ paramiko.hostkeys.HostKeyEntry-class.html#__init__
+paramiko.hostkeys.HostKeyEntry.to_line paramiko.hostkeys.HostKeyEntry-class.html#to_line
+paramiko.kex_gex.KexGex paramiko.kex_gex.KexGex-class.html
+paramiko.kex_gex.KexGex.max_bits paramiko.kex_gex.KexGex-class.html#max_bits
+paramiko.kex_gex.KexGex._parse_kexdh_gex_request paramiko.kex_gex.KexGex-class.html#_parse_kexdh_gex_request
+paramiko.kex_gex.KexGex.__init__ paramiko.kex_gex.KexGex-class.html#__init__
+paramiko.kex_gex.KexGex._generate_x paramiko.kex_gex.KexGex-class.html#_generate_x
+paramiko.kex_gex.KexGex.parse_next paramiko.kex_gex.KexGex-class.html#parse_next
+paramiko.kex_gex.KexGex.min_bits paramiko.kex_gex.KexGex-class.html#min_bits
+paramiko.kex_gex.KexGex._parse_kexdh_gex_group paramiko.kex_gex.KexGex-class.html#_parse_kexdh_gex_group
+paramiko.kex_gex.KexGex.preferred_bits paramiko.kex_gex.KexGex-class.html#preferred_bits
+paramiko.kex_gex.KexGex._parse_kexdh_gex_request_old paramiko.kex_gex.KexGex-class.html#_parse_kexdh_gex_request_old
+paramiko.kex_gex.KexGex.name paramiko.kex_gex.KexGex-class.html#name
+paramiko.kex_gex.KexGex._parse_kexdh_gex_reply paramiko.kex_gex.KexGex-class.html#_parse_kexdh_gex_reply
+paramiko.kex_gex.KexGex.start_kex paramiko.kex_gex.KexGex-class.html#start_kex
+paramiko.kex_gex.KexGex._parse_kexdh_gex_init paramiko.kex_gex.KexGex-class.html#_parse_kexdh_gex_init
+paramiko.kex_group1.KexGroup1 paramiko.kex_group1.KexGroup1-class.html
+paramiko.kex_group1.KexGroup1.parse_next paramiko.kex_group1.KexGroup1-class.html#parse_next
+paramiko.kex_group1.KexGroup1.name paramiko.kex_group1.KexGroup1-class.html#name
+paramiko.kex_group1.KexGroup1._parse_kexdh_init paramiko.kex_group1.KexGroup1-class.html#_parse_kexdh_init
+paramiko.kex_group1.KexGroup1._parse_kexdh_reply paramiko.kex_group1.KexGroup1-class.html#_parse_kexdh_reply
+paramiko.kex_group1.KexGroup1.start_kex paramiko.kex_group1.KexGroup1-class.html#start_kex
+paramiko.kex_group1.KexGroup1._generate_x paramiko.kex_group1.KexGroup1-class.html#_generate_x
+paramiko.kex_group1.KexGroup1.__init__ paramiko.kex_group1.KexGroup1-class.html#__init__
+paramiko.logging22.Formatter paramiko.logging22.Formatter-class.html
+paramiko.logging22.Formatter.__init__ paramiko.logging22.Formatter-class.html#__init__
+paramiko.logging22.StreamHandler paramiko.logging22.StreamHandler-class.html
+paramiko.logging22.StreamHandler.setFormatter paramiko.logging22.StreamHandler-class.html#setFormatter
+paramiko.logging22.StreamHandler.__init__ paramiko.logging22.StreamHandler-class.html#__init__
+paramiko.logging22.logger paramiko.logging22.logger-class.html
+paramiko.logging22.logger.log paramiko.logging22.logger-class.html#log
+paramiko.logging22.logger.addFilter paramiko.logging22.logger-class.html#addFilter
+paramiko.logging22.logger.setLevel paramiko.logging22.logger-class.html#setLevel
+paramiko.logging22.logger.addHandler paramiko.logging22.logger-class.html#addHandler
+paramiko.logging22.logger.__init__ paramiko.logging22.logger-class.html#__init__
+paramiko.packet.NeedRekeyException paramiko.packet.NeedRekeyException-class.html
+paramiko.pipe.OrPipe paramiko.pipe.OrPipe-class.html
+paramiko.pipe.OrPipe.set paramiko.pipe.OrPipe-class.html#set
+paramiko.pipe.OrPipe.clear paramiko.pipe.OrPipe-class.html#clear
+paramiko.pipe.OrPipe.__init__ paramiko.pipe.OrPipe-class.html#__init__
+paramiko.pipe.PosixPipe paramiko.pipe.PosixPipe-class.html
+paramiko.pipe.PosixPipe.fileno paramiko.pipe.PosixPipe-class.html#fileno
+paramiko.pipe.PosixPipe.set paramiko.pipe.PosixPipe-class.html#set
+paramiko.pipe.PosixPipe.clear paramiko.pipe.PosixPipe-class.html#clear
+paramiko.pipe.PosixPipe.set_forever paramiko.pipe.PosixPipe-class.html#set_forever
+paramiko.pipe.PosixPipe.close paramiko.pipe.PosixPipe-class.html#close
+paramiko.pipe.PosixPipe.__init__ paramiko.pipe.PosixPipe-class.html#__init__
+paramiko.pipe.WindowsPipe paramiko.pipe.WindowsPipe-class.html
+paramiko.pipe.WindowsPipe.fileno paramiko.pipe.WindowsPipe-class.html#fileno
+paramiko.pipe.WindowsPipe.set paramiko.pipe.WindowsPipe-class.html#set
+paramiko.pipe.WindowsPipe.clear paramiko.pipe.WindowsPipe-class.html#clear
+paramiko.pipe.WindowsPipe.set_forever paramiko.pipe.WindowsPipe-class.html#set_forever
+paramiko.pipe.WindowsPipe.close paramiko.pipe.WindowsPipe-class.html#close
+paramiko.pipe.WindowsPipe.__init__ paramiko.pipe.WindowsPipe-class.html#__init__
+paramiko.primes.ModulusPack paramiko.primes.ModulusPack-class.html
+paramiko.primes.ModulusPack._parse_modulus paramiko.primes.ModulusPack-class.html#_parse_modulus
+paramiko.primes.ModulusPack.read_file paramiko.primes.ModulusPack-class.html#read_file
+paramiko.primes.ModulusPack.get_modulus paramiko.primes.ModulusPack-class.html#get_modulus
+paramiko.primes.ModulusPack.__init__ paramiko.primes.ModulusPack-class.html#__init__
+paramiko.rng.StrongLockingRandomPool paramiko.rng.StrongLockingRandomPool-class.html
+paramiko.rng.StrongLockingRandomPool.stir paramiko.rng.StrongLockingRandomPool-class.html#stir
+paramiko.rng.StrongLockingRandomPool.get_bytes paramiko.rng.StrongLockingRandomPool-class.html#get_bytes
+paramiko.rng.StrongLockingRandomPool.randomize paramiko.rng.StrongLockingRandomPool-class.html#randomize
+paramiko.rng.StrongLockingRandomPool.add_event paramiko.rng.StrongLockingRandomPool-class.html#add_event
+paramiko.rng.StrongLockingRandomPool.__init__ paramiko.rng.StrongLockingRandomPool-class.html#__init__
+paramiko.rng_posix.error paramiko.rng_posix.error-class.html
+paramiko.rng_win32.error paramiko.rng_win32.error-class.html
+paramiko.ssh_exception.PartialAuthentication paramiko.ssh_exception.PartialAuthentication-class.html
+paramiko.ssh_exception.PartialAuthentication.allowed_types paramiko.ssh_exception.PartialAuthentication-class.html#allowed_types
+paramiko.ssh_exception.PartialAuthentication.__init__ paramiko.ssh_exception.PartialAuthentication-class.html#__init__
+paramiko.transport.ChannelMap paramiko.transport.ChannelMap-class.html
+paramiko.transport.ChannelMap.get paramiko.transport.ChannelMap-class.html#get
+paramiko.transport.ChannelMap.values paramiko.transport.ChannelMap-class.html#values
+paramiko.transport.ChannelMap.__init__ paramiko.transport.ChannelMap-class.html#__init__
+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.PFilter paramiko.util.PFilter-class.html
+paramiko.util.PFilter.filter paramiko.util.PFilter-class.html#filter
+paramiko.util.enumerate paramiko.util.enumerate-class.html
+paramiko.util.enumerate.__iter__ paramiko.util.enumerate-class.html#__iter__
+paramiko.util.enumerate.__init__ paramiko.util.enumerate-class.html#__init__
+paramiko.win_pageant.PageantConnection paramiko.win_pageant.PageantConnection-class.html
+paramiko.win_pageant.PageantConnection.send paramiko.win_pageant.PageantConnection-class.html#send
+paramiko.win_pageant.PageantConnection.close paramiko.win_pageant.PageantConnection-class.html#close
+paramiko.win_pageant.PageantConnection.recv paramiko.win_pageant.PageantConnection-class.html#recv
+paramiko.win_pageant.PageantConnection.__init__ paramiko.win_pageant.PageantConnection-class.html#__init__
diff --git a/docs/bug-index.html b/docs/bug-index.html
new file mode 100644
index 0000000..d66129c
--- /dev/null
+++ b/docs/bug-index.html
@@ -0,0 +1,107 @@
+<?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>Bug List</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 bgcolor="#70b0f0" class="navbar-select"
+ >&nbsp;&nbsp;&nbsp;Indices&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%">&nbsp;</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="bug-index.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<center><b>[
+ <a href="identifier-index.html">Identifiers</a>
+| <a href="bug-index.html">Bugs</a>
+| <a href="since-index.html">Introductions</a>
+]</b></center><br />
+<h1 class="epydoc"><a name="bug">Bug List</a></h1>
+<br />
+<div>
+<table width="100%" class="metadata-index" bgcolor="#e0e0e0"><tr><td class="metadata-index"><b>Bugs in <a href="paramiko.Message-class.html#add">paramiko.Message.add</a></b> <ul class="nomargin">
+ <li>longs are encoded non-deterministically. Don't use this method.</li>
+ </ul>
+</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 bgcolor="#70b0f0" class="navbar-select"
+ >&nbsp;&nbsp;&nbsp;Indices&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 Jul 6 18:30:25 2008
+ </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/class-tree.html b/docs/class-tree.html
new file mode 100644
index 0000000..1036434
--- /dev/null
+++ b/docs/class-tree.html
@@ -0,0 +1,368 @@
+<?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>Class Hierarchy</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 bgcolor="#70b0f0" class="navbar-select"
+ >&nbsp;&nbsp;&nbsp;Trees&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%">&nbsp;</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="class-tree.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<center><b>
+ [ <a href="module-tree.html">Module Hierarchy</a>
+ | <a href="class-tree.html">Class Hierarchy</a> ]
+</b></center><br />
+<h1 class="epydoc">Class Hierarchy</h1>
+<ul class="nomargin-top">
+ <li> <strong class="uidlink"><a href="paramiko.Agent-class.html">paramiko.Agent</a></strong>:
+ <em class="summary">Client interface for using private keys from an SSH agent running
+ on the local machine.</em>
+ </li>
+ <li> <strong class="uidlink">UserDict.DictMixin</strong>
+ <ul>
+ <li> <strong class="uidlink"><a href="paramiko.HostKeys-class.html">paramiko.HostKeys</a></strong>:
+ <em class="summary">Representation of an openssh-style &quot;known hosts&quot; file.</em>
+ </li>
+ </ul>
+ </li>
+ <li> <strong class="uidlink"><a href="paramiko.hostkeys.HostKeyEntry-class.html">paramiko.hostkeys.HostKeyEntry</a></strong>:
+ <em class="summary">Representation of a line in an OpenSSH-style &quot;known
+ hosts&quot; file.</em>
+ </li>
+ <li> <strong class="uidlink"><a href="paramiko.util.enumerate-class.html">paramiko.util.enumerate</a></strong>
+ </li>
+ <li> <strong class="uidlink">object</strong>:
+ <em class="summary">The most base type</em>
+ <ul>
+ <li> <strong class="uidlink"><a href="paramiko.ber.BER-class.html">paramiko.ber.BER</a></strong>:
+ <em class="summary">Robey's tiny little attempt at a BER decoder.</em>
+ </li>
+ <li> <strong class="uidlink">exceptions.BaseException</strong>:
+ <em class="summary">Common base class for all exceptions</em>
+ <ul>
+ <li> <strong class="uidlink">exceptions.Exception</strong>:
+ <em class="summary">Common base class for all non-exit exceptions.</em>
+ <ul>
+ <li> <strong class="uidlink"><a href="paramiko.ber.BERException-class.html">paramiko.ber.BERException</a></strong>
+ </li>
+ <li> <strong class="uidlink"><a href="paramiko.packet.NeedRekeyException-class.html">paramiko.packet.NeedRekeyException</a></strong>
+ </li>
+ <li> <strong class="uidlink"><a href="paramiko.SFTPError-class.html">paramiko.SFTPError</a></strong>
+ </li>
+ <li> <strong class="uidlink"><a href="paramiko.SSHException-class.html">paramiko.SSHException</a></strong>:
+ <em class="summary">Exception raised by failures in SSH2 protocol negotiation or logic
+ errors.</em>
+ <ul>
+ <li> <strong class="uidlink"><a href="paramiko.AuthenticationException-class.html">paramiko.AuthenticationException</a></strong>:
+ <em class="summary">Exception raised when authentication failed for some reason.</em>
+ <ul>
+ <li> <strong class="uidlink"><a href="paramiko.BadAuthenticationType-class.html">paramiko.BadAuthenticationType</a></strong>:
+ <em class="summary">Exception raised when an authentication type (like password) is
+ used, but the server isn't allowing that type.</em>
+ </li>
+ <li> <strong class="uidlink"><a href="paramiko.ssh_exception.PartialAuthentication-class.html">paramiko.ssh_exception.PartialAuthentication</a></strong>:
+ <em class="summary">An internal exception thrown in the case of partial authentication.</em>
+ </li>
+ <li> <strong class="uidlink"><a href="paramiko.PasswordRequiredException-class.html">paramiko.PasswordRequiredException</a></strong>:
+ <em class="summary">Exception raised when a password is needed to unlock a private key
+ file.</em>
+ </li>
+ </ul>
+ </li>
+ <li> <strong class="uidlink"><a href="paramiko.BadHostKeyException-class.html">paramiko.BadHostKeyException</a></strong>:
+ <em class="summary">The host key given by the SSH server did not match what we were
+ expecting.</em>
+ </li>
+ <li> <strong class="uidlink"><a href="paramiko.ChannelException-class.html">paramiko.ChannelException</a></strong>:
+ <em class="summary">Exception raised when an attempt to open a new <a
+ href="paramiko.Channel-class.html" class="link">Channel</a> fails.</em>
+ </li>
+ </ul>
+ </li>
+ <li> <strong class="uidlink">exceptions.StandardError</strong>:
+ <em class="summary">Base class for all standard Python exceptions that do not represent
+ interpreter exiting.</em>
+ <ul>
+ <li> <strong class="uidlink">exceptions.EnvironmentError</strong>:
+ <em class="summary">Base class for I/O related errors.</em>
+ <ul>
+ <li> <strong class="uidlink">exceptions.IOError</strong>:
+ <em class="summary">I/O operation failed.</em>
+ <ul>
+ <li> <strong class="uidlink"><a href="paramiko.buffered_pipe.PipeTimeout-class.html">paramiko.buffered_pipe.PipeTimeout</a></strong>:
+ <em class="summary">Indicates that a timeout was reached on a read from a <a
+ href="paramiko.buffered_pipe.BufferedPipe-class.html"
+ class="link">BufferedPipe</a>.</em>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </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>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li> <strong class="uidlink">paramiko.BaseSFTP</strong>
+ <ul>
+ <li> <strong class="uidlink"><a href="paramiko.SFTPClient-class.html">paramiko.SFTPClient</a></strong>:
+ <em class="summary">SFTP client object.</em>
+ <ul>
+ <li> <strong class="uidlink"><a href="paramiko.SFTP-class.html">paramiko.SFTP</a></strong>:
+ <em class="summary">an alias for <a href="paramiko.SFTPClient-class.html"
+ class="link">SFTPClient</a> for backwards compatability</em>
+ </li>
+ </ul>
+ </li>
+ <li> <strong class="uidlink"><a href="paramiko.SFTPServer-class.html">paramiko.SFTPServer</a></strong>:
+ <em class="summary">Server-side SFTP subsystem support.</em>
+ </li>
+ </ul>
+ </li>
+ <li> <strong class="uidlink"><a href="paramiko.BufferedFile-class.html">paramiko.BufferedFile</a></strong>:
+ <em class="summary">Reusable base class to implement python-style file buffering around
+ a simpler stream.</em>
+ <ul>
+ <li> <strong class="uidlink">paramiko.ChannelFile</strong>:
+ <em class="summary">A file-like wrapper around <a href="paramiko.Channel-class.html"
+ class="link">Channel</a>.</em>
+ <ul>
+ <li> <strong class="uidlink"><a href="paramiko.channel.ChannelStderrFile-class.html">paramiko.channel.ChannelStderrFile</a></strong>
+ </li>
+ </ul>
+ </li>
+ <li> <strong class="uidlink"><a href="paramiko.SFTPFile-class.html">paramiko.SFTPFile</a></strong>:
+ <em class="summary">Proxy object for a file on the remote server, in client mode SFTP.</em>
+ </li>
+ </ul>
+ </li>
+ <li> <strong class="uidlink"><a href="paramiko.buffered_pipe.BufferedPipe-class.html">paramiko.buffered_pipe.BufferedPipe</a></strong>:
+ <em class="summary">A buffer that obeys normal read (with timeout) &amp; close
+ semantics for a file or socket, but is fed data from another
+ thread.</em>
+ </li>
+ <li> <strong class="uidlink"><a href="paramiko.Channel-class.html">paramiko.Channel</a></strong>:
+ <em class="summary">A secure tunnel across an SSH <a
+ href="paramiko.Transport-class.html" class="link">Transport</a>.</em>
+ </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.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>
+ </li>
+ <li> <strong class="uidlink"><a href="paramiko.kex_group1.KexGroup1-class.html">paramiko.kex_group1.KexGroup1</a></strong>
+ </li>
+ <li> <strong class="uidlink"><a href="paramiko.Message-class.html">paramiko.Message</a></strong>:
+ <em class="summary">An SSH2 <i>Message</i> is a stream of bytes that encodes some
+ combination of strings, integers, bools, and infinite-precision
+ integers (known in python as <i>long</i>s).</em>
+ </li>
+ <li> <strong class="uidlink"><a href="paramiko.MissingHostKeyPolicy-class.html">paramiko.MissingHostKeyPolicy</a></strong>:
+ <em class="summary">Interface for defining the policy that <a
+ href="paramiko.SSHClient-class.html" class="link">SSHClient</a>
+ should use when the SSH server's hostname is not in either the
+ system host keys or the application's keys.</em>
+ <ul>
+ <li> <strong class="uidlink"><a href="paramiko.AutoAddPolicy-class.html">paramiko.AutoAddPolicy</a></strong>:
+ <em class="summary">Policy for automatically adding the hostname and new host key to
+ the local <a href="paramiko.HostKeys-class.html"
+ class="link">HostKeys</a> object, and saving it.</em>
+ </li>
+ <li> <strong class="uidlink"><a href="paramiko.RejectPolicy-class.html">paramiko.RejectPolicy</a></strong>:
+ <em class="summary">Policy for automatically rejecting the unknown hostname &amp; key.</em>
+ </li>
+ <li> <strong class="uidlink"><a href="paramiko.WarningPolicy-class.html">paramiko.WarningPolicy</a></strong>:
+ <em class="summary">Policy for logging a python-style warning for an unknown host key,
+ but accepting it.</em>
+ </li>
+ </ul>
+ </li>
+ <li> <strong class="uidlink"><a href="paramiko.primes.ModulusPack-class.html">paramiko.primes.ModulusPack</a></strong>:
+ <em class="summary">convenience object for holding the contents of the /etc/ssh/moduli
+ file, on systems that have such a file.</em>
+ </li>
+ <li> <strong class="uidlink"><a href="paramiko.pipe.OrPipe-class.html">paramiko.pipe.OrPipe</a></strong>
+ </li>
+ <li> <strong class="uidlink"><a href="paramiko.util.PFilter-class.html">paramiko.util.PFilter</a></strong>
+ </li>
+ <li> <strong class="uidlink"><a href="paramiko.PKey-class.html">paramiko.PKey</a></strong>:
+ <em class="summary">Base class for public keys.</em>
+ <ul>
+ <li> <strong class="uidlink"><a href="paramiko.AgentKey-class.html">paramiko.AgentKey</a></strong>:
+ <em class="summary">Private key held in a local SSH agent.</em>
+ </li>
+ <li> <strong class="uidlink"><a href="paramiko.DSSKey-class.html">paramiko.DSSKey</a></strong>:
+ <em class="summary">Representation of a DSS key which can be used to sign an verify
+ SSH2 data.</em>
+ </li>
+ <li> <strong class="uidlink"><a href="paramiko.RSAKey-class.html">paramiko.RSAKey</a></strong>:
+ <em class="summary">Representation of an RSA key which can be used to sign and verify
+ SSH2 data.</em>
+ </li>
+ </ul>
+ </li>
+ <li> <strong class="uidlink"><a href="paramiko.win_pageant.PageantConnection-class.html">paramiko.win_pageant.PageantConnection</a></strong>:
+ <em class="summary">Mock &quot;connection&quot; to an agent which roughly approximates
+ the behavior of a unix local-domain socket (as used by Agent).</em>
+ </li>
+ <li> <strong class="uidlink"><a href="paramiko.pipe.PosixPipe-class.html">paramiko.pipe.PosixPipe</a></strong>
+ </li>
+ <li> <strong class="uidlink"><a href="paramiko.SFTPAttributes-class.html">paramiko.SFTPAttributes</a></strong>:
+ <em class="summary">Representation of the attributes of a file (or proxied file) for
+ SFTP in client or server mode.</em>
+ </li>
+ <li> <strong class="uidlink"><a href="paramiko.SFTPHandle-class.html">paramiko.SFTPHandle</a></strong>:
+ <em class="summary">Abstract object representing a handle to an open file (or folder)
+ in an SFTP server implementation.</em>
+ </li>
+ <li> <strong class="uidlink"><a href="paramiko.SFTPServerInterface-class.html">paramiko.SFTPServerInterface</a></strong>:
+ <em class="summary">This class defines an interface for controlling the behavior of
+ paramiko when using the <a href="paramiko.SFTPServer-class.html"
+ class="link">SFTPServer</a> subsystem to provide an SFTP server.</em>
+ </li>
+ <li> <strong class="uidlink"><a href="paramiko.SSHClient-class.html">paramiko.SSHClient</a></strong>:
+ <em class="summary">A high-level representation of a session with an SSH server.</em>
+ </li>
+ <li> <strong class="uidlink"><a href="paramiko.SSHConfig-class.html">paramiko.SSHConfig</a></strong>:
+ <em class="summary">Representation of config information as stored in the format used
+ by OpenSSH.</em>
+ </li>
+ <li> <strong class="uidlink"><a href="paramiko.SecurityOptions-class.html">paramiko.SecurityOptions</a></strong>:
+ <em class="summary">Simple object containing the security preferences of an ssh
+ transport.</em>
+ </li>
+ <li> <strong class="uidlink"><a href="paramiko.ServerInterface-class.html">paramiko.ServerInterface</a></strong>:
+ <em class="summary">This class defines an interface for controlling the behavior of
+ paramiko in server mode.</em>
+ </li>
+ <li> <strong class="uidlink"><a href="paramiko.logging22.StreamHandler-class.html">paramiko.logging22.StreamHandler</a></strong>
+ </li>
+ <li> <strong class="uidlink"><a href="paramiko.rng.StrongLockingRandomPool-class.html">paramiko.rng.StrongLockingRandomPool</a></strong>:
+ <em class="summary">Wrapper around RandomPool guaranteeing strong random numbers.</em>
+ </li>
+ <li> <strong class="uidlink"><a href="paramiko.pipe.WindowsPipe-class.html">paramiko.pipe.WindowsPipe</a></strong>:
+ <em class="summary">On Windows, only an OS-level &quot;WinSock&quot; may be used in
+ select(), but reads and writes must be to the actual socket object.</em>
+ </li>
+ <li> <strong class="uidlink"><a href="paramiko.compress.ZlibCompressor-class.html">paramiko.compress.ZlibCompressor</a></strong>
+ </li>
+ <li> <strong class="uidlink"><a href="paramiko.compress.ZlibDecompressor-class.html">paramiko.compress.ZlibDecompressor</a></strong>
+ </li>
+ <li> <strong class="uidlink">threading._Verbose</strong>
+ <ul>
+ <li> <strong class="uidlink">threading.Thread</strong>
+ <ul>
+ <li> <strong class="uidlink"><a href="paramiko.SubsystemHandler-class.html">paramiko.SubsystemHandler</a></strong>:
+ <em class="summary">Handler for a subsytem in server mode.</em>
+ <ul>
+ <li> <strong class="uidlink"><a href="paramiko.SFTPServer-class.html">paramiko.SFTPServer</a></strong>:
+ <em class="summary">Server-side SFTP subsystem support.</em>
+ </li>
+ </ul>
+ </li>
+ <li> <strong class="uidlink"><a href="paramiko.Transport-class.html">paramiko.Transport</a></strong>:
+ <em class="summary">An SSH Transport attaches to a stream (usually a socket),
+ negotiates an encrypted session, authenticates, and then creates
+ stream tunnels, called <a href="paramiko.Channel-class.html"
+ class="link">Channel</a>s, across the session.</em>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li> <strong class="uidlink"><a href="paramiko.logging22.logger-class.html">paramiko.logging22.logger</a></strong>
+ </li>
+ </ul>
+ </li>
+</ul>
+<!-- ==================== 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 bgcolor="#70b0f0" class="navbar-select"
+ >&nbsp;&nbsp;&nbsp;Trees&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 Jul 6 18:30:25 2008
+ </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/crarr.png b/docs/crarr.png
new file mode 100644
index 0000000..26b43c5
--- /dev/null
+++ b/docs/crarr.png
Binary files differ
diff --git a/docs/epydoc.css b/docs/epydoc.css
index 46080bd..86d4170 100644
--- a/docs/epydoc.css
+++ b/docs/epydoc.css
@@ -1,100 +1,322 @@
-/* Body color */
-body { background: #ffffff; color: #000000; }
-
-/* Tables */
-table.summary, table.details, table.index
- { background: #e8f0f8; color: #000000; }
-tr.summary, tr.details, tr.index
- { background: #70b0f0; color: #000000;
- text-align: left; font-size: 120%; }
-tr.group { background: #c0e0f8; color: #000000;
- text-align: left; font-size: 120%;
- font-style: italic; }
-
-/* Documentation page titles */
-h2.module { margin-top: 0.2em; }
-h2.class { margin-top: 0.2em; }
+
+/* Epydoc CSS Stylesheet
+ *
+ * This stylesheet can be used to customize the appearance of epydoc's
+ * HTML output.
+ *
+ */
+
+/* Default Colors & Styles
+ * - Set the default foreground & background color with 'body'; and
+ * link colors with 'a:link' and 'a:visited'.
+ * - Use bold for decision list terms.
+ * - The heading styles defined here are used for headings *within*
+ * docstring descriptions. All headings used by epydoc itself use
+ * either class='epydoc' or class='toc' (CSS styles for both
+ * defined below).
+ */
+body { background: #ffffff; color: #000000; }
+p { margin-top: 0.5em; margin-bottom: 0.5em; }
+a:link { color: #0000ff; }
+a:visited { color: #204080; }
+dt { font-weight: bold; }
+h1 { font-size: +140%; font-style: italic;
+ font-weight: bold; }
+h2 { font-size: +125%; font-style: italic;
+ font-weight: bold; }
+h3 { font-size: +110%; font-style: italic;
+ font-weight: normal; }
+code { font-size: 100%; }
+/* N.B.: class, not pseudoclass */
+a.link { font-family: monospace; }
-/* Headings */
-h1.heading { font-size: +140%; font-style: italic;
- font-weight: bold; }
-h2.heading { font-size: +125%; font-style: italic;
- font-weight: bold; }
-h3.heading { font-size: +110%; font-style: italic;
- font-weight: normal; }
-
-/* Base tree */
-pre.base-tree { font-size: 80%; margin: 0; }
-
-/* Details Sections */
-table.func-details { background: #e8f0f8; color: #000000;
- border: 2px groove #c0d0d0;
- padding: 0 1em 0 1em; margin: 0.4em 0 0 0; }
-h3.func-detail { background: transparent; color: #000000;
- margin: 0 0 1em 0; }
-
-table.var-details { background: #e8f0f8; color: #000000;
- border: 2px groove #c0d0d0;
- padding: 0 1em 0 1em; margin: 0.4em 0 0 0; }
-h3.var-details { background: transparent; color: #000000;
- margin: 0 0 1em 0; }
-
-/* Function signatures */
-.sig { background: transparent; color: #000000;
- font-weight: bold; }
-.sig-name { background: transparent; color: #006080; }
-.sig-arg, .sig-kwarg, .sig-vararg
- { background: transparent; color: #008060; }
-.sig-default { background: transparent; color: #602000; }
-.summary-sig { background: transparent; color: #000000; }
-.summary-sig-name { background: transparent; color: #204080; }
-.summary-sig-arg, .summary-sig-kwarg, .summary-sig-vararg
- { background: transparent; color: #008060; }
-
-/* Doctest blocks */
-.py-src { background: transparent; color: #000000; }
-.py-prompt { background: transparent; color: #005050;
- font-weight: bold;}
-.py-string { background: transparent; color: #006030; }
-.py-comment { background: transparent; color: #003060; }
-.py-keyword { background: transparent; color: #600000; }
-.py-output { background: transparent; color: #404040; }
-pre.doctestblock { background: #f4faff; color: #000000;
- padding: .5em; margin: 1em;
- border: 1px solid #708890; }
-table pre.doctestblock
- { background: #dce4ec; color: #000000;
- padding: .5em; margin: 1em;
- border: 1px solid #708890; }
-
-/* Variable values */
-pre.variable { background: #dce4ec; color: #000000;
- padding: .5em; margin: 0;
- border: 1px solid #708890; }
-.variable-linewrap { background: transparent; color: #604000; }
-.variable-ellipsis { background: transparent; color: #604000; }
-.variable-quote { background: transparent; color: #604000; }
-.re { background: transparent; color: #000000; }
-.re-char { background: transparent; color: #006030; }
-.re-op { background: transparent; color: #600000; }
-.re-group { background: transparent; color: #003060; }
-.re-ref { background: transparent; color: #404040; }
-
-/* Navigation bar */
-table.navbar { background: #a0c0ff; color: #0000ff;
- border: 2px groove #c0d0d0; }
-th.navbar { background: #a0c0ff; color: #0000ff; }
-th.navselect { background: #70b0ff; color: #000000; }
-.nomargin { margin: 0; }
-
-/* Links */
-a:link { background: transparent; color: #0000ff; }
-a:visited { background: transparent; color: #204080; }
-a.navbar:link { background: transparent; color: #0000ff;
- text-decoration: none; }
-a.navbar:visited { background: transparent; color: #204080;
- text-decoration: none; }
-
-/* Lists */
-ul { margin-top: 0; }
+/* Page Header & Footer
+ * - The standard page header consists of a navigation bar (with
+ * pointers to standard pages such as 'home' and 'trees'); a
+ * breadcrumbs list, which can be used to navigate to containing
+ * classes or modules; options links, to show/hide private
+ * variables and to show/hide frames; and a page title (using
+ * <h1>). The page title may be followed by a link to the
+ * corresponding source code (using 'span.codelink').
+ * - The footer consists of a navigation bar, a timestamp, and a
+ * pointer to epydoc's homepage.
+ */
+h1.epydoc { margin: 0; font-size: +140%; font-weight: bold; }
+h2.epydoc { font-size: +130%; font-weight: bold; }
+h3.epydoc { font-size: +115%; font-weight: bold;
+ margin-top: 0.2em; }
+td h3.epydoc { font-size: +115%; font-weight: bold;
+ margin-bottom: 0; }
+table.navbar { background: #a0c0ff; color: #000000;
+ border: 2px groove #c0d0d0; }
+table.navbar table { color: #000000; }
+th.navbar-select { background: #70b0ff;
+ color: #000000; }
+table.navbar a { text-decoration: none; }
+table.navbar a:link { color: #0000ff; }
+table.navbar a:visited { color: #204080; }
+span.breadcrumbs { font-size: 85%; font-weight: bold; }
+span.options { font-size: 70%; }
+span.codelink { font-size: 85%; }
+td.footer { font-size: 85%; }
+
+/* Table Headers
+ * - Each summary table and details section begins with a 'header'
+ * row. This row contains a section title (marked by
+ * 'span.table-header') as well as a show/hide private link
+ * (marked by 'span.options', defined above).
+ * - Summary tables that contain user-defined groups mark those
+ * groups using 'group header' rows.
+ */
+td.table-header { background: #70b0ff; color: #000000;
+ border: 1px solid #608090; }
+td.table-header table { color: #000000; }
+td.table-header table a:link { color: #0000ff; }
+td.table-header table a:visited { color: #204080; }
+span.table-header { font-size: 120%; font-weight: bold; }
+th.group-header { background: #c0e0f8; color: #000000;
+ text-align: left; font-style: italic;
+ font-size: 115%;
+ border: 1px solid #608090; }
+
+/* Summary Tables (functions, variables, etc)
+ * - Each object is described by a single row of the table with
+ * two cells. The left cell gives the object's type, and is
+ * marked with 'code.summary-type'. The right cell gives the
+ * object's name and a summary description.
+ * - CSS styles for the table's header and group headers are
+ * defined above, under 'Table Headers'
+ */
+table.summary { border-collapse: collapse;
+ background: #e8f0f8; color: #000000;
+ border: 1px solid #608090;
+ margin-bottom: 0.5em; }
+td.summary { border: 1px solid #608090; }
+code.summary-type { font-size: 85%; }
+table.summary a:link { color: #0000ff; }
+table.summary a:visited { color: #204080; }
+
+
+/* Details Tables (functions, variables, etc)
+ * - Each object is described in its own div.
+ * - A single-row summary table w/ table-header is used as
+ * a header for each details section (CSS style for table-header
+ * is defined above, under 'Table Headers').
+ */
+table.details { border-collapse: collapse;
+ background: #e8f0f8; color: #000000;
+ border: 1px solid #608090;
+ margin: .2em 0 0 0; }
+table.details table { color: #000000; }
+table.details a:link { color: #0000ff; }
+table.details a:visited { color: #204080; }
+
+/* Fields */
+dl.fields { margin-left: 2em; margin-top: 1em;
+ margin-bottom: 1em; }
+dl.fields dd ul { margin-left: 0em; padding-left: 0em; }
+dl.fields dd ul li ul { margin-left: 2em; padding-left: 0em; }
+div.fields { margin-left: 2em; }
+div.fields p { margin-bottom: 0.5em; }
+
+/* Index tables (identifier index, term index, etc)
+ * - link-index is used for indices containing lists of links
+ * (namely, the identifier index & term index).
+ * - index-where is used in link indices for the text indicating
+ * the container/source for each link.
+ * - metadata-index is used for indices containing metadata
+ * extracted from fields (namely, the bug index & todo index).
+ */
+table.link-index { border-collapse: collapse;
+ background: #e8f0f8; color: #000000;
+ border: 1px solid #608090; }
+td.link-index { border-width: 0px; }
+table.link-index a:link { color: #0000ff; }
+table.link-index a:visited { color: #204080; }
+span.index-where { font-size: 70%; }
+table.metadata-index { border-collapse: collapse;
+ background: #e8f0f8; color: #000000;
+ border: 1px solid #608090;
+ margin: .2em 0 0 0; }
+td.metadata-index { border-width: 1px; border-style: solid; }
+table.metadata-index a:link { color: #0000ff; }
+table.metadata-index a:visited { color: #204080; }
+
+/* Function signatures
+ * - sig* is used for the signature in the details section.
+ * - .summary-sig* is used for the signature in the summary
+ * table, and when listing property accessor functions.
+ * */
+.sig-name { color: #006080; }
+.sig-arg { color: #008060; }
+.sig-default { color: #602000; }
+.summary-sig { font-family: monospace; }
+.summary-sig-name { color: #006080; font-weight: bold; }
+table.summary a.summary-sig-name:link
+ { color: #006080; font-weight: bold; }
+table.summary a.summary-sig-name:visited
+ { color: #006080; font-weight: bold; }
+.summary-sig-arg { color: #006040; }
+.summary-sig-default { color: #501800; }
+
+/* Subclass list
+ */
+ul.subclass-list { display: inline; }
+ul.subclass-list li { display: inline; }
+
+/* To render variables, classes etc. like functions */
+table.summary .summary-name { color: #006080; font-weight: bold;
+ font-family: monospace; }
+table.summary
+ a.summary-name:link { color: #006080; font-weight: bold;
+ font-family: monospace; }
+table.summary
+ a.summary-name:visited { color: #006080; font-weight: bold;
+ font-family: monospace; }
+
+/* Variable values
+ * - In the 'variable details' sections, each varaible's value is
+ * listed in a 'pre.variable' box. The width of this box is
+ * restricted to 80 chars; if the value's repr is longer than
+ * this it will be wrapped, using a backslash marked with
+ * class 'variable-linewrap'. If the value's repr is longer
+ * than 3 lines, the rest will be ellided; and an ellipsis
+ * marker ('...' marked with 'variable-ellipsis') will be used.
+ * - If the value is a string, its quote marks will be marked
+ * with 'variable-quote'.
+ * - If the variable is a regexp, it is syntax-highlighted using
+ * the re* CSS classes.
+ */
+pre.variable { padding: .5em; margin: 0;
+ background: #dce4ec; color: #000000;
+ border: 1px solid #708890; }
+.variable-linewrap { color: #604000; font-weight: bold; }
+.variable-ellipsis { color: #604000; font-weight: bold; }
+.variable-quote { color: #604000; font-weight: bold; }
+.variable-group { color: #008000; font-weight: bold; }
+.variable-op { color: #604000; font-weight: bold; }
+.variable-string { color: #006030; }
+.variable-unknown { color: #a00000; font-weight: bold; }
+.re { color: #000000; }
+.re-char { color: #006030; }
+.re-op { color: #600000; }
+.re-group { color: #003060; }
+.re-ref { color: #404040; }
+
+/* Base tree
+ * - Used by class pages to display the base class hierarchy.
+ */
+pre.base-tree { font-size: 80%; margin: 0; }
+
+/* Frames-based table of contents headers
+ * - Consists of two frames: one for selecting modules; and
+ * the other listing the contents of the selected module.
+ * - h1.toc is used for each frame's heading
+ * - h2.toc is used for subheadings within each frame.
+ */
+h1.toc { text-align: center; font-size: 105%;
+ margin: 0; font-weight: bold;
+ padding: 0; }
+h2.toc { font-size: 100%; font-weight: bold;
+ margin: 0.5em 0 0 -0.3em; }
+
+/* Syntax Highlighting for Source Code
+ * - doctest examples are displayed in a 'pre.py-doctest' block.
+ * If the example is in a details table entry, then it will use
+ * the colors specified by the 'table pre.py-doctest' line.
+ * - Source code listings are displayed in a 'pre.py-src' block.
+ * Each line is marked with 'span.py-line' (used to draw a line
+ * down the left margin, separating the code from the line
+ * numbers). Line numbers are displayed with 'span.py-lineno'.
+ * The expand/collapse block toggle button is displayed with
+ * 'a.py-toggle' (Note: the CSS style for 'a.py-toggle' should not
+ * modify the font size of the text.)
+ * - If a source code page is opened with an anchor, then the
+ * corresponding code block will be highlighted. The code
+ * block's header is highlighted with 'py-highlight-hdr'; and
+ * the code block's body is highlighted with 'py-highlight'.
+ * - The remaining py-* classes are used to perform syntax
+ * highlighting (py-string for string literals, py-name for names,
+ * etc.)
+ */
+pre.py-doctest { padding: .5em; margin: 1em;
+ background: #e8f0f8; color: #000000;
+ border: 1px solid #708890; }
+table pre.py-doctest { background: #dce4ec;
+ color: #000000; }
+pre.py-src { border: 2px solid #000000;
+ background: #f0f0f0; color: #000000; }
+.py-line { border-left: 2px solid #000000;
+ margin-left: .2em; padding-left: .4em; }
+.py-lineno { font-style: italic; font-size: 90%;
+ padding-left: .5em; }
+a.py-toggle { text-decoration: none; }
+div.py-highlight-hdr { border-top: 2px solid #000000;
+ border-bottom: 2px solid #000000;
+ background: #d8e8e8; }
+div.py-highlight { border-bottom: 2px solid #000000;
+ background: #d0e0e0; }
+.py-prompt { color: #005050; font-weight: bold;}
+.py-more { color: #005050; font-weight: bold;}
+.py-string { color: #006030; }
+.py-comment { color: #003060; }
+.py-keyword { color: #600000; }
+.py-output { color: #404040; }
+.py-name { color: #000050; }
+.py-name:link { color: #000050 !important; }
+.py-name:visited { color: #000050 !important; }
+.py-number { color: #005000; }
+.py-defname { color: #000060; font-weight: bold; }
+.py-def-name { color: #000060; font-weight: bold; }
+.py-base-class { color: #000060; }
+.py-param { color: #000060; }
+.py-docstring { color: #006030; }
+.py-decorator { color: #804020; }
+/* Use this if you don't want links to names underlined: */
+/*a.py-name { text-decoration: none; }*/
+
+/* Graphs & Diagrams
+ * - These CSS styles are used for graphs & diagrams generated using
+ * Graphviz dot. 'img.graph-without-title' is used for bare
+ * diagrams (to remove the border created by making the image
+ * clickable).
+ */
+img.graph-without-title { border: none; }
+img.graph-with-title { border: 1px solid #000000; }
+span.graph-title { font-weight: bold; }
+span.graph-caption { }
+
+/* General-purpose classes
+ * - 'p.indent-wrapped-lines' defines a paragraph whose first line
+ * is not indented, but whose subsequent lines are.
+ * - The 'nomargin-top' class is used to remove the top margin (e.g.
+ * from lists). The 'nomargin' class is used to remove both the
+ * top and bottom margin (but not the left or right margin --
+ * for lists, that would cause the bullets to disappear.)
+ */
+p.indent-wrapped-lines { padding: 0 0 0 7em; text-indent: -7em;
+ margin: 0; }
+.nomargin-top { margin-top: 0; }
+.nomargin { margin-top: 0; margin-bottom: 0; }
+
+/* HTML Log */
+div.log-block { padding: 0; margin: .5em 0 .5em 0;
+ background: #e8f0f8; color: #000000;
+ border: 1px solid #000000; }
+div.log-error { padding: .1em .3em .1em .3em; margin: 4px;
+ background: #ffb0b0; color: #000000;
+ border: 1px solid #000000; }
+div.log-warning { padding: .1em .3em .1em .3em; margin: 4px;
+ background: #ffffb0; color: #000000;
+ border: 1px solid #000000; }
+div.log-info { padding: .1em .3em .1em .3em; margin: 4px;
+ background: #b0ffb0; color: #000000;
+ border: 1px solid #000000; }
+h2.log-hdr { background: #70b0ff; color: #000000;
+ margin: 0; padding: 0em 0.5em 0em 0.5em;
+ border-bottom: 1px solid #000000; font-size: 110%; }
+p.log { font-weight: bold; margin: .5em 0 .5em 0; }
+tr.opt-changed { color: #000000; font-weight: bold; }
+tr.opt-default { color: #606060; }
+pre.log { margin: 0; padding: 0; padding-left: 1em; }
diff --git a/docs/epydoc.js b/docs/epydoc.js
new file mode 100644
index 0000000..e787dbc
--- /dev/null
+++ b/docs/epydoc.js
@@ -0,0 +1,293 @@
+function toggle_private() {
+ // Search for any private/public links on this page. Store
+ // their old text in "cmd," so we will know what action to
+ // take; and change their text to the opposite action.
+ var cmd = "?";
+ var elts = document.getElementsByTagName("a");
+ for(var i=0; i<elts.length; i++) {
+ if (elts[i].className == "privatelink") {
+ cmd = elts[i].innerHTML;
+ elts[i].innerHTML = ((cmd && cmd.substr(0,4)=="show")?
+ "hide&nbsp;private":"show&nbsp;private");
+ }
+ }
+ // Update all DIVs containing private objects.
+ var elts = document.getElementsByTagName("div");
+ for(var i=0; i<elts.length; i++) {
+ if (elts[i].className == "private") {
+ elts[i].style.display = ((cmd && cmd.substr(0,4)=="hide")?"none":"block");
+ }
+ else if (elts[i].className == "public") {
+ elts[i].style.display = ((cmd && cmd.substr(0,4)=="hide")?"block":"none");
+ }
+ }
+ // Update all table rows containing private objects. Note, we
+ // use "" instead of "block" becaue IE & firefox disagree on what
+ // this should be (block vs table-row), and "" just gives the
+ // default for both browsers.
+ var elts = document.getElementsByTagName("tr");
+ for(var i=0; i<elts.length; i++) {
+ if (elts[i].className == "private") {
+ elts[i].style.display = ((cmd && cmd.substr(0,4)=="hide")?"none":"");
+ }
+ }
+ // Update all list items containing private objects.
+ var elts = document.getElementsByTagName("li");
+ for(var i=0; i<elts.length; i++) {
+ if (elts[i].className == "private") {
+ elts[i].style.display = ((cmd && cmd.substr(0,4)=="hide")?
+ "none":"");
+ }
+ }
+ // Update all list items containing private objects.
+ var elts = document.getElementsByTagName("ul");
+ for(var i=0; i<elts.length; i++) {
+ if (elts[i].className == "private") {
+ elts[i].style.display = ((cmd && cmd.substr(0,4)=="hide")?"none":"block");
+ }
+ }
+ // Set a cookie to remember the current option.
+ document.cookie = "EpydocPrivate="+cmd;
+ }
+function show_private() {
+ var elts = document.getElementsByTagName("a");
+ for(var i=0; i<elts.length; i++) {
+ if (elts[i].className == "privatelink") {
+ cmd = elts[i].innerHTML;
+ if (cmd && cmd.substr(0,4)=="show")
+ toggle_private();
+ }
+ }
+ }
+function getCookie(name) {
+ var dc = document.cookie;
+ var prefix = name + "=";
+ var begin = dc.indexOf("; " + prefix);
+ if (begin == -1) {
+ begin = dc.indexOf(prefix);
+ if (begin != 0) return null;
+ } else
+ { begin += 2; }
+ var end = document.cookie.indexOf(";", begin);
+ if (end == -1)
+ { end = dc.length; }
+ return unescape(dc.substring(begin + prefix.length, end));
+ }
+function setFrame(url1, url2) {
+ parent.frames[1].location.href = url1;
+ parent.frames[2].location.href = url2;
+ }
+function checkCookie() {
+ var cmd=getCookie("EpydocPrivate");
+ if (cmd && cmd.substr(0,4)!="show" && location.href.indexOf("#_") < 0)
+ toggle_private();
+ }
+function toggleCallGraph(id) {
+ var elt = document.getElementById(id);
+ if (elt.style.display == "none")
+ elt.style.display = "block";
+ else
+ elt.style.display = "none";
+ }
+function expand(id) {
+ var elt = document.getElementById(id+"-expanded");
+ if (elt) elt.style.display = "block";
+ var elt = document.getElementById(id+"-expanded-linenums");
+ if (elt) elt.style.display = "block";
+ var elt = document.getElementById(id+"-collapsed");
+ if (elt) { elt.innerHTML = ""; elt.style.display = "none"; }
+ var elt = document.getElementById(id+"-collapsed-linenums");
+ if (elt) { elt.innerHTML = ""; elt.style.display = "none"; }
+ var elt = document.getElementById(id+"-toggle");
+ if (elt) { elt.innerHTML = "-"; }
+}
+
+function collapse(id) {
+ var elt = document.getElementById(id+"-expanded");
+ if (elt) elt.style.display = "none";
+ var elt = document.getElementById(id+"-expanded-linenums");
+ if (elt) elt.style.display = "none";
+ var elt = document.getElementById(id+"-collapsed-linenums");
+ if (elt) { elt.innerHTML = "<br />"; elt.style.display="block"; }
+ var elt = document.getElementById(id+"-toggle");
+ if (elt) { elt.innerHTML = "+"; }
+ var elt = document.getElementById(id+"-collapsed");
+ if (elt) {
+ elt.style.display = "block";
+
+ var indent = elt.getAttribute("indent");
+ var pad = elt.getAttribute("pad");
+ var s = "<tt class='py-lineno'>";
+ for (var i=0; i<pad.length; i++) { s += "&nbsp;" }
+ s += "</tt>";
+ s += "&nbsp;&nbsp;<tt class='py-line'>";
+ for (var i=0; i<indent.length; i++) { s += "&nbsp;" }
+ s += "<a href='#' onclick='expand(\"" + id;
+ s += "\");return false'>...</a></tt><br />";
+ elt.innerHTML = s;
+ }
+}
+
+function toggle(id) {
+ elt = document.getElementById(id+"-toggle");
+ if (elt.innerHTML == "-")
+ collapse(id);
+ else
+ expand(id);
+ return false;
+}
+
+function highlight(id) {
+ var elt = document.getElementById(id+"-def");
+ if (elt) elt.className = "py-highlight-hdr";
+ var elt = document.getElementById(id+"-expanded");
+ if (elt) elt.className = "py-highlight";
+ var elt = document.getElementById(id+"-collapsed");
+ if (elt) elt.className = "py-highlight";
+}
+
+function num_lines(s) {
+ var n = 1;
+ var pos = s.indexOf("\n");
+ while ( pos > 0) {
+ n += 1;
+ pos = s.indexOf("\n", pos+1);
+ }
+ return n;
+}
+
+// Collapse all blocks that mave more than `min_lines` lines.
+function collapse_all(min_lines) {
+ var elts = document.getElementsByTagName("div");
+ for (var i=0; i<elts.length; i++) {
+ var elt = elts[i];
+ var split = elt.id.indexOf("-");
+ if (split > 0)
+ if (elt.id.substring(split, elt.id.length) == "-expanded")
+ if (num_lines(elt.innerHTML) > min_lines)
+ collapse(elt.id.substring(0, split));
+ }
+}
+
+function expandto(href) {
+ var start = href.indexOf("#")+1;
+ if (start != 0 && start != href.length) {
+ if (href.substring(start, href.length) != "-") {
+ collapse_all(4);
+ pos = href.indexOf(".", start);
+ while (pos != -1) {
+ var id = href.substring(start, pos);
+ expand(id);
+ pos = href.indexOf(".", pos+1);
+ }
+ var id = href.substring(start, href.length);
+ expand(id);
+ highlight(id);
+ }
+ }
+}
+
+function kill_doclink(id) {
+ var parent = document.getElementById(id);
+ parent.removeChild(parent.childNodes.item(0));
+}
+function auto_kill_doclink(ev) {
+ if (!ev) var ev = window.event;
+ if (!this.contains(ev.toElement)) {
+ var parent = document.getElementById(this.parentID);
+ parent.removeChild(parent.childNodes.item(0));
+ }
+}
+
+function doclink(id, name, targets_id) {
+ var elt = document.getElementById(id);
+
+ // If we already opened the box, then destroy it.
+ // (This case should never occur, but leave it in just in case.)
+ if (elt.childNodes.length > 1) {
+ elt.removeChild(elt.childNodes.item(0));
+ }
+ else {
+ // The outer box: relative + inline positioning.
+ var box1 = document.createElement("div");
+ box1.style.position = "relative";
+ box1.style.display = "inline";
+ box1.style.top = 0;
+ box1.style.left = 0;
+
+ // A shadow for fun
+ var shadow = document.createElement("div");
+ shadow.style.position = "absolute";
+ shadow.style.left = "-1.3em";
+ shadow.style.top = "-1.3em";
+ shadow.style.background = "#404040";
+
+ // The inner box: absolute positioning.
+ var box2 = document.createElement("div");
+ box2.style.position = "relative";
+ box2.style.border = "1px solid #a0a0a0";
+ box2.style.left = "-.2em";
+ box2.style.top = "-.2em";
+ box2.style.background = "white";
+ box2.style.padding = ".3em .4em .3em .4em";
+ box2.style.fontStyle = "normal";
+ box2.onmouseout=auto_kill_doclink;
+ box2.parentID = id;
+
+ // Get the targets
+ var targets_elt = document.getElementById(targets_id);
+ var targets = targets_elt.getAttribute("targets");
+ var links = "";
+ target_list = targets.split(",");
+ for (var i=0; i<target_list.length; i++) {
+ var target = target_list[i].split("=");
+ links += "<li><a href='" + target[1] +
+ "' style='text-decoration:none'>" +
+ target[0] + "</a></li>";
+ }
+
+ // Put it all together.
+ elt.insertBefore(box1, elt.childNodes.item(0));
+ //box1.appendChild(box2);
+ box1.appendChild(shadow);
+ shadow.appendChild(box2);
+ box2.innerHTML =
+ "Which <b>"+name+"</b> do you want to see documentation for?" +
+ "<ul style='margin-bottom: 0;'>" +
+ links +
+ "<li><a href='#' style='text-decoration:none' " +
+ "onclick='kill_doclink(\""+id+"\");return false;'>"+
+ "<i>None of the above</i></a></li></ul>";
+ }
+ return false;
+}
+
+function get_anchor() {
+ var href = location.href;
+ var start = href.indexOf("#")+1;
+ if ((start != 0) && (start != href.length))
+ return href.substring(start, href.length);
+ }
+function redirect_url(dottedName) {
+ // Scan through each element of the "pages" list, and check
+ // if "name" matches with any of them.
+ for (var i=0; i<pages.length; i++) {
+
+ // Each page has the form "<pagename>-m" or "<pagename>-c";
+ // extract the <pagename> portion & compare it to dottedName.
+ var pagename = pages[i].substring(0, pages[i].length-2);
+ if (pagename == dottedName.substring(0,pagename.length)) {
+
+ // We've found a page that matches `dottedName`;
+ // construct its URL, using leftover `dottedName`
+ // content to form an anchor.
+ var pagetype = pages[i].charAt(pages[i].length-1);
+ var url = pagename + ((pagetype=="m")?"-module.html":
+ "-class.html");
+ if (dottedName.length > pagename.length)
+ url += "#" + dottedName.substring(pagename.length+1,
+ dottedName.length);
+ return url;
+ }
+ }
+ }
diff --git a/docs/frames.html b/docs/frames.html
new file mode 100644
index 0000000..d1e8877
--- /dev/null
+++ b/docs/frames.html
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
+ "DTD/xhtml1-frameset.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title> API Documentation </title>
+</head>
+<frameset cols="20%,80%">
+ <frameset rows="30%,70%">
+ <frame src="toc.html" name="moduleListFrame"
+ id="moduleListFrame" />
+ <frame src="toc-everything.html" name="moduleFrame"
+ id="moduleFrame" />
+ </frameset>
+ <frame src="paramiko-module.html" name="mainFrame" id="mainFrame" />
+</frameset>
+</html>
diff --git a/docs/private/help.html b/docs/help.html
index 5aab6d0..ec1c7dc 100644
--- a/docs/private/help.html
+++ b/docs/help.html
@@ -1,35 +1,54 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
+<?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>Help</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
+ <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 bgcolor="#70b0f0" class="navbar-select"
+ >&nbsp;&nbsp;&nbsp;Help&nbsp;&nbsp;&nbsp;</th>
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th bgcolor="#70b0f0" class="navselect">&nbsp;&nbsp;&nbsp;Help&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar" width="100%"></th>
+ <th class="navbar" width="100%"></th>
</tr>
</table>
<table width="100%" cellpadding="0" cellspacing="0">
<tr valign="top">
- <td width="100%">
+ <td width="100%">&nbsp;</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="help.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
</td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/help.html">hide&nbsp;private</a>]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="help.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
+ </tr>
+</table>
-<center><h2> API Documentation </h2></center>
+<h1 class="epydoc"> API Documentation </h1>
<p> This document contains the API (Application Programming Interface)
documentation for this project. Documentation for the Python
@@ -40,7 +59,7 @@ page, and an index page. </p>
<h2> Object Documentation </h2>
- <p>Each <b>Package Documentation</b> page contains:
+ <p>Each <strong>Package Documentation</strong> page contains: </p>
<ul>
<li> A description of the package. </li>
<li> A list of the modules and sub-packages contained by the
@@ -52,9 +71,9 @@ page, and an index page. </p>
package. </li>
<li> A detailed description of each variable defined by the
package. </li>
- </ul></p>
+ </ul>
- <p>Each <b>Module Documentation</b> page contains:
+ <p>Each <strong>Module Documentation</strong> page contains:</p>
<ul>
<li> A description of the module. </li>
<li> A summary of the classes defined by the module. </li>
@@ -64,9 +83,9 @@ page, and an index page. </p>
module. </li>
<li> A detailed description of each variable defined by the
module. </li>
- </ul></p>
+ </ul>
- <p>Each <b>Class Documentation</b> page contains:
+ <p>Each <strong>Class Documentation</strong> page contains: </p>
<ul>
<li> A class inheritance diagram. </li>
<li> A list of known subclasses. </li>
@@ -81,71 +100,69 @@ page, and an index page. </p>
class. </li>
<li> A detailed description of each class (static) variable defined
by the class. </li>
- </ul></p>
+ </ul>
<h2> Project Documentation </h2>
- <p> The <b>Trees</b> page contains the module and class hierarchies:
+ <p> The <strong>Trees</strong> page contains the module and class hierarchies: </p>
<ul>
- <li> The <i>module hierarchy</i> lists every package and module, with
+ <li> The <em>module hierarchy</em> lists every package and module, with
modules grouped into packages. At the top level, and within each
package, modules and sub-packages are listed alphabetically. </li>
- <li> The <i>class hierarchy</i> lists every class, grouped by base
+ <li> The <em>class hierarchy</em> lists every class, grouped by base
class. If a class has more than one base class, then it will be
listed under each base class. At the top level, and under each base
class, classes are listed alphabetically. </li>
- </ul></p>
+ </ul>
- <p> The <b>Index</b> page contains indices of terms and
- identifiers:
+ <p> The <strong>Index</strong> page contains indices of terms and
+ identifiers: </p>
<ul>
- <li> The <i>term index</i> lists every term indexed by any object's
+ <li> The <em>term index</em> lists every term indexed by any object's
documentation. For each term, the index provides links to each
place where the term is indexed. </li>
- <li> The <i>identifier index</i> lists the (short) name of every package,
+ <li> The <em>identifier index</em> lists the (short) name of every package,
module, class, method, function, variable, and parameter. For each
identifier, the index provides a short description, and a link to
its documentation. </li>
- </ul></p>
+ </ul>
<h2> The Table of Contents </h2>
<p> The table of contents occupies the two frames on the left side of
-the window. The upper-left frame displays the <i>project
-contents</i>, and the lower-left frame displays the <i>module
-contents</i>: </p>
-
-<center>
-<table class="summary" border="1" cellspacing="0" cellpadding="3">
- <tr heigh="30%">
- <td align="center">
- <font size="-1">Project<br>Contents<hr>...</font></td>
- <td align="center" rowspan="2" width="70%">
- API<br>Documentation<br>Frame<br><br><br>
+the window. The upper-left frame displays the <em>project
+contents</em>, and the lower-left frame displays the <em>module
+contents</em>: </p>
+
+<table class="help summary" border="1" cellspacing="0" cellpadding="3">
+ <tr style="height: 30%">
+ <td align="center" style="font-size: small">
+ Project<br />Contents<hr />...</td>
+ <td align="center" style="font-size: small" rowspan="2" width="70%">
+ API<br />Documentation<br />Frame<br /><br /><br />
</td>
</tr>
<tr>
- <td align="center">
- <font size="-1">Module<br>Contents<hr>&nbsp;<br>...<br>&nbsp;</font>
+ <td align="center" style="font-size: small">
+ Module<br />Contents<hr />&nbsp;<br />...<br />&nbsp;
</td>
</tr>
-</table><br>
-</center>
+</table><br />
-<p> The <b>project contents frame</b> contains a list of all packages
+<p> The <strong>project contents frame</strong> contains a list of all packages
and modules that are defined by the project. Clicking on an entry
will display its contents in the module contents frame. Clicking on a
special entry, labeled "Everything," will display the contents of
the entire project. </p>
-<p> The <b>module contents frame</b> contains a list of every
+<p> The <strong>module contents frame</strong> contains a list of every
submodule, class, type, exception, function, and variable defined by a
module or package. Clicking on an entry will display its
documentation in the API documentation frame. Clicking on the name of
the module, at the top of the frame, will display the documentation
for the module itself. </p>
-<p> The "<b>frames</b>" and "<b>no frames</b>" buttons below the top
+<p> The "<strong>frames</strong>" and "<strong>no frames</strong>" buttons below the top
navigation bar can be used to control whether the table of contents is
displayed or not. </p>
@@ -163,32 +180,32 @@ on the navigation bar. Note that not some labels (such as
<th>Highlighted when...</th>
<th>Links to...</th>
</tr>
- <tr><td valign="top"><b>[Parent]</b></td>
- <td valign="top"><i>(never highlighted)</i></td>
+ <tr><td valign="top"><strong>[Parent]</strong></td>
+ <td valign="top"><em>(never highlighted)</em></td>
<td valign="top"> the parent of the current package </td></tr>
- <tr><td valign="top"><b>[Package]</b></td>
+ <tr><td valign="top"><strong>[Package]</strong></td>
<td valign="top">viewing a package</td>
<td valign="top">the package containing the current object
</td></tr>
- <tr><td valign="top"><b>[Module]</b></td>
+ <tr><td valign="top"><strong>[Module]</strong></td>
<td valign="top">viewing a module</td>
<td valign="top">the module containing the current object
</td></tr>
- <tr><td valign="top"><b>[Class]</b></td>
+ <tr><td valign="top"><strong>[Class]</strong></td>
<td valign="top">viewing a class </td>
<td valign="top">the class containing the current object</td></tr>
- <tr><td valign="top"><b>[Trees]</b></td>
+ <tr><td valign="top"><strong>[Trees]</strong></td>
<td valign="top">viewing the trees page</td>
<td valign="top"> the trees page </td></tr>
- <tr><td valign="top"><b>[Index]</b></td>
+ <tr><td valign="top"><strong>[Index]</strong></td>
<td valign="top">viewing the index page</td>
<td valign="top"> the index page </td></tr>
- <tr><td valign="top"><b>[Help]</b></td>
+ <tr><td valign="top"><strong>[Help]</strong></td>
<td valign="top">viewing the help page</td>
<td valign="top"> the help page </td></tr>
</table>
-<p> The "<b>show private</b>" and "<b>hide private</b>" buttons below
+<p> The "<strong>show private</strong>" and "<strong>hide private</strong>" buttons below
the top navigation bar can be used to control whether documentation
for private objects is displayed. Private objects are usually defined
as objects whose (short) names begin with a single underscore, but do
@@ -201,24 +218,49 @@ contents are used to decide which objects are private. </p>
<p> A timestamp below the bottom navigation bar indicates when each
page was last updated. </p>
+<!-- ==================== 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>
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th bgcolor="#70b0f0" class="navselect">&nbsp;&nbsp;&nbsp;Help&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar" width="100%"></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 bgcolor="#70b0f0" class="navbar-select"
+ >&nbsp;&nbsp;&nbsp;Help&nbsp;&nbsp;&nbsp;</th>
+
+ <th class="navbar" width="100%"></th>
</tr>
</table>
-
-<table border="0" cellpadding="0" cellspacing="0" width="100%">
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
<tr>
- <td align="left"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:48 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
+ <td align="left" class="footer">
+ Generated by Epydoc 3.0.1 on Sun Jul 6 18:30:25 2008
+ </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/identifier-index.html b/docs/identifier-index.html
new file mode 100644
index 0000000..5976d1a
--- /dev/null
+++ b/docs/identifier-index.html
@@ -0,0 +1,5420 @@
+<?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>Identifier Index</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 bgcolor="#70b0f0" class="navbar-select"
+ >&nbsp;&nbsp;&nbsp;Indices&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%">&nbsp;</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="identifier-index.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<center><b>[
+ <a href="identifier-index.html">Identifiers</a>
+| <a href="bug-index.html">Bugs</a>
+| <a href="since-index.html">Introductions</a>
+]</b></center><br />
+<table border="0" width="100%">
+<tr valign="bottom"><td>
+<h1 class="epydoc">Identifier Index</h1>
+</td><td>
+[
+ <a href="#A">A</a>
+ <a href="#B">B</a>
+ <a href="#C">C</a>
+ <a href="#D">D</a>
+ <a href="#E">E</a>
+ <a href="#F">F</a>
+ <a href="#G">G</a>
+ <a href="#H">H</a>
+ <a href="#I">I</a>
+ J
+ <a href="#K">K</a>
+ <a href="#L">L</a>
+ <a href="#M">M</a>
+ <a href="#N">N</a>
+ <a href="#O">O</a>
+ <a href="#P">P</a>
+ Q
+ <a href="#R">R</a>
+ <a href="#S">S</a>
+ <a href="#T">T</a>
+ <a href="#U">U</a>
+ <a href="#V">V</a>
+ <a href="#W">W</a>
+ <a href="#X">X</a>
+ Y
+ <a href="#Z">Z</a>
+ <a href="#_">_</a>
+]
+</td></table>
+<table border="0" width="100%">
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="A">A</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.Transport-class.html#accept">accept()</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.rsakey-module.html#AUTH_FAILED">AUTH_FAILED</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.sftp_server-module.html#AUTH_PARTIALLY_SUCCESSFUL">AUTH_PARTIALLY_SUCCESSFUL</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.HostKeys-class.html#add">add()</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.server-module.html#AUTH_FAILED">AUTH_FAILED</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.sftp_si-module.html#AUTH_PARTIALLY_SUCCESSFUL">AUTH_PARTIALLY_SUCCESSFUL</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.Message-class.html#add">add()</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.sftp-module.html#AUTH_FAILED">AUTH_FAILED</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.transport-module.html#AUTH_PARTIALLY_SUCCESSFUL">AUTH_PARTIALLY_SUCCESSFUL</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.Message-class.html#add_boolean">add_boolean()</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.sftp_attr-module.html#AUTH_FAILED">AUTH_FAILED</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.util-module.html#AUTH_PARTIALLY_SUCCESSFUL">AUTH_PARTIALLY_SUCCESSFUL</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.Message-class.html#add_byte">add_byte()</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.sftp_client-module.html#AUTH_FAILED">AUTH_FAILED</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#auth_password">auth_password()</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.Message-class.html#add_bytes">add_bytes()</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.sftp_file-module.html#AUTH_FAILED">AUTH_FAILED</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.Transport-class.html#auth_publickey">auth_publickey()</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.rng.StrongLockingRandomPool-class.html#add_event">add_event()</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.sftp_handle-module.html#AUTH_FAILED">AUTH_FAILED</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.auth_handler-module.html#AUTH_SUCCESSFUL">AUTH_SUCCESSFUL</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.Message-class.html#add_int">add_int()</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.sftp_server-module.html#AUTH_FAILED">AUTH_FAILED</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.channel-module.html#AUTH_SUCCESSFUL">AUTH_SUCCESSFUL</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.Message-class.html#add_int64">add_int64()</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.sftp_si-module.html#AUTH_FAILED">AUTH_FAILED</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.client-module.html#AUTH_SUCCESSFUL">AUTH_SUCCESSFUL</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.Message-class.html#add_list">add_list()</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-module.html#AUTH_FAILED">AUTH_FAILED</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.common-module.html#AUTH_SUCCESSFUL">AUTH_SUCCESSFUL</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.Message-class.html#add_mpint">add_mpint()</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.util-module.html#AUTH_FAILED">AUTH_FAILED</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.dsskey-module.html#AUTH_SUCCESSFUL">AUTH_SUCCESSFUL</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.Transport-class.html#add_server_key">add_server_key()</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.auth_handler-module.html">auth_handler</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.hostkeys-module.html#AUTH_SUCCESSFUL">AUTH_SUCCESSFUL</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.Message-class.html#add_string">add_string()</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#auth_interactive">auth_interactive()</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#AUTH_SUCCESSFUL">AUTH_SUCCESSFUL</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.logging22.logger-class.html#addFilter">addFilter()</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.Transport-class.html#auth_none">auth_none()</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#AUTH_SUCCESSFUL">AUTH_SUCCESSFUL</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.logging22.logger-class.html#addHandler">addHandler()</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.auth_handler-module.html#AUTH_PARTIALLY_SUCCESSFUL">AUTH_PARTIALLY_SUCCESSFUL</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.packet-module.html#AUTH_SUCCESSFUL">AUTH_SUCCESSFUL</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.Agent-class.html">Agent</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.channel-module.html#AUTH_PARTIALLY_SUCCESSFUL">AUTH_PARTIALLY_SUCCESSFUL</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.pkey-module.html#AUTH_SUCCESSFUL">AUTH_SUCCESSFUL</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.agent-module.html">agent</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#AUTH_PARTIALLY_SUCCESSFUL">AUTH_PARTIALLY_SUCCESSFUL</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.rsakey-module.html#AUTH_SUCCESSFUL">AUTH_SUCCESSFUL</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.AgentKey-class.html">AgentKey</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.common-module.html#AUTH_PARTIALLY_SUCCESSFUL">AUTH_PARTIALLY_SUCCESSFUL</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.server-module.html#AUTH_SUCCESSFUL">AUTH_SUCCESSFUL</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.BadAuthenticationType-class.html#allowed_types">allowed_types</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.dsskey-module.html#AUTH_PARTIALLY_SUCCESSFUL">AUTH_PARTIALLY_SUCCESSFUL</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.sftp-module.html#AUTH_SUCCESSFUL">AUTH_SUCCESSFUL</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.ssh_exception.PartialAuthentication-class.html#allowed_types">allowed_types</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-module.html#AUTH_PARTIALLY_SUCCESSFUL">AUTH_PARTIALLY_SUCCESSFUL</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.sftp_attr-module.html#AUTH_SUCCESSFUL">AUTH_SUCCESSFUL</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.Transport-class.html#atfork">atfork()</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#AUTH_PARTIALLY_SUCCESSFUL">AUTH_PARTIALLY_SUCCESSFUL</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.sftp_client-module.html#AUTH_SUCCESSFUL">AUTH_SUCCESSFUL</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.auth_handler-module.html#AUTH_FAILED">AUTH_FAILED</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.kex_group1-module.html#AUTH_PARTIALLY_SUCCESSFUL">AUTH_PARTIALLY_SUCCESSFUL</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.sftp_file-module.html#AUTH_SUCCESSFUL">AUTH_SUCCESSFUL</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.channel-module.html#AUTH_FAILED">AUTH_FAILED</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.packet-module.html#AUTH_PARTIALLY_SUCCESSFUL">AUTH_PARTIALLY_SUCCESSFUL</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.sftp_handle-module.html#AUTH_SUCCESSFUL">AUTH_SUCCESSFUL</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.client-module.html#AUTH_FAILED">AUTH_FAILED</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-module.html#AUTH_PARTIALLY_SUCCESSFUL">AUTH_PARTIALLY_SUCCESSFUL</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.sftp_server-module.html#AUTH_SUCCESSFUL">AUTH_SUCCESSFUL</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.common-module.html#AUTH_FAILED">AUTH_FAILED</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.rsakey-module.html#AUTH_PARTIALLY_SUCCESSFUL">AUTH_PARTIALLY_SUCCESSFUL</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.sftp_si-module.html#AUTH_SUCCESSFUL">AUTH_SUCCESSFUL</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.dsskey-module.html#AUTH_FAILED">AUTH_FAILED</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.server-module.html#AUTH_PARTIALLY_SUCCESSFUL">AUTH_PARTIALLY_SUCCESSFUL</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-module.html#AUTH_SUCCESSFUL">AUTH_SUCCESSFUL</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.hostkeys-module.html#AUTH_FAILED">AUTH_FAILED</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.sftp-module.html#AUTH_PARTIALLY_SUCCESSFUL">AUTH_PARTIALLY_SUCCESSFUL</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.util-module.html#AUTH_SUCCESSFUL">AUTH_SUCCESSFUL</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-module.html#AUTH_FAILED">AUTH_FAILED</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.sftp_attr-module.html#AUTH_PARTIALLY_SUCCESSFUL">AUTH_PARTIALLY_SUCCESSFUL</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.AuthenticationException-class.html">AuthenticationException</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.kex_group1-module.html#AUTH_FAILED">AUTH_FAILED</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.sftp_client-module.html#AUTH_PARTIALLY_SUCCESSFUL">AUTH_PARTIALLY_SUCCESSFUL</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.AutoAddPolicy-class.html">AutoAddPolicy</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.packet-module.html#AUTH_FAILED">AUTH_FAILED</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.sftp_file-module.html#AUTH_PARTIALLY_SUCCESSFUL">AUTH_PARTIALLY_SUCCESSFUL</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">&nbsp;</td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.pkey-module.html#AUTH_FAILED">AUTH_FAILED</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.sftp_handle-module.html#AUTH_PARTIALLY_SUCCESSFUL">AUTH_PARTIALLY_SUCCESSFUL</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">&nbsp;</td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="B">B</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.BadAuthenticationType-class.html">BadAuthenticationType</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.ber.BER-class.html">BER</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.buffered_pipe-module.html">buffered_pipe</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.BadHostKeyException-class.html">BadHostKeyException</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.ber.BERException-class.html">BERException</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.BufferedFile-class.html">BufferedFile</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.ber-module.html">ber</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.util-module.html#bit_length">bit_length()</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.buffered_pipe.BufferedPipe-class.html">BufferedPipe</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.buffered_pipe-module.html" onclick="show_private();">paramiko.buffered_pipe</a>)</span></td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="C">C</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.DSSKey-class.html#can_sign">can_sign()</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.sftp_server-module.html#CMD_FSTAT">CMD_FSTAT</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_RMDIR">CMD_RMDIR</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.PKey-class.html#can_sign">can_sign()</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.sftp_si-module.html#CMD_FSTAT">CMD_FSTAT</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_RMDIR">CMD_RMDIR</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.RSAKey-class.html#can_sign">can_sign()</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.sftp-module.html#CMD_HANDLE">CMD_HANDLE</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_RMDIR">CMD_RMDIR</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.win_pageant-module.html#can_talk_to_agent">can_talk_to_agent()</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.sftp_attr-module.html#CMD_HANDLE">CMD_HANDLE</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_RMDIR">CMD_RMDIR</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.Transport-class.html#cancel_port_forward">cancel_port_forward()</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#CMD_HANDLE">CMD_HANDLE</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_RMDIR">CMD_RMDIR</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.ServerInterface-class.html#cancel_port_forward_request">cancel_port_forward_request()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.ServerInterface-class.html">ServerInterface</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.sftp_file-module.html#CMD_HANDLE">CMD_HANDLE</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_RMDIR">CMD_RMDIR</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.SFTPServerInterface-class.html#canonicalize">canonicalize()</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.sftp_handle-module.html#CMD_HANDLE">CMD_HANDLE</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_SETSTAT">CMD_SETSTAT</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.Channel-class.html">Channel</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_server-module.html#CMD_HANDLE">CMD_HANDLE</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_SETSTAT">CMD_SETSTAT</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.channel-module.html">channel</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_si-module.html#CMD_HANDLE">CMD_HANDLE</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_SETSTAT">CMD_SETSTAT</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.ChannelException-class.html">ChannelException</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-module.html#CMD_INIT">CMD_INIT</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_SETSTAT">CMD_SETSTAT</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.transport.ChannelMap-class.html">ChannelMap</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_attr-module.html#CMD_INIT">CMD_INIT</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_SETSTAT">CMD_SETSTAT</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.channel.ChannelStderrFile-class.html">ChannelStderrFile</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.sftp_client-module.html#CMD_INIT">CMD_INIT</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_SETSTAT">CMD_SETSTAT</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.SFTPHandle-class.html#chattr">chattr()</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.sftp_file-module.html#CMD_INIT">CMD_INIT</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_SETSTAT">CMD_SETSTAT</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.SFTPServerInterface-class.html#chattr">chattr()</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.sftp_handle-module.html#CMD_INIT">CMD_INIT</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_STAT">CMD_STAT</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.SFTPClient-class.html#chdir">chdir()</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.sftp_server-module.html#CMD_INIT">CMD_INIT</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_STAT">CMD_STAT</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.HostKeys-class.html#check">check()</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.sftp_si-module.html#CMD_INIT">CMD_INIT</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_STAT">CMD_STAT</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.SFTPFile-class.html#check">check()</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.sftp-module.html#CMD_LSTAT">CMD_LSTAT</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_STAT">CMD_STAT</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.ServerInterface-class.html#check_auth_interactive">check_auth_interactive()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.ServerInterface-class.html">ServerInterface</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.sftp_attr-module.html#CMD_LSTAT">CMD_LSTAT</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_STAT">CMD_STAT</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.ServerInterface-class.html#check_auth_interactive_response">check_auth_interactive_response()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.ServerInterface-class.html">ServerInterface</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.sftp_client-module.html#CMD_LSTAT">CMD_LSTAT</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_STAT">CMD_STAT</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.ServerInterface-class.html#check_auth_none">check_auth_none()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.ServerInterface-class.html">ServerInterface</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.sftp_file-module.html#CMD_LSTAT">CMD_LSTAT</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_STAT">CMD_STAT</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.ServerInterface-class.html#check_auth_password">check_auth_password()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.ServerInterface-class.html">ServerInterface</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.sftp_handle-module.html#CMD_LSTAT">CMD_LSTAT</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_STATUS">CMD_STATUS</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.ServerInterface-class.html#check_auth_publickey">check_auth_publickey()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.ServerInterface-class.html">ServerInterface</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.sftp_server-module.html#CMD_LSTAT">CMD_LSTAT</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_STATUS">CMD_STATUS</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.ServerInterface-class.html#check_channel_direct_tcpip_request">check_channel_direct_tcpip_request()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.ServerInterface-class.html">ServerInterface</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.sftp_si-module.html#CMD_LSTAT">CMD_LSTAT</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_STATUS">CMD_STATUS</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.ServerInterface-class.html#check_channel_exec_request">check_channel_exec_request()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.ServerInterface-class.html">ServerInterface</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.sftp-module.html#CMD_MKDIR">CMD_MKDIR</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_STATUS">CMD_STATUS</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.ServerInterface-class.html#check_channel_pty_request">check_channel_pty_request()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.ServerInterface-class.html">ServerInterface</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.sftp_attr-module.html#CMD_MKDIR">CMD_MKDIR</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_STATUS">CMD_STATUS</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.ServerInterface-class.html#check_channel_request">check_channel_request()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.ServerInterface-class.html">ServerInterface</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.sftp_client-module.html#CMD_MKDIR">CMD_MKDIR</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_STATUS">CMD_STATUS</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.ServerInterface-class.html#check_channel_shell_request">check_channel_shell_request()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.ServerInterface-class.html">ServerInterface</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.sftp_file-module.html#CMD_MKDIR">CMD_MKDIR</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_STATUS">CMD_STATUS</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.ServerInterface-class.html#check_channel_subsystem_request">check_channel_subsystem_request()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.ServerInterface-class.html">ServerInterface</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.sftp_handle-module.html#CMD_MKDIR">CMD_MKDIR</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_SYMLINK">CMD_SYMLINK</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.ServerInterface-class.html#check_channel_window_change_request">check_channel_window_change_request()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.ServerInterface-class.html">ServerInterface</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.sftp_server-module.html#CMD_MKDIR">CMD_MKDIR</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_SYMLINK">CMD_SYMLINK</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.ServerInterface-class.html#check_channel_x11_request">check_channel_x11_request()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.ServerInterface-class.html">ServerInterface</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.sftp_si-module.html#CMD_MKDIR">CMD_MKDIR</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_SYMLINK">CMD_SYMLINK</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.ServerInterface-class.html#check_global_request">check_global_request()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.ServerInterface-class.html">ServerInterface</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.sftp-module.html#CMD_NAME">CMD_NAME</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_SYMLINK">CMD_SYMLINK</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.ServerInterface-class.html#check_port_forward_request">check_port_forward_request()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.ServerInterface-class.html">ServerInterface</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.sftp_attr-module.html#CMD_NAME">CMD_NAME</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_SYMLINK">CMD_SYMLINK</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.SFTPClient-class.html#chmod">chmod()</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.sftp_client-module.html#CMD_NAME">CMD_NAME</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_SYMLINK">CMD_SYMLINK</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.SFTPFile-class.html#chmod">chmod()</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.sftp_file-module.html#CMD_NAME">CMD_NAME</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_SYMLINK">CMD_SYMLINK</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.SFTPClient-class.html#chown">chown()</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.sftp_handle-module.html#CMD_NAME">CMD_NAME</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_VERSION">CMD_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.SFTPFile-class.html#chown">chown()</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.sftp_server-module.html#CMD_NAME">CMD_NAME</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_VERSION">CMD_VERSION</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.SecurityOptions-class.html#ciphers">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_si-module.html#CMD_NAME">CMD_NAME</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_VERSION">CMD_VERSION</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.HostKeys-class.html#clear">clear()</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.sftp-module.html#CMD_NAMES">CMD_NAMES</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_VERSION">CMD_VERSION</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.pipe.OrPipe-class.html#clear">clear()</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.sftp_attr-module.html#CMD_NAMES">CMD_NAMES</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_VERSION">CMD_VERSION</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.pipe.PosixPipe-class.html#clear">clear()</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.sftp_client-module.html#CMD_NAMES">CMD_NAMES</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_VERSION">CMD_VERSION</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.pipe.WindowsPipe-class.html#clear">clear()</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.sftp_file-module.html#CMD_NAMES">CMD_NAMES</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_VERSION">CMD_VERSION</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.client-module.html">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_handle-module.html#CMD_NAMES">CMD_NAMES</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_WRITE">CMD_WRITE</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.Agent-class.html#close">close()</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.sftp_server-module.html#CMD_NAMES">CMD_NAMES</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_WRITE">CMD_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>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.BufferedFile-class.html#close">close()</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.sftp_si-module.html#CMD_NAMES">CMD_NAMES</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_WRITE">CMD_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>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.Channel-class.html#close">close()</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.sftp-module.html#CMD_OPEN">CMD_OPEN</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_WRITE">CMD_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>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.SFTPClient-class.html#close">close()</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.sftp_attr-module.html#CMD_OPEN">CMD_OPEN</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_WRITE">CMD_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>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.SFTPFile-class.html#close">close()</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.sftp_client-module.html#CMD_OPEN">CMD_OPEN</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_WRITE">CMD_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>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.SFTPHandle-class.html#close">close()</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.sftp_file-module.html#CMD_OPEN">CMD_OPEN</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_WRITE">CMD_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>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.SSHClient-class.html#close">close()</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.sftp_handle-module.html#CMD_OPEN">CMD_OPEN</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.common-module.html">common</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.Transport-class.html#close">close()</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_server-module.html#CMD_OPEN">CMD_OPEN</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.compress-module.html">compress</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.buffered_pipe.BufferedPipe-class.html#close">close()</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_si-module.html#CMD_OPEN">CMD_OPEN</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.SecurityOptions-class.html#compression">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.pipe.PosixPipe-class.html#close">close()</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.sftp-module.html#CMD_OPENDIR">CMD_OPENDIR</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#compute_hmac">compute_hmac()</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.pipe.WindowsPipe-class.html#close">close()</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.sftp_attr-module.html#CMD_OPENDIR">CMD_OPENDIR</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.config-module.html">config</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.win_pageant.PageantConnection-class.html#close">close()</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.sftp_client-module.html#CMD_OPENDIR">CMD_OPENDIR</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.SSHClient-class.html#connect">connect()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.SSHClient-class.html">SSHClient</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.sftp-module.html#CMD_ATTRS">CMD_ATTRS</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_OPENDIR">CMD_OPENDIR</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.Transport-class.html#connect">connect()</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#CMD_ATTRS">CMD_ATTRS</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_OPENDIR">CMD_OPENDIR</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.auth_handler-module.html#CONNECTION_FAILED_CODE">CONNECTION_FAILED_CODE</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_client-module.html#CMD_ATTRS">CMD_ATTRS</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_OPENDIR">CMD_OPENDIR</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.channel-module.html#CONNECTION_FAILED_CODE">CONNECTION_FAILED_CODE</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_file-module.html#CMD_ATTRS">CMD_ATTRS</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_OPENDIR">CMD_OPENDIR</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.client-module.html#CONNECTION_FAILED_CODE">CONNECTION_FAILED_CODE</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_handle-module.html#CMD_ATTRS">CMD_ATTRS</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_READ">CMD_READ</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.common-module.html#CONNECTION_FAILED_CODE">CONNECTION_FAILED_CODE</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_server-module.html#CMD_ATTRS">CMD_ATTRS</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_READ">CMD_READ</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.dsskey-module.html#CONNECTION_FAILED_CODE">CONNECTION_FAILED_CODE</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_si-module.html#CMD_ATTRS">CMD_ATTRS</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_READ">CMD_READ</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.hostkeys-module.html#CONNECTION_FAILED_CODE">CONNECTION_FAILED_CODE</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-module.html#CMD_CLOSE">CMD_CLOSE</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_READ">CMD_READ</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#CONNECTION_FAILED_CODE">CONNECTION_FAILED_CODE</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_attr-module.html#CMD_CLOSE">CMD_CLOSE</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_READ">CMD_READ</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_group1-module.html#CONNECTION_FAILED_CODE">CONNECTION_FAILED_CODE</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_client-module.html#CMD_CLOSE">CMD_CLOSE</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_READ">CMD_READ</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.packet-module.html#CONNECTION_FAILED_CODE">CONNECTION_FAILED_CODE</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_file-module.html#CMD_CLOSE">CMD_CLOSE</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_READ">CMD_READ</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.pkey-module.html#CONNECTION_FAILED_CODE">CONNECTION_FAILED_CODE</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_handle-module.html#CMD_CLOSE">CMD_CLOSE</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_READDIR">CMD_READDIR</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.rsakey-module.html#CONNECTION_FAILED_CODE">CONNECTION_FAILED_CODE</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_server-module.html#CMD_CLOSE">CMD_CLOSE</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_READDIR">CMD_READDIR</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.server-module.html#CONNECTION_FAILED_CODE">CONNECTION_FAILED_CODE</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_si-module.html#CMD_CLOSE">CMD_CLOSE</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_READDIR">CMD_READDIR</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-module.html#CONNECTION_FAILED_CODE">CONNECTION_FAILED_CODE</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-module.html#CMD_DATA">CMD_DATA</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_READDIR">CMD_READDIR</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_attr-module.html#CONNECTION_FAILED_CODE">CONNECTION_FAILED_CODE</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_attr-module.html#CMD_DATA">CMD_DATA</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_READDIR">CMD_READDIR</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_client-module.html#CONNECTION_FAILED_CODE">CONNECTION_FAILED_CODE</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_client-module.html#CMD_DATA">CMD_DATA</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_READDIR">CMD_READDIR</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_file-module.html#CONNECTION_FAILED_CODE">CONNECTION_FAILED_CODE</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_file-module.html#CMD_DATA">CMD_DATA</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_READDIR">CMD_READDIR</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_handle-module.html#CONNECTION_FAILED_CODE">CONNECTION_FAILED_CODE</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_handle-module.html#CMD_DATA">CMD_DATA</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_READLINK">CMD_READLINK</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_server-module.html#CONNECTION_FAILED_CODE">CONNECTION_FAILED_CODE</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_server-module.html#CMD_DATA">CMD_DATA</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_READLINK">CMD_READLINK</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_si-module.html#CONNECTION_FAILED_CODE">CONNECTION_FAILED_CODE</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_si-module.html#CMD_DATA">CMD_DATA</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_READLINK">CMD_READLINK</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-module.html#CONNECTION_FAILED_CODE">CONNECTION_FAILED_CODE</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-module.html#CMD_EXTENDED">CMD_EXTENDED</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_READLINK">CMD_READLINK</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.util-module.html#CONNECTION_FAILED_CODE">CONNECTION_FAILED_CODE</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_attr-module.html#CMD_EXTENDED">CMD_EXTENDED</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_READLINK">CMD_READLINK</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.SFTPServer-class.html#convert_errno">convert_errno()</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_client-module.html#CMD_EXTENDED">CMD_EXTENDED</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_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>
+</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>
+</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>
+</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>
+</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>
+</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>
+</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>
+</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>
+</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>
+</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>
+</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>
+</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>
+</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>
+</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>
+</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>
+</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>
+</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>
+</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>
+</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>
+</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>
+</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>
+</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>
+</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>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.sftp_handle-module.html#CMD_FSTAT">CMD_FSTAT</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_RMDIR">CMD_RMDIR</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">&nbsp;</td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="D">D</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.auth_handler-module.html#DEBUG">DEBUG</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.common-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER">DISCONNECT_AUTH_CANCELLED_BY_USER</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.sftp_attr-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE">DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE</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.channel-module.html#DEBUG">DEBUG</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.dsskey-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER">DISCONNECT_AUTH_CANCELLED_BY_USER</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.sftp_client-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE">DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE</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.client-module.html#DEBUG">DEBUG</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.hostkeys-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER">DISCONNECT_AUTH_CANCELLED_BY_USER</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.sftp_file-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE">DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE</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.common-module.html#DEBUG">DEBUG</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.kex_gex-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER">DISCONNECT_AUTH_CANCELLED_BY_USER</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.sftp_handle-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE">DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE</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.dsskey-module.html#DEBUG">DEBUG</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.kex_group1-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER">DISCONNECT_AUTH_CANCELLED_BY_USER</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.sftp_server-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE">DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE</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.hostkeys-module.html#DEBUG">DEBUG</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.packet-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER">DISCONNECT_AUTH_CANCELLED_BY_USER</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.sftp_si-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE">DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE</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.kex_gex-module.html#DEBUG">DEBUG</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#DISCONNECT_AUTH_CANCELLED_BY_USER">DISCONNECT_AUTH_CANCELLED_BY_USER</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.transport-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE">DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE</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.kex_group1-module.html#DEBUG">DEBUG</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.rsakey-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER">DISCONNECT_AUTH_CANCELLED_BY_USER</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.util-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE">DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE</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.logging22-module.html#DEBUG">DEBUG</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.server-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER">DISCONNECT_AUTH_CANCELLED_BY_USER</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.auth_handler-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE">DISCONNECT_SERVICE_NOT_AVAILABLE</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.packet-module.html#DEBUG">DEBUG</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.sftp-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER">DISCONNECT_AUTH_CANCELLED_BY_USER</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.channel-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE">DISCONNECT_SERVICE_NOT_AVAILABLE</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.pkey-module.html#DEBUG">DEBUG</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.sftp_attr-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER">DISCONNECT_AUTH_CANCELLED_BY_USER</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.client-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE">DISCONNECT_SERVICE_NOT_AVAILABLE</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.rsakey-module.html#DEBUG">DEBUG</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.sftp_client-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER">DISCONNECT_AUTH_CANCELLED_BY_USER</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.common-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE">DISCONNECT_SERVICE_NOT_AVAILABLE</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.server-module.html#DEBUG">DEBUG</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.sftp_file-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER">DISCONNECT_AUTH_CANCELLED_BY_USER</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.dsskey-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE">DISCONNECT_SERVICE_NOT_AVAILABLE</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-module.html#DEBUG">DEBUG</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#DISCONNECT_AUTH_CANCELLED_BY_USER">DISCONNECT_AUTH_CANCELLED_BY_USER</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.hostkeys-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE">DISCONNECT_SERVICE_NOT_AVAILABLE</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_attr-module.html#DEBUG">DEBUG</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#DISCONNECT_AUTH_CANCELLED_BY_USER">DISCONNECT_AUTH_CANCELLED_BY_USER</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_gex-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE">DISCONNECT_SERVICE_NOT_AVAILABLE</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_client-module.html#DEBUG">DEBUG</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#DISCONNECT_AUTH_CANCELLED_BY_USER">DISCONNECT_AUTH_CANCELLED_BY_USER</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#DISCONNECT_SERVICE_NOT_AVAILABLE">DISCONNECT_SERVICE_NOT_AVAILABLE</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_file-module.html#DEBUG">DEBUG</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.transport-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER">DISCONNECT_AUTH_CANCELLED_BY_USER</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.packet-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE">DISCONNECT_SERVICE_NOT_AVAILABLE</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_handle-module.html#DEBUG">DEBUG</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.util-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER">DISCONNECT_AUTH_CANCELLED_BY_USER</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.pkey-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE">DISCONNECT_SERVICE_NOT_AVAILABLE</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_server-module.html#DEBUG">DEBUG</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#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE">DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE</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.rsakey-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE">DISCONNECT_SERVICE_NOT_AVAILABLE</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_si-module.html#DEBUG">DEBUG</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#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE">DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE</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.server-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE">DISCONNECT_SERVICE_NOT_AVAILABLE</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.transport-module.html#DEBUG">DEBUG</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.client-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE">DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE</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.sftp-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE">DISCONNECT_SERVICE_NOT_AVAILABLE</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-module.html#DEBUG">DEBUG</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.common-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE">DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE</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.sftp_attr-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE">DISCONNECT_SERVICE_NOT_AVAILABLE</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.ber.BER-class.html#decode">decode()</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.dsskey-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE">DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE</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.sftp_client-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE">DISCONNECT_SERVICE_NOT_AVAILABLE</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.ber.BER-class.html#decode_next">decode_next()</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.hostkeys-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE">DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE</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.sftp_file-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE">DISCONNECT_SERVICE_NOT_AVAILABLE</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.ber.BER-class.html#decode_sequence">decode_sequence()</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#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE">DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE</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.sftp_handle-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE">DISCONNECT_SERVICE_NOT_AVAILABLE</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.util-module.html#deflate_long">deflate_long()</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.kex_group1-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE">DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE</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.sftp_server-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE">DISCONNECT_SERVICE_NOT_AVAILABLE</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.transport.ChannelMap-class.html#delete">delete()</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.packet-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE">DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE</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.sftp_si-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE">DISCONNECT_SERVICE_NOT_AVAILABLE</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.SecurityOptions-class.html#digests">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.pkey-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE">DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE</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.transport-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE">DISCONNECT_SERVICE_NOT_AVAILABLE</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.auth_handler-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER">DISCONNECT_AUTH_CANCELLED_BY_USER</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.rsakey-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE">DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE</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.util-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE">DISCONNECT_SERVICE_NOT_AVAILABLE</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-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER">DISCONNECT_AUTH_CANCELLED_BY_USER</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.server-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE">DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE</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.DSSKey-class.html">DSSKey</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.client-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER">DISCONNECT_AUTH_CANCELLED_BY_USER</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.sftp-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE">DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE</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.dsskey-module.html">dsskey</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko-module.html">paramiko</a>)</span></td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="E">E</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.buffered_pipe.BufferedPipe-class.html#empty">empty()</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.kex_gex-module.html#ERROR">ERROR</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.sftp_client-module.html#ERROR">ERROR</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.ber.BER-class.html#encode">encode()</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_group1-module.html#ERROR">ERROR</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.sftp_file-module.html#ERROR">ERROR</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.ber.BER-class.html#encode_sequence">encode_sequence()</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.logging22-module.html#ERROR">ERROR</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.sftp_handle-module.html#ERROR">ERROR</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.ber.BER-class.html#encode_tlv">encode_tlv()</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.packet-module.html#ERROR">ERROR</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.sftp_server-module.html#ERROR">ERROR</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.util.enumerate-class.html">enumerate</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.pkey-module.html#ERROR">ERROR</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.sftp_si-module.html#ERROR">ERROR</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.auth_handler-module.html#ERROR">ERROR</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.rng_posix.error-class.html">error</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-module.html#ERROR">ERROR</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.channel-module.html#ERROR">ERROR</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.rng_win32.error-class.html">error</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.util-module.html#ERROR">ERROR</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.client-module.html#ERROR">ERROR</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.rsakey-module.html#ERROR">ERROR</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.Channel-class.html#exec_command">exec_command()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.Channel-class.html">Channel</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.common-module.html#ERROR">ERROR</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.server-module.html#ERROR">ERROR</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.SSHClient-class.html#exec_command">exec_command()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.SSHClient-class.html">SSHClient</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.dsskey-module.html#ERROR">ERROR</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.sftp-module.html#ERROR">ERROR</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.Channel-class.html#exit_status_ready">exit_status_ready()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.Channel-class.html">Channel</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.hostkeys-module.html#ERROR">ERROR</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.sftp_attr-module.html#ERROR">ERROR</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>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="F">F</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.buffered_pipe.BufferedPipe-class.html#feed">feed()</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.BufferedFile-class.html#FLAG_BINARY">FLAG_BINARY</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.util-module.html#format_binary">format_binary()</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.file-module.html">file</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.BufferedFile-class.html#FLAG_BUFFERED">FLAG_BUFFERED</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.util-module.html#format_binary_line">format_binary_line()</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.SFTPClient-class.html#file">file()</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.SFTPAttributes-class.html#FLAG_EXTENDED">FLAG_EXTENDED</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.util-module.html#format_binary_weird">format_binary_weird()</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#fileno">fileno()</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.BufferedFile-class.html#FLAG_LINE_BUFFERED">FLAG_LINE_BUFFERED</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.logging22.Formatter-class.html">Formatter</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.pipe.PosixPipe-class.html#fileno">fileno()</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.SFTPAttributes-class.html#FLAG_PERMISSIONS">FLAG_PERMISSIONS</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.hostkeys.HostKeyEntry-class.html#from_line">from_line()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.hostkeys.HostKeyEntry-class.html">HostKeyEntry</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.pipe.WindowsPipe-class.html#fileno">fileno()</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.BufferedFile-class.html#FLAG_READ">FLAG_READ</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#from_private_key">from_private_key()</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.util.PFilter-class.html#filter">filter()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.util.PFilter-class.html">PFilter</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.SFTPAttributes-class.html#FLAG_SIZE">FLAG_SIZE</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.PKey-class.html#from_private_key_file">from_private_key_file()</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.SFTPServer-class.html#finish_subsystem">finish_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.SFTPAttributes-class.html#FLAG_UIDGID">FLAG_UIDGID</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.SFTPAttributes-class.html#from_stat">from_stat()</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.SubsystemHandler-class.html#finish_subsystem">finish_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.BufferedFile-class.html#FLAG_UNIVERSAL_NEWLINE">FLAG_UNIVERSAL_NEWLINE</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.SFTPClient-class.html#from_transport">from_transport()</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.SFTPAttributes-class.html#FLAG_AMTIME">FLAG_AMTIME</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.BufferedFile-class.html#FLAG_WRITE">FLAG_WRITE</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>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.BufferedFile-class.html#FLAG_APPEND">FLAG_APPEND</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.BufferedFile-class.html#flush">flush()</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>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="G">G</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.kex_group1-module.html#G">G</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.Transport-class.html#get_hexdump">get_hexdump()</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.Transport-class.html#get_remote_server_key">get_remote_server_key()</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.DSSKey-class.html#generate">generate()</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.SSHClient-class.html#get_host_keys">get_host_keys()</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.Transport-class.html#get_security_options">get_security_options()</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#generate">generate()</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.Channel-class.html#get_id">get_id()</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.SubsystemHandler-class.html#get_server">get_server()</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.util-module.html#generate_key_bytes">generate_key_bytes()</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.Message-class.html#get_int">get_int()</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#get_server_key">get_server_key()</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#get">get()</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.Message-class.html#get_int64">get_int64()</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.Message-class.html#get_so_far">get_so_far()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.Message-class.html">Message</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.transport.ChannelMap-class.html#get">get()</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.Agent-class.html#get_keys">get_keys()</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.Message-class.html#get_string">get_string()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.Message-class.html">Message</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.ServerInterface-class.html#get_allowed_auths">get_allowed_auths()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.ServerInterface-class.html">ServerInterface</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.Message-class.html#get_list">get_list()</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.util-module.html#get_thread_id">get_thread_id()</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.PKey-class.html#get_base64">get_base64()</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#get_log_channel">get_log_channel()</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.Channel-class.html#get_transport">get_transport()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.Channel-class.html">Channel</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.DSSKey-class.html#get_bits">get_bits()</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#get_logger">get_logger()</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.SSHClient-class.html#get_transport">get_transport()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.SSHClient-class.html">SSHClient</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.PKey-class.html#get_bits">get_bits()</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.primes.ModulusPack-class.html#get_modulus">get_modulus()</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.Transport-class.html#get_username">get_username()</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#get_bits">get_bits()</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.Message-class.html#get_mpint">get_mpint()</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.SFTPClient-class.html#getcwd">getcwd()</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.Message-class.html#get_boolean">get_boolean()</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.AgentKey-class.html#get_name">get_name()</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.logging22-module.html#getLogger">getLogger()</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.Message-class.html#get_byte">get_byte()</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.Channel-class.html#get_name">get_name()</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.Channel-class.html#getpeername">getpeername()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.Channel-class.html">Channel</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.Message-class.html#get_bytes">get_bytes()</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.DSSKey-class.html#get_name">get_name()</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.Transport-class.html#getpeername">getpeername()</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.rng.StrongLockingRandomPool-class.html#get_bytes">get_bytes()</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.PKey-class.html#get_name">get_name()</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.Channel-class.html#gettimeout">gettimeout()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.Channel-class.html">Channel</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.SFTPClient-class.html#get_channel">get_channel()</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.RSAKey-class.html#get_name">get_name()</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.SFTPFile-class.html#gettimeout">gettimeout()</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.Transport-class.html#get_exception">get_exception()</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.Channel-class.html#get_pty">get_pty()</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#global_request">global_request()</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.PKey-class.html#get_fingerprint">get_fingerprint()</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.Message-class.html#get_remainder">get_remainder()</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.packet-module.html#got_r_hmac">got_r_hmac</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.packet-module.html" onclick="show_private();">paramiko.packet</a>)</span></td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="H">H</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.HostKeys-class.html#hash_host">hash_host()</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.hostkeys.HostKeyEntry-class.html">HostKeyEntry</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.hostkeys-module.html">hostkeys</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.util-module.html#hexify">hexify()</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.HostKeys-class.html">HostKeys</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko-module.html">paramiko</a>)</span></td>
+<td width="33%" class="link-index">&nbsp;</td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="I">I</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.util-module.html#inflate_long">inflate_long()</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.packet-module.html#INFO">INFO</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.sftp_si-module.html#INFO">INFO</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.auth_handler-module.html#INFO">INFO</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.pkey-module.html#INFO">INFO</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.transport-module.html#INFO">INFO</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.channel-module.html#INFO">INFO</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.rsakey-module.html#INFO">INFO</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.util-module.html#INFO">INFO</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.client-module.html#INFO">INFO</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.server-module.html#INFO">INFO</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.Channel-class.html#invoke_shell">invoke_shell()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.Channel-class.html">Channel</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.common-module.html#INFO">INFO</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.sftp-module.html#INFO">INFO</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.SSHClient-class.html#invoke_shell">invoke_shell()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.SSHClient-class.html">SSHClient</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.dsskey-module.html#INFO">INFO</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.sftp_attr-module.html#INFO">INFO</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.Channel-class.html#invoke_subsystem">invoke_subsystem()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.Channel-class.html">Channel</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.hostkeys-module.html#INFO">INFO</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.sftp_client-module.html#INFO">INFO</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#is_active">is_active()</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.kex_gex-module.html#INFO">INFO</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.sftp_file-module.html#INFO">INFO</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.Transport-class.html#is_authenticated">is_authenticated()</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.kex_group1-module.html#INFO">INFO</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.sftp_handle-module.html#INFO">INFO</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">&nbsp;</td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.logging22-module.html#INFO">INFO</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.sftp_server-module.html#INFO">INFO</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">&nbsp;</td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="K">K</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.SecurityOptions-class.html#kex">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.KexGex-class.html">KexGex</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-class.html#keys">keys()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.HostKeys-class.html">HostKeys</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.kex_gex-module.html">kex_gex</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.kex_group1.KexGroup1-class.html">KexGroup1</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">&nbsp;</td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.kex_group1-module.html">kex_group1</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#key_types">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">&nbsp;</td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="L">L</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.SFTPServerInterface-class.html#list_folder">list_folder()</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.Transport-class.html#load_server_moduli">load_server_moduli()</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-class.html#lookup">lookup()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.HostKeys-class.html">HostKeys</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.SFTPClient-class.html#listdir">listdir()</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.SSHClient-class.html#load_system_host_keys">load_system_host_keys()</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.SSHConfig-class.html#lookup">lookup()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.SSHConfig-class.html">SSHConfig</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.SFTPClient-class.html#listdir_attr">listdir_attr()</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.logging22.logger-class.html#log">log()</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.util-module.html#lookup_ssh_host_config">lookup_ssh_host_config()</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.HostKeys-class.html#load">load()</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.util-module.html#log_to_file">log_to_file()</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.SFTPClient-class.html#lstat">lstat()</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.SSHClient-class.html#load_host_keys">load_host_keys()</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.logging22.logger-class.html">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.SFTPServerInterface-class.html#lstat">lstat()</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.util-module.html#load_host_keys">load_host_keys()</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.logging22-module.html">logging22</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko-module.html">paramiko</a>)</span></td>
+<td width="33%" class="link-index">&nbsp;</td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="M">M</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.pipe-module.html#make_or_pipe">make_or_pipe()</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.pkey-module.html#MSG_CHANNEL_SUCCESS">MSG_CHANNEL_SUCCESS</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.sftp_handle-module.html#MSG_REQUEST_SUCCESS">MSG_REQUEST_SUCCESS</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.pipe-module.html#make_pipe">make_pipe()</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.rsakey-module.html#MSG_CHANNEL_SUCCESS">MSG_CHANNEL_SUCCESS</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.sftp_server-module.html#MSG_REQUEST_SUCCESS">MSG_REQUEST_SUCCESS</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.Channel-class.html#makefile">makefile()</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.server-module.html#MSG_CHANNEL_SUCCESS">MSG_CHANNEL_SUCCESS</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.sftp_si-module.html#MSG_REQUEST_SUCCESS">MSG_REQUEST_SUCCESS</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.Channel-class.html#makefile_stderr">makefile_stderr()</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.sftp-module.html#MSG_CHANNEL_SUCCESS">MSG_CHANNEL_SUCCESS</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.transport-module.html#MSG_REQUEST_SUCCESS">MSG_REQUEST_SUCCESS</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.kex_gex.KexGex-class.html#max_bits">max_bits</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.sftp_attr-module.html#MSG_CHANNEL_SUCCESS">MSG_CHANNEL_SUCCESS</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.util-module.html#MSG_REQUEST_SUCCESS">MSG_REQUEST_SUCCESS</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.SFTPFile-class.html#MAX_REQUEST_SIZE">MAX_REQUEST_SIZE</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.sftp_client-module.html#MSG_CHANNEL_SUCCESS">MSG_CHANNEL_SUCCESS</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.auth_handler-module.html#MSG_SERVICE_ACCEPT">MSG_SERVICE_ACCEPT</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.Message-class.html">Message</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#MSG_CHANNEL_SUCCESS">MSG_CHANNEL_SUCCESS</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.channel-module.html#MSG_SERVICE_ACCEPT">MSG_SERVICE_ACCEPT</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.message-module.html">message</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_handle-module.html#MSG_CHANNEL_SUCCESS">MSG_CHANNEL_SUCCESS</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.client-module.html#MSG_SERVICE_ACCEPT">MSG_SERVICE_ACCEPT</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.kex_gex.KexGex-class.html#min_bits">min_bits</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.sftp_server-module.html#MSG_CHANNEL_SUCCESS">MSG_CHANNEL_SUCCESS</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.common-module.html#MSG_SERVICE_ACCEPT">MSG_SERVICE_ACCEPT</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.channel-module.html#MIN_PACKET_SIZE">MIN_PACKET_SIZE</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.sftp_si-module.html#MSG_CHANNEL_SUCCESS">MSG_CHANNEL_SUCCESS</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.dsskey-module.html#MSG_SERVICE_ACCEPT">MSG_SERVICE_ACCEPT</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.AutoAddPolicy-class.html#missing_host_key">missing_host_key()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.AutoAddPolicy-class.html">AutoAddPolicy</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.transport-module.html#MSG_CHANNEL_SUCCESS">MSG_CHANNEL_SUCCESS</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.hostkeys-module.html#MSG_SERVICE_ACCEPT">MSG_SERVICE_ACCEPT</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.MissingHostKeyPolicy-class.html#missing_host_key">missing_host_key()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.MissingHostKeyPolicy-class.html">MissingHostKeyPolicy</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.util-module.html#MSG_CHANNEL_SUCCESS">MSG_CHANNEL_SUCCESS</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.kex_gex-module.html#MSG_SERVICE_ACCEPT">MSG_SERVICE_ACCEPT</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.RejectPolicy-class.html#missing_host_key">missing_host_key()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.RejectPolicy-class.html">RejectPolicy</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.auth_handler-module.html#MSG_CHANNEL_WINDOW_ADJUST">MSG_CHANNEL_WINDOW_ADJUST</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.kex_group1-module.html#MSG_SERVICE_ACCEPT">MSG_SERVICE_ACCEPT</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.WarningPolicy-class.html#missing_host_key">missing_host_key()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.WarningPolicy-class.html">WarningPolicy</a>)</span></td>
+<td width="33%" class="link-index"><a href="paramiko.channel-module.html#MSG_CHANNEL_WINDOW_ADJUST">MSG_CHANNEL_WINDOW_ADJUST</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.packet-module.html#MSG_SERVICE_ACCEPT">MSG_SERVICE_ACCEPT</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.MissingHostKeyPolicy-class.html">MissingHostKeyPolicy</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#MSG_CHANNEL_WINDOW_ADJUST">MSG_CHANNEL_WINDOW_ADJUST</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-module.html#MSG_SERVICE_ACCEPT">MSG_SERVICE_ACCEPT</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.SFTPClient-class.html#mkdir">mkdir()</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.common-module.html#MSG_CHANNEL_WINDOW_ADJUST">MSG_CHANNEL_WINDOW_ADJUST</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.rsakey-module.html#MSG_SERVICE_ACCEPT">MSG_SERVICE_ACCEPT</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.SFTPServerInterface-class.html#mkdir">mkdir()</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-module.html#MSG_CHANNEL_WINDOW_ADJUST">MSG_CHANNEL_WINDOW_ADJUST</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.server-module.html#MSG_SERVICE_ACCEPT">MSG_SERVICE_ACCEPT</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.util-module.html#mod_inverse">mod_inverse()</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.hostkeys-module.html#MSG_CHANNEL_WINDOW_ADJUST">MSG_CHANNEL_WINDOW_ADJUST</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.sftp-module.html#MSG_SERVICE_ACCEPT">MSG_SERVICE_ACCEPT</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.primes.ModulusPack-class.html">ModulusPack</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.kex_gex-module.html#MSG_CHANNEL_WINDOW_ADJUST">MSG_CHANNEL_WINDOW_ADJUST</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.sftp_attr-module.html#MSG_SERVICE_ACCEPT">MSG_SERVICE_ACCEPT</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.auth_handler-module.html#MSG_CHANNEL_CLOSE">MSG_CHANNEL_CLOSE</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.kex_group1-module.html#MSG_CHANNEL_WINDOW_ADJUST">MSG_CHANNEL_WINDOW_ADJUST</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.sftp_client-module.html#MSG_SERVICE_ACCEPT">MSG_SERVICE_ACCEPT</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.channel-module.html#MSG_CHANNEL_CLOSE">MSG_CHANNEL_CLOSE</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.packet-module.html#MSG_CHANNEL_WINDOW_ADJUST">MSG_CHANNEL_WINDOW_ADJUST</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.sftp_file-module.html#MSG_SERVICE_ACCEPT">MSG_SERVICE_ACCEPT</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.client-module.html#MSG_CHANNEL_CLOSE">MSG_CHANNEL_CLOSE</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-module.html#MSG_CHANNEL_WINDOW_ADJUST">MSG_CHANNEL_WINDOW_ADJUST</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.sftp_handle-module.html#MSG_SERVICE_ACCEPT">MSG_SERVICE_ACCEPT</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.common-module.html#MSG_CHANNEL_CLOSE">MSG_CHANNEL_CLOSE</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.rsakey-module.html#MSG_CHANNEL_WINDOW_ADJUST">MSG_CHANNEL_WINDOW_ADJUST</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.sftp_server-module.html#MSG_SERVICE_ACCEPT">MSG_SERVICE_ACCEPT</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.dsskey-module.html#MSG_CHANNEL_CLOSE">MSG_CHANNEL_CLOSE</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.server-module.html#MSG_CHANNEL_WINDOW_ADJUST">MSG_CHANNEL_WINDOW_ADJUST</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.sftp_si-module.html#MSG_SERVICE_ACCEPT">MSG_SERVICE_ACCEPT</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.hostkeys-module.html#MSG_CHANNEL_CLOSE">MSG_CHANNEL_CLOSE</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.sftp-module.html#MSG_CHANNEL_WINDOW_ADJUST">MSG_CHANNEL_WINDOW_ADJUST</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.transport-module.html#MSG_SERVICE_ACCEPT">MSG_SERVICE_ACCEPT</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.kex_gex-module.html#MSG_CHANNEL_CLOSE">MSG_CHANNEL_CLOSE</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.sftp_attr-module.html#MSG_CHANNEL_WINDOW_ADJUST">MSG_CHANNEL_WINDOW_ADJUST</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.util-module.html#MSG_SERVICE_ACCEPT">MSG_SERVICE_ACCEPT</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_group1-module.html#MSG_CHANNEL_CLOSE">MSG_CHANNEL_CLOSE</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.sftp_client-module.html#MSG_CHANNEL_WINDOW_ADJUST">MSG_CHANNEL_WINDOW_ADJUST</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.auth_handler-module.html#MSG_SERVICE_REQUEST">MSG_SERVICE_REQUEST</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.packet-module.html#MSG_CHANNEL_CLOSE">MSG_CHANNEL_CLOSE</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.sftp_file-module.html#MSG_CHANNEL_WINDOW_ADJUST">MSG_CHANNEL_WINDOW_ADJUST</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.channel-module.html#MSG_SERVICE_REQUEST">MSG_SERVICE_REQUEST</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.pkey-module.html#MSG_CHANNEL_CLOSE">MSG_CHANNEL_CLOSE</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.sftp_handle-module.html#MSG_CHANNEL_WINDOW_ADJUST">MSG_CHANNEL_WINDOW_ADJUST</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.client-module.html#MSG_SERVICE_REQUEST">MSG_SERVICE_REQUEST</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.rsakey-module.html#MSG_CHANNEL_CLOSE">MSG_CHANNEL_CLOSE</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.sftp_server-module.html#MSG_CHANNEL_WINDOW_ADJUST">MSG_CHANNEL_WINDOW_ADJUST</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.common-module.html#MSG_SERVICE_REQUEST">MSG_SERVICE_REQUEST</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.server-module.html#MSG_CHANNEL_CLOSE">MSG_CHANNEL_CLOSE</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.sftp_si-module.html#MSG_CHANNEL_WINDOW_ADJUST">MSG_CHANNEL_WINDOW_ADJUST</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.dsskey-module.html#MSG_SERVICE_REQUEST">MSG_SERVICE_REQUEST</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-module.html#MSG_CHANNEL_CLOSE">MSG_CHANNEL_CLOSE</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.transport-module.html#MSG_CHANNEL_WINDOW_ADJUST">MSG_CHANNEL_WINDOW_ADJUST</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.hostkeys-module.html#MSG_SERVICE_REQUEST">MSG_SERVICE_REQUEST</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_attr-module.html#MSG_CHANNEL_CLOSE">MSG_CHANNEL_CLOSE</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.util-module.html#MSG_CHANNEL_WINDOW_ADJUST">MSG_CHANNEL_WINDOW_ADJUST</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.kex_gex-module.html#MSG_SERVICE_REQUEST">MSG_SERVICE_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.sftp_client-module.html#MSG_CHANNEL_CLOSE">MSG_CHANNEL_CLOSE</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.auth_handler-module.html#MSG_DEBUG">MSG_DEBUG</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.kex_group1-module.html#MSG_SERVICE_REQUEST">MSG_SERVICE_REQUEST</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_file-module.html#MSG_CHANNEL_CLOSE">MSG_CHANNEL_CLOSE</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.channel-module.html#MSG_DEBUG">MSG_DEBUG</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.packet-module.html#MSG_SERVICE_REQUEST">MSG_SERVICE_REQUEST</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_handle-module.html#MSG_CHANNEL_CLOSE">MSG_CHANNEL_CLOSE</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.client-module.html#MSG_DEBUG">MSG_DEBUG</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-module.html#MSG_SERVICE_REQUEST">MSG_SERVICE_REQUEST</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_server-module.html#MSG_CHANNEL_CLOSE">MSG_CHANNEL_CLOSE</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.common-module.html#MSG_DEBUG">MSG_DEBUG</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.rsakey-module.html#MSG_SERVICE_REQUEST">MSG_SERVICE_REQUEST</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_si-module.html#MSG_CHANNEL_CLOSE">MSG_CHANNEL_CLOSE</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.dsskey-module.html#MSG_DEBUG">MSG_DEBUG</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.server-module.html#MSG_SERVICE_REQUEST">MSG_SERVICE_REQUEST</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.transport-module.html#MSG_CHANNEL_CLOSE">MSG_CHANNEL_CLOSE</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.hostkeys-module.html#MSG_DEBUG">MSG_DEBUG</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.sftp-module.html#MSG_SERVICE_REQUEST">MSG_SERVICE_REQUEST</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-module.html#MSG_CHANNEL_CLOSE">MSG_CHANNEL_CLOSE</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.kex_gex-module.html#MSG_DEBUG">MSG_DEBUG</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.sftp_attr-module.html#MSG_SERVICE_REQUEST">MSG_SERVICE_REQUEST</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.auth_handler-module.html#MSG_CHANNEL_DATA">MSG_CHANNEL_DATA</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.kex_group1-module.html#MSG_DEBUG">MSG_DEBUG</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.sftp_client-module.html#MSG_SERVICE_REQUEST">MSG_SERVICE_REQUEST</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.channel-module.html#MSG_CHANNEL_DATA">MSG_CHANNEL_DATA</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.packet-module.html#MSG_DEBUG">MSG_DEBUG</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.sftp_file-module.html#MSG_SERVICE_REQUEST">MSG_SERVICE_REQUEST</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.client-module.html#MSG_CHANNEL_DATA">MSG_CHANNEL_DATA</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-module.html#MSG_DEBUG">MSG_DEBUG</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.sftp_handle-module.html#MSG_SERVICE_REQUEST">MSG_SERVICE_REQUEST</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.common-module.html#MSG_CHANNEL_DATA">MSG_CHANNEL_DATA</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.rsakey-module.html#MSG_DEBUG">MSG_DEBUG</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.sftp_server-module.html#MSG_SERVICE_REQUEST">MSG_SERVICE_REQUEST</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.dsskey-module.html#MSG_CHANNEL_DATA">MSG_CHANNEL_DATA</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.server-module.html#MSG_DEBUG">MSG_DEBUG</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.sftp_si-module.html#MSG_SERVICE_REQUEST">MSG_SERVICE_REQUEST</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.hostkeys-module.html#MSG_CHANNEL_DATA">MSG_CHANNEL_DATA</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.sftp-module.html#MSG_DEBUG">MSG_DEBUG</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.transport-module.html#MSG_SERVICE_REQUEST">MSG_SERVICE_REQUEST</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.kex_gex-module.html#MSG_CHANNEL_DATA">MSG_CHANNEL_DATA</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.sftp_attr-module.html#MSG_DEBUG">MSG_DEBUG</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.util-module.html#MSG_SERVICE_REQUEST">MSG_SERVICE_REQUEST</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_group1-module.html#MSG_CHANNEL_DATA">MSG_CHANNEL_DATA</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.sftp_client-module.html#MSG_DEBUG">MSG_DEBUG</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.auth_handler-module.html#MSG_UNIMPLEMENTED">MSG_UNIMPLEMENTED</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.packet-module.html#MSG_CHANNEL_DATA">MSG_CHANNEL_DATA</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.sftp_file-module.html#MSG_DEBUG">MSG_DEBUG</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.channel-module.html#MSG_UNIMPLEMENTED">MSG_UNIMPLEMENTED</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.pkey-module.html#MSG_CHANNEL_DATA">MSG_CHANNEL_DATA</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.sftp_handle-module.html#MSG_DEBUG">MSG_DEBUG</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.client-module.html#MSG_UNIMPLEMENTED">MSG_UNIMPLEMENTED</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.rsakey-module.html#MSG_CHANNEL_DATA">MSG_CHANNEL_DATA</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.sftp_server-module.html#MSG_DEBUG">MSG_DEBUG</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.common-module.html#MSG_UNIMPLEMENTED">MSG_UNIMPLEMENTED</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.server-module.html#MSG_CHANNEL_DATA">MSG_CHANNEL_DATA</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.sftp_si-module.html#MSG_DEBUG">MSG_DEBUG</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.dsskey-module.html#MSG_UNIMPLEMENTED">MSG_UNIMPLEMENTED</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-module.html#MSG_CHANNEL_DATA">MSG_CHANNEL_DATA</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.transport-module.html#MSG_DEBUG">MSG_DEBUG</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.hostkeys-module.html#MSG_UNIMPLEMENTED">MSG_UNIMPLEMENTED</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_attr-module.html#MSG_CHANNEL_DATA">MSG_CHANNEL_DATA</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.util-module.html#MSG_DEBUG">MSG_DEBUG</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.kex_gex-module.html#MSG_UNIMPLEMENTED">MSG_UNIMPLEMENTED</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_client-module.html#MSG_CHANNEL_DATA">MSG_CHANNEL_DATA</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.auth_handler-module.html#MSG_DISCONNECT">MSG_DISCONNECT</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.kex_group1-module.html#MSG_UNIMPLEMENTED">MSG_UNIMPLEMENTED</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_file-module.html#MSG_CHANNEL_DATA">MSG_CHANNEL_DATA</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.channel-module.html#MSG_DISCONNECT">MSG_DISCONNECT</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.packet-module.html#MSG_UNIMPLEMENTED">MSG_UNIMPLEMENTED</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_handle-module.html#MSG_CHANNEL_DATA">MSG_CHANNEL_DATA</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.client-module.html#MSG_DISCONNECT">MSG_DISCONNECT</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-module.html#MSG_UNIMPLEMENTED">MSG_UNIMPLEMENTED</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_server-module.html#MSG_CHANNEL_DATA">MSG_CHANNEL_DATA</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.common-module.html#MSG_DISCONNECT">MSG_DISCONNECT</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.rsakey-module.html#MSG_UNIMPLEMENTED">MSG_UNIMPLEMENTED</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_si-module.html#MSG_CHANNEL_DATA">MSG_CHANNEL_DATA</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.dsskey-module.html#MSG_DISCONNECT">MSG_DISCONNECT</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.server-module.html#MSG_UNIMPLEMENTED">MSG_UNIMPLEMENTED</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.transport-module.html#MSG_CHANNEL_DATA">MSG_CHANNEL_DATA</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.hostkeys-module.html#MSG_DISCONNECT">MSG_DISCONNECT</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.sftp-module.html#MSG_UNIMPLEMENTED">MSG_UNIMPLEMENTED</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-module.html#MSG_CHANNEL_DATA">MSG_CHANNEL_DATA</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.kex_gex-module.html#MSG_DISCONNECT">MSG_DISCONNECT</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.sftp_attr-module.html#MSG_UNIMPLEMENTED">MSG_UNIMPLEMENTED</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.auth_handler-module.html#MSG_CHANNEL_EOF">MSG_CHANNEL_EOF</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.kex_group1-module.html#MSG_DISCONNECT">MSG_DISCONNECT</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.sftp_client-module.html#MSG_UNIMPLEMENTED">MSG_UNIMPLEMENTED</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.channel-module.html#MSG_CHANNEL_EOF">MSG_CHANNEL_EOF</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.packet-module.html#MSG_DISCONNECT">MSG_DISCONNECT</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.sftp_file-module.html#MSG_UNIMPLEMENTED">MSG_UNIMPLEMENTED</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.client-module.html#MSG_CHANNEL_EOF">MSG_CHANNEL_EOF</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-module.html#MSG_DISCONNECT">MSG_DISCONNECT</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.sftp_handle-module.html#MSG_UNIMPLEMENTED">MSG_UNIMPLEMENTED</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.common-module.html#MSG_CHANNEL_EOF">MSG_CHANNEL_EOF</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.rsakey-module.html#MSG_DISCONNECT">MSG_DISCONNECT</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.sftp_server-module.html#MSG_UNIMPLEMENTED">MSG_UNIMPLEMENTED</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.dsskey-module.html#MSG_CHANNEL_EOF">MSG_CHANNEL_EOF</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.server-module.html#MSG_DISCONNECT">MSG_DISCONNECT</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.sftp_si-module.html#MSG_UNIMPLEMENTED">MSG_UNIMPLEMENTED</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.hostkeys-module.html#MSG_CHANNEL_EOF">MSG_CHANNEL_EOF</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.sftp-module.html#MSG_DISCONNECT">MSG_DISCONNECT</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.transport-module.html#MSG_UNIMPLEMENTED">MSG_UNIMPLEMENTED</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.kex_gex-module.html#MSG_CHANNEL_EOF">MSG_CHANNEL_EOF</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.sftp_attr-module.html#MSG_DISCONNECT">MSG_DISCONNECT</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.util-module.html#MSG_UNIMPLEMENTED">MSG_UNIMPLEMENTED</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_group1-module.html#MSG_CHANNEL_EOF">MSG_CHANNEL_EOF</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.sftp_client-module.html#MSG_DISCONNECT">MSG_DISCONNECT</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.auth_handler-module.html#MSG_USERAUTH_BANNER">MSG_USERAUTH_BANNER</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.packet-module.html#MSG_CHANNEL_EOF">MSG_CHANNEL_EOF</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.sftp_file-module.html#MSG_DISCONNECT">MSG_DISCONNECT</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.channel-module.html#MSG_USERAUTH_BANNER">MSG_USERAUTH_BANNER</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.pkey-module.html#MSG_CHANNEL_EOF">MSG_CHANNEL_EOF</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.sftp_handle-module.html#MSG_DISCONNECT">MSG_DISCONNECT</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.client-module.html#MSG_USERAUTH_BANNER">MSG_USERAUTH_BANNER</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.rsakey-module.html#MSG_CHANNEL_EOF">MSG_CHANNEL_EOF</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.sftp_server-module.html#MSG_DISCONNECT">MSG_DISCONNECT</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.common-module.html#MSG_USERAUTH_BANNER">MSG_USERAUTH_BANNER</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.server-module.html#MSG_CHANNEL_EOF">MSG_CHANNEL_EOF</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.sftp_si-module.html#MSG_DISCONNECT">MSG_DISCONNECT</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.dsskey-module.html#MSG_USERAUTH_BANNER">MSG_USERAUTH_BANNER</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-module.html#MSG_CHANNEL_EOF">MSG_CHANNEL_EOF</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.transport-module.html#MSG_DISCONNECT">MSG_DISCONNECT</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.hostkeys-module.html#MSG_USERAUTH_BANNER">MSG_USERAUTH_BANNER</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_attr-module.html#MSG_CHANNEL_EOF">MSG_CHANNEL_EOF</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.util-module.html#MSG_DISCONNECT">MSG_DISCONNECT</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.kex_gex-module.html#MSG_USERAUTH_BANNER">MSG_USERAUTH_BANNER</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_client-module.html#MSG_CHANNEL_EOF">MSG_CHANNEL_EOF</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.auth_handler-module.html#MSG_GLOBAL_REQUEST">MSG_GLOBAL_REQUEST</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.kex_group1-module.html#MSG_USERAUTH_BANNER">MSG_USERAUTH_BANNER</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_file-module.html#MSG_CHANNEL_EOF">MSG_CHANNEL_EOF</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.channel-module.html#MSG_GLOBAL_REQUEST">MSG_GLOBAL_REQUEST</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.packet-module.html#MSG_USERAUTH_BANNER">MSG_USERAUTH_BANNER</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_handle-module.html#MSG_CHANNEL_EOF">MSG_CHANNEL_EOF</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.client-module.html#MSG_GLOBAL_REQUEST">MSG_GLOBAL_REQUEST</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-module.html#MSG_USERAUTH_BANNER">MSG_USERAUTH_BANNER</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_server-module.html#MSG_CHANNEL_EOF">MSG_CHANNEL_EOF</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.common-module.html#MSG_GLOBAL_REQUEST">MSG_GLOBAL_REQUEST</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.rsakey-module.html#MSG_USERAUTH_BANNER">MSG_USERAUTH_BANNER</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_si-module.html#MSG_CHANNEL_EOF">MSG_CHANNEL_EOF</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.dsskey-module.html#MSG_GLOBAL_REQUEST">MSG_GLOBAL_REQUEST</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.server-module.html#MSG_USERAUTH_BANNER">MSG_USERAUTH_BANNER</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.transport-module.html#MSG_CHANNEL_EOF">MSG_CHANNEL_EOF</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.hostkeys-module.html#MSG_GLOBAL_REQUEST">MSG_GLOBAL_REQUEST</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.sftp-module.html#MSG_USERAUTH_BANNER">MSG_USERAUTH_BANNER</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-module.html#MSG_CHANNEL_EOF">MSG_CHANNEL_EOF</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.kex_gex-module.html#MSG_GLOBAL_REQUEST">MSG_GLOBAL_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.sftp_attr-module.html#MSG_USERAUTH_BANNER">MSG_USERAUTH_BANNER</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.auth_handler-module.html#MSG_CHANNEL_EXTENDED_DATA">MSG_CHANNEL_EXTENDED_DATA</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.kex_group1-module.html#MSG_GLOBAL_REQUEST">MSG_GLOBAL_REQUEST</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.sftp_client-module.html#MSG_USERAUTH_BANNER">MSG_USERAUTH_BANNER</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.channel-module.html#MSG_CHANNEL_EXTENDED_DATA">MSG_CHANNEL_EXTENDED_DATA</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.packet-module.html#MSG_GLOBAL_REQUEST">MSG_GLOBAL_REQUEST</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.sftp_file-module.html#MSG_USERAUTH_BANNER">MSG_USERAUTH_BANNER</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.client-module.html#MSG_CHANNEL_EXTENDED_DATA">MSG_CHANNEL_EXTENDED_DATA</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-module.html#MSG_GLOBAL_REQUEST">MSG_GLOBAL_REQUEST</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.sftp_handle-module.html#MSG_USERAUTH_BANNER">MSG_USERAUTH_BANNER</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.common-module.html#MSG_CHANNEL_EXTENDED_DATA">MSG_CHANNEL_EXTENDED_DATA</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.rsakey-module.html#MSG_GLOBAL_REQUEST">MSG_GLOBAL_REQUEST</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.sftp_server-module.html#MSG_USERAUTH_BANNER">MSG_USERAUTH_BANNER</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.dsskey-module.html#MSG_CHANNEL_EXTENDED_DATA">MSG_CHANNEL_EXTENDED_DATA</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.server-module.html#MSG_GLOBAL_REQUEST">MSG_GLOBAL_REQUEST</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.sftp_si-module.html#MSG_USERAUTH_BANNER">MSG_USERAUTH_BANNER</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.hostkeys-module.html#MSG_CHANNEL_EXTENDED_DATA">MSG_CHANNEL_EXTENDED_DATA</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.sftp-module.html#MSG_GLOBAL_REQUEST">MSG_GLOBAL_REQUEST</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.transport-module.html#MSG_USERAUTH_BANNER">MSG_USERAUTH_BANNER</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.kex_gex-module.html#MSG_CHANNEL_EXTENDED_DATA">MSG_CHANNEL_EXTENDED_DATA</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.sftp_attr-module.html#MSG_GLOBAL_REQUEST">MSG_GLOBAL_REQUEST</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.util-module.html#MSG_USERAUTH_BANNER">MSG_USERAUTH_BANNER</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_group1-module.html#MSG_CHANNEL_EXTENDED_DATA">MSG_CHANNEL_EXTENDED_DATA</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.sftp_client-module.html#MSG_GLOBAL_REQUEST">MSG_GLOBAL_REQUEST</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.auth_handler-module.html#MSG_USERAUTH_FAILURE">MSG_USERAUTH_FAILURE</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.packet-module.html#MSG_CHANNEL_EXTENDED_DATA">MSG_CHANNEL_EXTENDED_DATA</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.sftp_file-module.html#MSG_GLOBAL_REQUEST">MSG_GLOBAL_REQUEST</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.channel-module.html#MSG_USERAUTH_FAILURE">MSG_USERAUTH_FAILURE</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.pkey-module.html#MSG_CHANNEL_EXTENDED_DATA">MSG_CHANNEL_EXTENDED_DATA</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.sftp_handle-module.html#MSG_GLOBAL_REQUEST">MSG_GLOBAL_REQUEST</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.client-module.html#MSG_USERAUTH_FAILURE">MSG_USERAUTH_FAILURE</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.rsakey-module.html#MSG_CHANNEL_EXTENDED_DATA">MSG_CHANNEL_EXTENDED_DATA</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.sftp_server-module.html#MSG_GLOBAL_REQUEST">MSG_GLOBAL_REQUEST</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.common-module.html#MSG_USERAUTH_FAILURE">MSG_USERAUTH_FAILURE</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.server-module.html#MSG_CHANNEL_EXTENDED_DATA">MSG_CHANNEL_EXTENDED_DATA</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.sftp_si-module.html#MSG_GLOBAL_REQUEST">MSG_GLOBAL_REQUEST</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.dsskey-module.html#MSG_USERAUTH_FAILURE">MSG_USERAUTH_FAILURE</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-module.html#MSG_CHANNEL_EXTENDED_DATA">MSG_CHANNEL_EXTENDED_DATA</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.transport-module.html#MSG_GLOBAL_REQUEST">MSG_GLOBAL_REQUEST</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.hostkeys-module.html#MSG_USERAUTH_FAILURE">MSG_USERAUTH_FAILURE</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_attr-module.html#MSG_CHANNEL_EXTENDED_DATA">MSG_CHANNEL_EXTENDED_DATA</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.util-module.html#MSG_GLOBAL_REQUEST">MSG_GLOBAL_REQUEST</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.kex_gex-module.html#MSG_USERAUTH_FAILURE">MSG_USERAUTH_FAILURE</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_client-module.html#MSG_CHANNEL_EXTENDED_DATA">MSG_CHANNEL_EXTENDED_DATA</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.auth_handler-module.html#MSG_IGNORE">MSG_IGNORE</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.kex_group1-module.html#MSG_USERAUTH_FAILURE">MSG_USERAUTH_FAILURE</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_file-module.html#MSG_CHANNEL_EXTENDED_DATA">MSG_CHANNEL_EXTENDED_DATA</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.channel-module.html#MSG_IGNORE">MSG_IGNORE</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.packet-module.html#MSG_USERAUTH_FAILURE">MSG_USERAUTH_FAILURE</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_handle-module.html#MSG_CHANNEL_EXTENDED_DATA">MSG_CHANNEL_EXTENDED_DATA</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.client-module.html#MSG_IGNORE">MSG_IGNORE</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-module.html#MSG_USERAUTH_FAILURE">MSG_USERAUTH_FAILURE</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_server-module.html#MSG_CHANNEL_EXTENDED_DATA">MSG_CHANNEL_EXTENDED_DATA</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.common-module.html#MSG_IGNORE">MSG_IGNORE</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.rsakey-module.html#MSG_USERAUTH_FAILURE">MSG_USERAUTH_FAILURE</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_si-module.html#MSG_CHANNEL_EXTENDED_DATA">MSG_CHANNEL_EXTENDED_DATA</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.dsskey-module.html#MSG_IGNORE">MSG_IGNORE</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.server-module.html#MSG_USERAUTH_FAILURE">MSG_USERAUTH_FAILURE</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.transport-module.html#MSG_CHANNEL_EXTENDED_DATA">MSG_CHANNEL_EXTENDED_DATA</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.hostkeys-module.html#MSG_IGNORE">MSG_IGNORE</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.sftp-module.html#MSG_USERAUTH_FAILURE">MSG_USERAUTH_FAILURE</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-module.html#MSG_CHANNEL_EXTENDED_DATA">MSG_CHANNEL_EXTENDED_DATA</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.kex_gex-module.html#MSG_IGNORE">MSG_IGNORE</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.sftp_attr-module.html#MSG_USERAUTH_FAILURE">MSG_USERAUTH_FAILURE</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.auth_handler-module.html#MSG_CHANNEL_FAILURE">MSG_CHANNEL_FAILURE</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.kex_group1-module.html#MSG_IGNORE">MSG_IGNORE</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.sftp_client-module.html#MSG_USERAUTH_FAILURE">MSG_USERAUTH_FAILURE</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.channel-module.html#MSG_CHANNEL_FAILURE">MSG_CHANNEL_FAILURE</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.packet-module.html#MSG_IGNORE">MSG_IGNORE</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.sftp_file-module.html#MSG_USERAUTH_FAILURE">MSG_USERAUTH_FAILURE</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.client-module.html#MSG_CHANNEL_FAILURE">MSG_CHANNEL_FAILURE</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-module.html#MSG_IGNORE">MSG_IGNORE</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.sftp_handle-module.html#MSG_USERAUTH_FAILURE">MSG_USERAUTH_FAILURE</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.common-module.html#MSG_CHANNEL_FAILURE">MSG_CHANNEL_FAILURE</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.rsakey-module.html#MSG_IGNORE">MSG_IGNORE</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.sftp_server-module.html#MSG_USERAUTH_FAILURE">MSG_USERAUTH_FAILURE</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.dsskey-module.html#MSG_CHANNEL_FAILURE">MSG_CHANNEL_FAILURE</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.server-module.html#MSG_IGNORE">MSG_IGNORE</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.sftp_si-module.html#MSG_USERAUTH_FAILURE">MSG_USERAUTH_FAILURE</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.hostkeys-module.html#MSG_CHANNEL_FAILURE">MSG_CHANNEL_FAILURE</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.sftp-module.html#MSG_IGNORE">MSG_IGNORE</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.transport-module.html#MSG_USERAUTH_FAILURE">MSG_USERAUTH_FAILURE</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.kex_gex-module.html#MSG_CHANNEL_FAILURE">MSG_CHANNEL_FAILURE</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.sftp_attr-module.html#MSG_IGNORE">MSG_IGNORE</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.util-module.html#MSG_USERAUTH_FAILURE">MSG_USERAUTH_FAILURE</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_group1-module.html#MSG_CHANNEL_FAILURE">MSG_CHANNEL_FAILURE</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.sftp_client-module.html#MSG_IGNORE">MSG_IGNORE</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.auth_handler-module.html#MSG_USERAUTH_INFO_REQUEST">MSG_USERAUTH_INFO_REQUEST</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.packet-module.html#MSG_CHANNEL_FAILURE">MSG_CHANNEL_FAILURE</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.sftp_file-module.html#MSG_IGNORE">MSG_IGNORE</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.channel-module.html#MSG_USERAUTH_INFO_REQUEST">MSG_USERAUTH_INFO_REQUEST</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.pkey-module.html#MSG_CHANNEL_FAILURE">MSG_CHANNEL_FAILURE</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.sftp_handle-module.html#MSG_IGNORE">MSG_IGNORE</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.client-module.html#MSG_USERAUTH_INFO_REQUEST">MSG_USERAUTH_INFO_REQUEST</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.rsakey-module.html#MSG_CHANNEL_FAILURE">MSG_CHANNEL_FAILURE</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.sftp_server-module.html#MSG_IGNORE">MSG_IGNORE</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.common-module.html#MSG_USERAUTH_INFO_REQUEST">MSG_USERAUTH_INFO_REQUEST</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.server-module.html#MSG_CHANNEL_FAILURE">MSG_CHANNEL_FAILURE</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.sftp_si-module.html#MSG_IGNORE">MSG_IGNORE</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.dsskey-module.html#MSG_USERAUTH_INFO_REQUEST">MSG_USERAUTH_INFO_REQUEST</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-module.html#MSG_CHANNEL_FAILURE">MSG_CHANNEL_FAILURE</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.transport-module.html#MSG_IGNORE">MSG_IGNORE</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.hostkeys-module.html#MSG_USERAUTH_INFO_REQUEST">MSG_USERAUTH_INFO_REQUEST</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_attr-module.html#MSG_CHANNEL_FAILURE">MSG_CHANNEL_FAILURE</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.util-module.html#MSG_IGNORE">MSG_IGNORE</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.kex_gex-module.html#MSG_USERAUTH_INFO_REQUEST">MSG_USERAUTH_INFO_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.sftp_client-module.html#MSG_CHANNEL_FAILURE">MSG_CHANNEL_FAILURE</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.auth_handler-module.html#MSG_KEXINIT">MSG_KEXINIT</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.kex_group1-module.html#MSG_USERAUTH_INFO_REQUEST">MSG_USERAUTH_INFO_REQUEST</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_file-module.html#MSG_CHANNEL_FAILURE">MSG_CHANNEL_FAILURE</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.channel-module.html#MSG_KEXINIT">MSG_KEXINIT</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.packet-module.html#MSG_USERAUTH_INFO_REQUEST">MSG_USERAUTH_INFO_REQUEST</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_handle-module.html#MSG_CHANNEL_FAILURE">MSG_CHANNEL_FAILURE</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.client-module.html#MSG_KEXINIT">MSG_KEXINIT</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-module.html#MSG_USERAUTH_INFO_REQUEST">MSG_USERAUTH_INFO_REQUEST</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_server-module.html#MSG_CHANNEL_FAILURE">MSG_CHANNEL_FAILURE</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.common-module.html#MSG_KEXINIT">MSG_KEXINIT</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.rsakey-module.html#MSG_USERAUTH_INFO_REQUEST">MSG_USERAUTH_INFO_REQUEST</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_si-module.html#MSG_CHANNEL_FAILURE">MSG_CHANNEL_FAILURE</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.dsskey-module.html#MSG_KEXINIT">MSG_KEXINIT</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.server-module.html#MSG_USERAUTH_INFO_REQUEST">MSG_USERAUTH_INFO_REQUEST</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.transport-module.html#MSG_CHANNEL_FAILURE">MSG_CHANNEL_FAILURE</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.hostkeys-module.html#MSG_KEXINIT">MSG_KEXINIT</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.sftp-module.html#MSG_USERAUTH_INFO_REQUEST">MSG_USERAUTH_INFO_REQUEST</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-module.html#MSG_CHANNEL_FAILURE">MSG_CHANNEL_FAILURE</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.kex_gex-module.html#MSG_KEXINIT">MSG_KEXINIT</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.sftp_attr-module.html#MSG_USERAUTH_INFO_REQUEST">MSG_USERAUTH_INFO_REQUEST</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.auth_handler-module.html#MSG_CHANNEL_OPEN">MSG_CHANNEL_OPEN</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.kex_group1-module.html#MSG_KEXINIT">MSG_KEXINIT</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.sftp_client-module.html#MSG_USERAUTH_INFO_REQUEST">MSG_USERAUTH_INFO_REQUEST</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.channel-module.html#MSG_CHANNEL_OPEN">MSG_CHANNEL_OPEN</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.packet-module.html#MSG_KEXINIT">MSG_KEXINIT</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.sftp_file-module.html#MSG_USERAUTH_INFO_REQUEST">MSG_USERAUTH_INFO_REQUEST</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.client-module.html#MSG_CHANNEL_OPEN">MSG_CHANNEL_OPEN</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-module.html#MSG_KEXINIT">MSG_KEXINIT</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.sftp_handle-module.html#MSG_USERAUTH_INFO_REQUEST">MSG_USERAUTH_INFO_REQUEST</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.common-module.html#MSG_CHANNEL_OPEN">MSG_CHANNEL_OPEN</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.rsakey-module.html#MSG_KEXINIT">MSG_KEXINIT</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.sftp_server-module.html#MSG_USERAUTH_INFO_REQUEST">MSG_USERAUTH_INFO_REQUEST</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.dsskey-module.html#MSG_CHANNEL_OPEN">MSG_CHANNEL_OPEN</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.server-module.html#MSG_KEXINIT">MSG_KEXINIT</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.sftp_si-module.html#MSG_USERAUTH_INFO_REQUEST">MSG_USERAUTH_INFO_REQUEST</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.hostkeys-module.html#MSG_CHANNEL_OPEN">MSG_CHANNEL_OPEN</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.sftp-module.html#MSG_KEXINIT">MSG_KEXINIT</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.transport-module.html#MSG_USERAUTH_INFO_REQUEST">MSG_USERAUTH_INFO_REQUEST</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.kex_gex-module.html#MSG_CHANNEL_OPEN">MSG_CHANNEL_OPEN</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.sftp_attr-module.html#MSG_KEXINIT">MSG_KEXINIT</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.util-module.html#MSG_USERAUTH_INFO_REQUEST">MSG_USERAUTH_INFO_REQUEST</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_group1-module.html#MSG_CHANNEL_OPEN">MSG_CHANNEL_OPEN</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.sftp_client-module.html#MSG_KEXINIT">MSG_KEXINIT</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.auth_handler-module.html#MSG_USERAUTH_INFO_RESPONSE">MSG_USERAUTH_INFO_RESPONSE</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.packet-module.html#MSG_CHANNEL_OPEN">MSG_CHANNEL_OPEN</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.sftp_file-module.html#MSG_KEXINIT">MSG_KEXINIT</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.channel-module.html#MSG_USERAUTH_INFO_RESPONSE">MSG_USERAUTH_INFO_RESPONSE</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.pkey-module.html#MSG_CHANNEL_OPEN">MSG_CHANNEL_OPEN</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.sftp_handle-module.html#MSG_KEXINIT">MSG_KEXINIT</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.client-module.html#MSG_USERAUTH_INFO_RESPONSE">MSG_USERAUTH_INFO_RESPONSE</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.rsakey-module.html#MSG_CHANNEL_OPEN">MSG_CHANNEL_OPEN</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.sftp_server-module.html#MSG_KEXINIT">MSG_KEXINIT</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.common-module.html#MSG_USERAUTH_INFO_RESPONSE">MSG_USERAUTH_INFO_RESPONSE</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.server-module.html#MSG_CHANNEL_OPEN">MSG_CHANNEL_OPEN</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.sftp_si-module.html#MSG_KEXINIT">MSG_KEXINIT</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.dsskey-module.html#MSG_USERAUTH_INFO_RESPONSE">MSG_USERAUTH_INFO_RESPONSE</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-module.html#MSG_CHANNEL_OPEN">MSG_CHANNEL_OPEN</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.transport-module.html#MSG_KEXINIT">MSG_KEXINIT</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.hostkeys-module.html#MSG_USERAUTH_INFO_RESPONSE">MSG_USERAUTH_INFO_RESPONSE</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_attr-module.html#MSG_CHANNEL_OPEN">MSG_CHANNEL_OPEN</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.util-module.html#MSG_KEXINIT">MSG_KEXINIT</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.kex_gex-module.html#MSG_USERAUTH_INFO_RESPONSE">MSG_USERAUTH_INFO_RESPONSE</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_client-module.html#MSG_CHANNEL_OPEN">MSG_CHANNEL_OPEN</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.auth_handler-module.html#MSG_NAMES">MSG_NAMES</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.kex_group1-module.html#MSG_USERAUTH_INFO_RESPONSE">MSG_USERAUTH_INFO_RESPONSE</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_file-module.html#MSG_CHANNEL_OPEN">MSG_CHANNEL_OPEN</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.channel-module.html#MSG_NAMES">MSG_NAMES</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.packet-module.html#MSG_USERAUTH_INFO_RESPONSE">MSG_USERAUTH_INFO_RESPONSE</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_handle-module.html#MSG_CHANNEL_OPEN">MSG_CHANNEL_OPEN</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.client-module.html#MSG_NAMES">MSG_NAMES</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-module.html#MSG_USERAUTH_INFO_RESPONSE">MSG_USERAUTH_INFO_RESPONSE</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_server-module.html#MSG_CHANNEL_OPEN">MSG_CHANNEL_OPEN</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.common-module.html#MSG_NAMES">MSG_NAMES</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.rsakey-module.html#MSG_USERAUTH_INFO_RESPONSE">MSG_USERAUTH_INFO_RESPONSE</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_si-module.html#MSG_CHANNEL_OPEN">MSG_CHANNEL_OPEN</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.dsskey-module.html#MSG_NAMES">MSG_NAMES</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.server-module.html#MSG_USERAUTH_INFO_RESPONSE">MSG_USERAUTH_INFO_RESPONSE</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.transport-module.html#MSG_CHANNEL_OPEN">MSG_CHANNEL_OPEN</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.hostkeys-module.html#MSG_NAMES">MSG_NAMES</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.sftp-module.html#MSG_USERAUTH_INFO_RESPONSE">MSG_USERAUTH_INFO_RESPONSE</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-module.html#MSG_CHANNEL_OPEN">MSG_CHANNEL_OPEN</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.kex_gex-module.html#MSG_NAMES">MSG_NAMES</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.sftp_attr-module.html#MSG_USERAUTH_INFO_RESPONSE">MSG_USERAUTH_INFO_RESPONSE</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.auth_handler-module.html#MSG_CHANNEL_OPEN_FAILURE">MSG_CHANNEL_OPEN_FAILURE</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.kex_group1-module.html#MSG_NAMES">MSG_NAMES</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.sftp_client-module.html#MSG_USERAUTH_INFO_RESPONSE">MSG_USERAUTH_INFO_RESPONSE</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.channel-module.html#MSG_CHANNEL_OPEN_FAILURE">MSG_CHANNEL_OPEN_FAILURE</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.packet-module.html#MSG_NAMES">MSG_NAMES</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.sftp_file-module.html#MSG_USERAUTH_INFO_RESPONSE">MSG_USERAUTH_INFO_RESPONSE</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.client-module.html#MSG_CHANNEL_OPEN_FAILURE">MSG_CHANNEL_OPEN_FAILURE</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-module.html#MSG_NAMES">MSG_NAMES</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.sftp_handle-module.html#MSG_USERAUTH_INFO_RESPONSE">MSG_USERAUTH_INFO_RESPONSE</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.common-module.html#MSG_CHANNEL_OPEN_FAILURE">MSG_CHANNEL_OPEN_FAILURE</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.rsakey-module.html#MSG_NAMES">MSG_NAMES</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.sftp_server-module.html#MSG_USERAUTH_INFO_RESPONSE">MSG_USERAUTH_INFO_RESPONSE</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.dsskey-module.html#MSG_CHANNEL_OPEN_FAILURE">MSG_CHANNEL_OPEN_FAILURE</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.server-module.html#MSG_NAMES">MSG_NAMES</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.sftp_si-module.html#MSG_USERAUTH_INFO_RESPONSE">MSG_USERAUTH_INFO_RESPONSE</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.hostkeys-module.html#MSG_CHANNEL_OPEN_FAILURE">MSG_CHANNEL_OPEN_FAILURE</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.sftp-module.html#MSG_NAMES">MSG_NAMES</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.transport-module.html#MSG_USERAUTH_INFO_RESPONSE">MSG_USERAUTH_INFO_RESPONSE</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.kex_gex-module.html#MSG_CHANNEL_OPEN_FAILURE">MSG_CHANNEL_OPEN_FAILURE</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.sftp_attr-module.html#MSG_NAMES">MSG_NAMES</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.util-module.html#MSG_USERAUTH_INFO_RESPONSE">MSG_USERAUTH_INFO_RESPONSE</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_group1-module.html#MSG_CHANNEL_OPEN_FAILURE">MSG_CHANNEL_OPEN_FAILURE</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.sftp_client-module.html#MSG_NAMES">MSG_NAMES</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.auth_handler-module.html#MSG_USERAUTH_PK_OK">MSG_USERAUTH_PK_OK</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.packet-module.html#MSG_CHANNEL_OPEN_FAILURE">MSG_CHANNEL_OPEN_FAILURE</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.sftp_file-module.html#MSG_NAMES">MSG_NAMES</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.channel-module.html#MSG_USERAUTH_PK_OK">MSG_USERAUTH_PK_OK</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.pkey-module.html#MSG_CHANNEL_OPEN_FAILURE">MSG_CHANNEL_OPEN_FAILURE</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.sftp_handle-module.html#MSG_NAMES">MSG_NAMES</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.client-module.html#MSG_USERAUTH_PK_OK">MSG_USERAUTH_PK_OK</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.rsakey-module.html#MSG_CHANNEL_OPEN_FAILURE">MSG_CHANNEL_OPEN_FAILURE</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.sftp_server-module.html#MSG_NAMES">MSG_NAMES</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.common-module.html#MSG_USERAUTH_PK_OK">MSG_USERAUTH_PK_OK</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.server-module.html#MSG_CHANNEL_OPEN_FAILURE">MSG_CHANNEL_OPEN_FAILURE</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.sftp_si-module.html#MSG_NAMES">MSG_NAMES</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.dsskey-module.html#MSG_USERAUTH_PK_OK">MSG_USERAUTH_PK_OK</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-module.html#MSG_CHANNEL_OPEN_FAILURE">MSG_CHANNEL_OPEN_FAILURE</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.transport-module.html#MSG_NAMES">MSG_NAMES</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.hostkeys-module.html#MSG_USERAUTH_PK_OK">MSG_USERAUTH_PK_OK</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_attr-module.html#MSG_CHANNEL_OPEN_FAILURE">MSG_CHANNEL_OPEN_FAILURE</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.util-module.html#MSG_NAMES">MSG_NAMES</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.kex_gex-module.html#MSG_USERAUTH_PK_OK">MSG_USERAUTH_PK_OK</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_client-module.html#MSG_CHANNEL_OPEN_FAILURE">MSG_CHANNEL_OPEN_FAILURE</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.auth_handler-module.html#MSG_NEWKEYS">MSG_NEWKEYS</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.kex_group1-module.html#MSG_USERAUTH_PK_OK">MSG_USERAUTH_PK_OK</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_file-module.html#MSG_CHANNEL_OPEN_FAILURE">MSG_CHANNEL_OPEN_FAILURE</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.channel-module.html#MSG_NEWKEYS">MSG_NEWKEYS</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.packet-module.html#MSG_USERAUTH_PK_OK">MSG_USERAUTH_PK_OK</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_handle-module.html#MSG_CHANNEL_OPEN_FAILURE">MSG_CHANNEL_OPEN_FAILURE</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.client-module.html#MSG_NEWKEYS">MSG_NEWKEYS</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-module.html#MSG_USERAUTH_PK_OK">MSG_USERAUTH_PK_OK</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_server-module.html#MSG_CHANNEL_OPEN_FAILURE">MSG_CHANNEL_OPEN_FAILURE</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.common-module.html#MSG_NEWKEYS">MSG_NEWKEYS</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.rsakey-module.html#MSG_USERAUTH_PK_OK">MSG_USERAUTH_PK_OK</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_si-module.html#MSG_CHANNEL_OPEN_FAILURE">MSG_CHANNEL_OPEN_FAILURE</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.dsskey-module.html#MSG_NEWKEYS">MSG_NEWKEYS</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.server-module.html#MSG_USERAUTH_PK_OK">MSG_USERAUTH_PK_OK</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.transport-module.html#MSG_CHANNEL_OPEN_FAILURE">MSG_CHANNEL_OPEN_FAILURE</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.hostkeys-module.html#MSG_NEWKEYS">MSG_NEWKEYS</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.sftp-module.html#MSG_USERAUTH_PK_OK">MSG_USERAUTH_PK_OK</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-module.html#MSG_CHANNEL_OPEN_FAILURE">MSG_CHANNEL_OPEN_FAILURE</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.kex_gex-module.html#MSG_NEWKEYS">MSG_NEWKEYS</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.sftp_attr-module.html#MSG_USERAUTH_PK_OK">MSG_USERAUTH_PK_OK</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.auth_handler-module.html#MSG_CHANNEL_OPEN_SUCCESS">MSG_CHANNEL_OPEN_SUCCESS</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.kex_group1-module.html#MSG_NEWKEYS">MSG_NEWKEYS</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.sftp_client-module.html#MSG_USERAUTH_PK_OK">MSG_USERAUTH_PK_OK</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.channel-module.html#MSG_CHANNEL_OPEN_SUCCESS">MSG_CHANNEL_OPEN_SUCCESS</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.packet-module.html#MSG_NEWKEYS">MSG_NEWKEYS</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.sftp_file-module.html#MSG_USERAUTH_PK_OK">MSG_USERAUTH_PK_OK</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.client-module.html#MSG_CHANNEL_OPEN_SUCCESS">MSG_CHANNEL_OPEN_SUCCESS</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-module.html#MSG_NEWKEYS">MSG_NEWKEYS</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.sftp_handle-module.html#MSG_USERAUTH_PK_OK">MSG_USERAUTH_PK_OK</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.common-module.html#MSG_CHANNEL_OPEN_SUCCESS">MSG_CHANNEL_OPEN_SUCCESS</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.rsakey-module.html#MSG_NEWKEYS">MSG_NEWKEYS</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.sftp_server-module.html#MSG_USERAUTH_PK_OK">MSG_USERAUTH_PK_OK</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.dsskey-module.html#MSG_CHANNEL_OPEN_SUCCESS">MSG_CHANNEL_OPEN_SUCCESS</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.server-module.html#MSG_NEWKEYS">MSG_NEWKEYS</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.sftp_si-module.html#MSG_USERAUTH_PK_OK">MSG_USERAUTH_PK_OK</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.hostkeys-module.html#MSG_CHANNEL_OPEN_SUCCESS">MSG_CHANNEL_OPEN_SUCCESS</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.sftp-module.html#MSG_NEWKEYS">MSG_NEWKEYS</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.transport-module.html#MSG_USERAUTH_PK_OK">MSG_USERAUTH_PK_OK</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.kex_gex-module.html#MSG_CHANNEL_OPEN_SUCCESS">MSG_CHANNEL_OPEN_SUCCESS</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.sftp_attr-module.html#MSG_NEWKEYS">MSG_NEWKEYS</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.util-module.html#MSG_USERAUTH_PK_OK">MSG_USERAUTH_PK_OK</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_group1-module.html#MSG_CHANNEL_OPEN_SUCCESS">MSG_CHANNEL_OPEN_SUCCESS</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.sftp_client-module.html#MSG_NEWKEYS">MSG_NEWKEYS</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.auth_handler-module.html#MSG_USERAUTH_REQUEST">MSG_USERAUTH_REQUEST</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.packet-module.html#MSG_CHANNEL_OPEN_SUCCESS">MSG_CHANNEL_OPEN_SUCCESS</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.sftp_file-module.html#MSG_NEWKEYS">MSG_NEWKEYS</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.channel-module.html#MSG_USERAUTH_REQUEST">MSG_USERAUTH_REQUEST</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.pkey-module.html#MSG_CHANNEL_OPEN_SUCCESS">MSG_CHANNEL_OPEN_SUCCESS</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.sftp_handle-module.html#MSG_NEWKEYS">MSG_NEWKEYS</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.client-module.html#MSG_USERAUTH_REQUEST">MSG_USERAUTH_REQUEST</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.rsakey-module.html#MSG_CHANNEL_OPEN_SUCCESS">MSG_CHANNEL_OPEN_SUCCESS</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.sftp_server-module.html#MSG_NEWKEYS">MSG_NEWKEYS</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.common-module.html#MSG_USERAUTH_REQUEST">MSG_USERAUTH_REQUEST</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.server-module.html#MSG_CHANNEL_OPEN_SUCCESS">MSG_CHANNEL_OPEN_SUCCESS</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.sftp_si-module.html#MSG_NEWKEYS">MSG_NEWKEYS</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.dsskey-module.html#MSG_USERAUTH_REQUEST">MSG_USERAUTH_REQUEST</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-module.html#MSG_CHANNEL_OPEN_SUCCESS">MSG_CHANNEL_OPEN_SUCCESS</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.transport-module.html#MSG_NEWKEYS">MSG_NEWKEYS</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.hostkeys-module.html#MSG_USERAUTH_REQUEST">MSG_USERAUTH_REQUEST</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_attr-module.html#MSG_CHANNEL_OPEN_SUCCESS">MSG_CHANNEL_OPEN_SUCCESS</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.util-module.html#MSG_NEWKEYS">MSG_NEWKEYS</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.kex_gex-module.html#MSG_USERAUTH_REQUEST">MSG_USERAUTH_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.sftp_client-module.html#MSG_CHANNEL_OPEN_SUCCESS">MSG_CHANNEL_OPEN_SUCCESS</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.auth_handler-module.html#MSG_REQUEST_FAILURE">MSG_REQUEST_FAILURE</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.kex_group1-module.html#MSG_USERAUTH_REQUEST">MSG_USERAUTH_REQUEST</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_file-module.html#MSG_CHANNEL_OPEN_SUCCESS">MSG_CHANNEL_OPEN_SUCCESS</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.channel-module.html#MSG_REQUEST_FAILURE">MSG_REQUEST_FAILURE</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.packet-module.html#MSG_USERAUTH_REQUEST">MSG_USERAUTH_REQUEST</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_handle-module.html#MSG_CHANNEL_OPEN_SUCCESS">MSG_CHANNEL_OPEN_SUCCESS</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.client-module.html#MSG_REQUEST_FAILURE">MSG_REQUEST_FAILURE</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-module.html#MSG_USERAUTH_REQUEST">MSG_USERAUTH_REQUEST</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_server-module.html#MSG_CHANNEL_OPEN_SUCCESS">MSG_CHANNEL_OPEN_SUCCESS</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.common-module.html#MSG_REQUEST_FAILURE">MSG_REQUEST_FAILURE</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.rsakey-module.html#MSG_USERAUTH_REQUEST">MSG_USERAUTH_REQUEST</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_si-module.html#MSG_CHANNEL_OPEN_SUCCESS">MSG_CHANNEL_OPEN_SUCCESS</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.dsskey-module.html#MSG_REQUEST_FAILURE">MSG_REQUEST_FAILURE</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.server-module.html#MSG_USERAUTH_REQUEST">MSG_USERAUTH_REQUEST</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.transport-module.html#MSG_CHANNEL_OPEN_SUCCESS">MSG_CHANNEL_OPEN_SUCCESS</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.hostkeys-module.html#MSG_REQUEST_FAILURE">MSG_REQUEST_FAILURE</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.sftp-module.html#MSG_USERAUTH_REQUEST">MSG_USERAUTH_REQUEST</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-module.html#MSG_CHANNEL_OPEN_SUCCESS">MSG_CHANNEL_OPEN_SUCCESS</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.kex_gex-module.html#MSG_REQUEST_FAILURE">MSG_REQUEST_FAILURE</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.sftp_attr-module.html#MSG_USERAUTH_REQUEST">MSG_USERAUTH_REQUEST</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.auth_handler-module.html#MSG_CHANNEL_REQUEST">MSG_CHANNEL_REQUEST</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.kex_group1-module.html#MSG_REQUEST_FAILURE">MSG_REQUEST_FAILURE</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.sftp_client-module.html#MSG_USERAUTH_REQUEST">MSG_USERAUTH_REQUEST</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.channel-module.html#MSG_CHANNEL_REQUEST">MSG_CHANNEL_REQUEST</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.packet-module.html#MSG_REQUEST_FAILURE">MSG_REQUEST_FAILURE</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.sftp_file-module.html#MSG_USERAUTH_REQUEST">MSG_USERAUTH_REQUEST</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.client-module.html#MSG_CHANNEL_REQUEST">MSG_CHANNEL_REQUEST</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-module.html#MSG_REQUEST_FAILURE">MSG_REQUEST_FAILURE</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.sftp_handle-module.html#MSG_USERAUTH_REQUEST">MSG_USERAUTH_REQUEST</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.common-module.html#MSG_CHANNEL_REQUEST">MSG_CHANNEL_REQUEST</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.rsakey-module.html#MSG_REQUEST_FAILURE">MSG_REQUEST_FAILURE</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.sftp_server-module.html#MSG_USERAUTH_REQUEST">MSG_USERAUTH_REQUEST</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.dsskey-module.html#MSG_CHANNEL_REQUEST">MSG_CHANNEL_REQUEST</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.server-module.html#MSG_REQUEST_FAILURE">MSG_REQUEST_FAILURE</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.sftp_si-module.html#MSG_USERAUTH_REQUEST">MSG_USERAUTH_REQUEST</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.hostkeys-module.html#MSG_CHANNEL_REQUEST">MSG_CHANNEL_REQUEST</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.sftp-module.html#MSG_REQUEST_FAILURE">MSG_REQUEST_FAILURE</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.transport-module.html#MSG_USERAUTH_REQUEST">MSG_USERAUTH_REQUEST</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.kex_gex-module.html#MSG_CHANNEL_REQUEST">MSG_CHANNEL_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.sftp_attr-module.html#MSG_REQUEST_FAILURE">MSG_REQUEST_FAILURE</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.util-module.html#MSG_USERAUTH_REQUEST">MSG_USERAUTH_REQUEST</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_group1-module.html#MSG_CHANNEL_REQUEST">MSG_CHANNEL_REQUEST</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.sftp_client-module.html#MSG_REQUEST_FAILURE">MSG_REQUEST_FAILURE</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.auth_handler-module.html#MSG_USERAUTH_SUCCESS">MSG_USERAUTH_SUCCESS</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.packet-module.html#MSG_CHANNEL_REQUEST">MSG_CHANNEL_REQUEST</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.sftp_file-module.html#MSG_REQUEST_FAILURE">MSG_REQUEST_FAILURE</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.channel-module.html#MSG_USERAUTH_SUCCESS">MSG_USERAUTH_SUCCESS</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.pkey-module.html#MSG_CHANNEL_REQUEST">MSG_CHANNEL_REQUEST</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.sftp_handle-module.html#MSG_REQUEST_FAILURE">MSG_REQUEST_FAILURE</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.client-module.html#MSG_USERAUTH_SUCCESS">MSG_USERAUTH_SUCCESS</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.rsakey-module.html#MSG_CHANNEL_REQUEST">MSG_CHANNEL_REQUEST</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.sftp_server-module.html#MSG_REQUEST_FAILURE">MSG_REQUEST_FAILURE</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.common-module.html#MSG_USERAUTH_SUCCESS">MSG_USERAUTH_SUCCESS</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.server-module.html#MSG_CHANNEL_REQUEST">MSG_CHANNEL_REQUEST</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.sftp_si-module.html#MSG_REQUEST_FAILURE">MSG_REQUEST_FAILURE</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.dsskey-module.html#MSG_USERAUTH_SUCCESS">MSG_USERAUTH_SUCCESS</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-module.html#MSG_CHANNEL_REQUEST">MSG_CHANNEL_REQUEST</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.transport-module.html#MSG_REQUEST_FAILURE">MSG_REQUEST_FAILURE</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.hostkeys-module.html#MSG_USERAUTH_SUCCESS">MSG_USERAUTH_SUCCESS</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_attr-module.html#MSG_CHANNEL_REQUEST">MSG_CHANNEL_REQUEST</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.util-module.html#MSG_REQUEST_FAILURE">MSG_REQUEST_FAILURE</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.kex_gex-module.html#MSG_USERAUTH_SUCCESS">MSG_USERAUTH_SUCCESS</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_client-module.html#MSG_CHANNEL_REQUEST">MSG_CHANNEL_REQUEST</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.auth_handler-module.html#MSG_REQUEST_SUCCESS">MSG_REQUEST_SUCCESS</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.kex_group1-module.html#MSG_USERAUTH_SUCCESS">MSG_USERAUTH_SUCCESS</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_file-module.html#MSG_CHANNEL_REQUEST">MSG_CHANNEL_REQUEST</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.channel-module.html#MSG_REQUEST_SUCCESS">MSG_REQUEST_SUCCESS</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.packet-module.html#MSG_USERAUTH_SUCCESS">MSG_USERAUTH_SUCCESS</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_handle-module.html#MSG_CHANNEL_REQUEST">MSG_CHANNEL_REQUEST</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.client-module.html#MSG_REQUEST_SUCCESS">MSG_REQUEST_SUCCESS</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-module.html#MSG_USERAUTH_SUCCESS">MSG_USERAUTH_SUCCESS</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_server-module.html#MSG_CHANNEL_REQUEST">MSG_CHANNEL_REQUEST</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.common-module.html#MSG_REQUEST_SUCCESS">MSG_REQUEST_SUCCESS</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.rsakey-module.html#MSG_USERAUTH_SUCCESS">MSG_USERAUTH_SUCCESS</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_si-module.html#MSG_CHANNEL_REQUEST">MSG_CHANNEL_REQUEST</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.dsskey-module.html#MSG_REQUEST_SUCCESS">MSG_REQUEST_SUCCESS</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.server-module.html#MSG_USERAUTH_SUCCESS">MSG_USERAUTH_SUCCESS</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.transport-module.html#MSG_CHANNEL_REQUEST">MSG_CHANNEL_REQUEST</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.hostkeys-module.html#MSG_REQUEST_SUCCESS">MSG_REQUEST_SUCCESS</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.sftp-module.html#MSG_USERAUTH_SUCCESS">MSG_USERAUTH_SUCCESS</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-module.html#MSG_CHANNEL_REQUEST">MSG_CHANNEL_REQUEST</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.kex_gex-module.html#MSG_REQUEST_SUCCESS">MSG_REQUEST_SUCCESS</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.sftp_attr-module.html#MSG_USERAUTH_SUCCESS">MSG_USERAUTH_SUCCESS</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.auth_handler-module.html#MSG_CHANNEL_SUCCESS">MSG_CHANNEL_SUCCESS</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.kex_group1-module.html#MSG_REQUEST_SUCCESS">MSG_REQUEST_SUCCESS</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.sftp_client-module.html#MSG_USERAUTH_SUCCESS">MSG_USERAUTH_SUCCESS</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.channel-module.html#MSG_CHANNEL_SUCCESS">MSG_CHANNEL_SUCCESS</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.packet-module.html#MSG_REQUEST_SUCCESS">MSG_REQUEST_SUCCESS</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.sftp_file-module.html#MSG_USERAUTH_SUCCESS">MSG_USERAUTH_SUCCESS</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.client-module.html#MSG_CHANNEL_SUCCESS">MSG_CHANNEL_SUCCESS</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-module.html#MSG_REQUEST_SUCCESS">MSG_REQUEST_SUCCESS</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.sftp_handle-module.html#MSG_USERAUTH_SUCCESS">MSG_USERAUTH_SUCCESS</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.common-module.html#MSG_CHANNEL_SUCCESS">MSG_CHANNEL_SUCCESS</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.rsakey-module.html#MSG_REQUEST_SUCCESS">MSG_REQUEST_SUCCESS</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.sftp_server-module.html#MSG_USERAUTH_SUCCESS">MSG_USERAUTH_SUCCESS</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.dsskey-module.html#MSG_CHANNEL_SUCCESS">MSG_CHANNEL_SUCCESS</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.server-module.html#MSG_REQUEST_SUCCESS">MSG_REQUEST_SUCCESS</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.sftp_si-module.html#MSG_USERAUTH_SUCCESS">MSG_USERAUTH_SUCCESS</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.hostkeys-module.html#MSG_CHANNEL_SUCCESS">MSG_CHANNEL_SUCCESS</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.sftp-module.html#MSG_REQUEST_SUCCESS">MSG_REQUEST_SUCCESS</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.transport-module.html#MSG_USERAUTH_SUCCESS">MSG_USERAUTH_SUCCESS</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.kex_gex-module.html#MSG_CHANNEL_SUCCESS">MSG_CHANNEL_SUCCESS</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.sftp_attr-module.html#MSG_REQUEST_SUCCESS">MSG_REQUEST_SUCCESS</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.util-module.html#MSG_USERAUTH_SUCCESS">MSG_USERAUTH_SUCCESS</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_group1-module.html#MSG_CHANNEL_SUCCESS">MSG_CHANNEL_SUCCESS</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.sftp_client-module.html#MSG_REQUEST_SUCCESS">MSG_REQUEST_SUCCESS</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">&nbsp;</td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.packet-module.html#MSG_CHANNEL_SUCCESS">MSG_CHANNEL_SUCCESS</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.sftp_file-module.html#MSG_REQUEST_SUCCESS">MSG_REQUEST_SUCCESS</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">&nbsp;</td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="N">N</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.kex_gex.KexGex-class.html#name">name</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.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>
+</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>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="O">O</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.SFTPServerInterface-class.html#open">open()</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.sftp_handle-module.html#OPEN_FAILED_CONNECT_FAILED">OPEN_FAILED_CONNECT_FAILED</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_attr-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE">OPEN_FAILED_UNKNOWN_CHANNEL_TYPE</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.Transport-class.html#open_channel">open_channel()</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_server-module.html#OPEN_FAILED_CONNECT_FAILED">OPEN_FAILED_CONNECT_FAILED</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_client-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE">OPEN_FAILED_UNKNOWN_CHANNEL_TYPE</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.auth_handler-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED">OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED</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.sftp_si-module.html#OPEN_FAILED_CONNECT_FAILED">OPEN_FAILED_CONNECT_FAILED</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_file-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE">OPEN_FAILED_UNKNOWN_CHANNEL_TYPE</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.channel-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED">OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED</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-module.html#OPEN_FAILED_CONNECT_FAILED">OPEN_FAILED_CONNECT_FAILED</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_handle-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE">OPEN_FAILED_UNKNOWN_CHANNEL_TYPE</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.client-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED">OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED</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.util-module.html#OPEN_FAILED_CONNECT_FAILED">OPEN_FAILED_CONNECT_FAILED</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.sftp_server-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE">OPEN_FAILED_UNKNOWN_CHANNEL_TYPE</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.common-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED">OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED</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.auth_handler-module.html#OPEN_FAILED_RESOURCE_SHORTAGE">OPEN_FAILED_RESOURCE_SHORTAGE</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.sftp_si-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE">OPEN_FAILED_UNKNOWN_CHANNEL_TYPE</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.dsskey-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED">OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED</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.channel-module.html#OPEN_FAILED_RESOURCE_SHORTAGE">OPEN_FAILED_RESOURCE_SHORTAGE</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-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE">OPEN_FAILED_UNKNOWN_CHANNEL_TYPE</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.hostkeys-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED">OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED</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.client-module.html#OPEN_FAILED_RESOURCE_SHORTAGE">OPEN_FAILED_RESOURCE_SHORTAGE</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.util-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE">OPEN_FAILED_UNKNOWN_CHANNEL_TYPE</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-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED">OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED</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.common-module.html#OPEN_FAILED_RESOURCE_SHORTAGE">OPEN_FAILED_RESOURCE_SHORTAGE</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#open_forwarded_tcpip_channel">open_forwarded_tcpip_channel()</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.kex_group1-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED">OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED</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.dsskey-module.html#OPEN_FAILED_RESOURCE_SHORTAGE">OPEN_FAILED_RESOURCE_SHORTAGE</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.rng_posix-module.html#open_rng_device">open_rng_device()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.rng_posix-module.html" onclick="show_private();">paramiko.rng_posix</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.packet-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED">OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED</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.hostkeys-module.html#OPEN_FAILED_RESOURCE_SHORTAGE">OPEN_FAILED_RESOURCE_SHORTAGE</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.rng_win32-module.html#open_rng_device">open_rng_device()</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.pkey-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED">OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED</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.kex_gex-module.html#OPEN_FAILED_RESOURCE_SHORTAGE">OPEN_FAILED_RESOURCE_SHORTAGE</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.Transport-class.html#open_session">open_session()</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-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED">OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED</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.kex_group1-module.html#OPEN_FAILED_RESOURCE_SHORTAGE">OPEN_FAILED_RESOURCE_SHORTAGE</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.SSHClient-class.html#open_sftp">open_sftp()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.SSHClient-class.html">SSHClient</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.server-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED">OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED</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.packet-module.html#OPEN_FAILED_RESOURCE_SHORTAGE">OPEN_FAILED_RESOURCE_SHORTAGE</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.Transport-class.html#open_sftp_client">open_sftp_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-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED">OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED</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.pkey-module.html#OPEN_FAILED_RESOURCE_SHORTAGE">OPEN_FAILED_RESOURCE_SHORTAGE</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.auth_handler-module.html#OPEN_SUCCEEDED">OPEN_SUCCEEDED</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_attr-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED">OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED</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.rsakey-module.html#OPEN_FAILED_RESOURCE_SHORTAGE">OPEN_FAILED_RESOURCE_SHORTAGE</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.channel-module.html#OPEN_SUCCEEDED">OPEN_SUCCEEDED</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_client-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED">OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED</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.server-module.html#OPEN_FAILED_RESOURCE_SHORTAGE">OPEN_FAILED_RESOURCE_SHORTAGE</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.client-module.html#OPEN_SUCCEEDED">OPEN_SUCCEEDED</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_file-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED">OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED</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-module.html#OPEN_FAILED_RESOURCE_SHORTAGE">OPEN_FAILED_RESOURCE_SHORTAGE</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.common-module.html#OPEN_SUCCEEDED">OPEN_SUCCEEDED</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_handle-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED">OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED</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_attr-module.html#OPEN_FAILED_RESOURCE_SHORTAGE">OPEN_FAILED_RESOURCE_SHORTAGE</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.dsskey-module.html#OPEN_SUCCEEDED">OPEN_SUCCEEDED</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_server-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED">OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED</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_client-module.html#OPEN_FAILED_RESOURCE_SHORTAGE">OPEN_FAILED_RESOURCE_SHORTAGE</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.hostkeys-module.html#OPEN_SUCCEEDED">OPEN_SUCCEEDED</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_si-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED">OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED</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_file-module.html#OPEN_FAILED_RESOURCE_SHORTAGE">OPEN_FAILED_RESOURCE_SHORTAGE</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#OPEN_SUCCEEDED">OPEN_SUCCEEDED</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-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED">OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED</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_handle-module.html#OPEN_FAILED_RESOURCE_SHORTAGE">OPEN_FAILED_RESOURCE_SHORTAGE</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_group1-module.html#OPEN_SUCCEEDED">OPEN_SUCCEEDED</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.util-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED">OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED</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.sftp_server-module.html#OPEN_FAILED_RESOURCE_SHORTAGE">OPEN_FAILED_RESOURCE_SHORTAGE</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.packet-module.html#OPEN_SUCCEEDED">OPEN_SUCCEEDED</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.auth_handler-module.html#OPEN_FAILED_CONNECT_FAILED">OPEN_FAILED_CONNECT_FAILED</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.sftp_si-module.html#OPEN_FAILED_RESOURCE_SHORTAGE">OPEN_FAILED_RESOURCE_SHORTAGE</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.pkey-module.html#OPEN_SUCCEEDED">OPEN_SUCCEEDED</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.channel-module.html#OPEN_FAILED_CONNECT_FAILED">OPEN_FAILED_CONNECT_FAILED</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-module.html#OPEN_FAILED_RESOURCE_SHORTAGE">OPEN_FAILED_RESOURCE_SHORTAGE</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.rsakey-module.html#OPEN_SUCCEEDED">OPEN_SUCCEEDED</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.client-module.html#OPEN_FAILED_CONNECT_FAILED">OPEN_FAILED_CONNECT_FAILED</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.util-module.html#OPEN_FAILED_RESOURCE_SHORTAGE">OPEN_FAILED_RESOURCE_SHORTAGE</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.server-module.html#OPEN_SUCCEEDED">OPEN_SUCCEEDED</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.common-module.html#OPEN_FAILED_CONNECT_FAILED">OPEN_FAILED_CONNECT_FAILED</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.auth_handler-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE">OPEN_FAILED_UNKNOWN_CHANNEL_TYPE</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.sftp-module.html#OPEN_SUCCEEDED">OPEN_SUCCEEDED</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.dsskey-module.html#OPEN_FAILED_CONNECT_FAILED">OPEN_FAILED_CONNECT_FAILED</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.channel-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE">OPEN_FAILED_UNKNOWN_CHANNEL_TYPE</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.sftp_attr-module.html#OPEN_SUCCEEDED">OPEN_SUCCEEDED</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.hostkeys-module.html#OPEN_FAILED_CONNECT_FAILED">OPEN_FAILED_CONNECT_FAILED</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.client-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE">OPEN_FAILED_UNKNOWN_CHANNEL_TYPE</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.sftp_client-module.html#OPEN_SUCCEEDED">OPEN_SUCCEEDED</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.kex_gex-module.html#OPEN_FAILED_CONNECT_FAILED">OPEN_FAILED_CONNECT_FAILED</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.common-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE">OPEN_FAILED_UNKNOWN_CHANNEL_TYPE</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.sftp_file-module.html#OPEN_SUCCEEDED">OPEN_SUCCEEDED</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.kex_group1-module.html#OPEN_FAILED_CONNECT_FAILED">OPEN_FAILED_CONNECT_FAILED</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.dsskey-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE">OPEN_FAILED_UNKNOWN_CHANNEL_TYPE</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.sftp_handle-module.html#OPEN_SUCCEEDED">OPEN_SUCCEEDED</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.packet-module.html#OPEN_FAILED_CONNECT_FAILED">OPEN_FAILED_CONNECT_FAILED</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.hostkeys-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE">OPEN_FAILED_UNKNOWN_CHANNEL_TYPE</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.sftp_server-module.html#OPEN_SUCCEEDED">OPEN_SUCCEEDED</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.pkey-module.html#OPEN_FAILED_CONNECT_FAILED">OPEN_FAILED_CONNECT_FAILED</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.kex_gex-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE">OPEN_FAILED_UNKNOWN_CHANNEL_TYPE</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.sftp_si-module.html#OPEN_SUCCEEDED">OPEN_SUCCEEDED</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.rsakey-module.html#OPEN_FAILED_CONNECT_FAILED">OPEN_FAILED_CONNECT_FAILED</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.kex_group1-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE">OPEN_FAILED_UNKNOWN_CHANNEL_TYPE</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.transport-module.html#OPEN_SUCCEEDED">OPEN_SUCCEEDED</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.server-module.html#OPEN_FAILED_CONNECT_FAILED">OPEN_FAILED_CONNECT_FAILED</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.packet-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE">OPEN_FAILED_UNKNOWN_CHANNEL_TYPE</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.util-module.html#OPEN_SUCCEEDED">OPEN_SUCCEEDED</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-module.html#OPEN_FAILED_CONNECT_FAILED">OPEN_FAILED_CONNECT_FAILED</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.pkey-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE">OPEN_FAILED_UNKNOWN_CHANNEL_TYPE</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.Transport-class.html#open_x11_channel">open_x11_channel()</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#OPEN_FAILED_CONNECT_FAILED">OPEN_FAILED_CONNECT_FAILED</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.rsakey-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE">OPEN_FAILED_UNKNOWN_CHANNEL_TYPE</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.pipe.OrPipe-class.html">OrPipe</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.pipe-module.html" onclick="show_private();">paramiko.pipe</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.sftp_client-module.html#OPEN_FAILED_CONNECT_FAILED">OPEN_FAILED_CONNECT_FAILED</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.server-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE">OPEN_FAILED_UNKNOWN_CHANNEL_TYPE</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">&nbsp;</td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.sftp_file-module.html#OPEN_FAILED_CONNECT_FAILED">OPEN_FAILED_CONNECT_FAILED</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-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE">OPEN_FAILED_UNKNOWN_CHANNEL_TYPE</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">&nbsp;</td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="P">P</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.kex_group1-module.html#P">P</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.pkey-module.html">pkey</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.kex_group1-module.html#PY22">PY22</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.packet-module.html">packet</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.pipe.PosixPipe-class.html">PosixPipe</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.packet-module.html#PY22">PY22</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.win_pageant.PageantConnection-class.html">PageantConnection</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.kex_gex.KexGex-class.html#preferred_bits">preferred_bits</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.pkey-module.html#PY22">PY22</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-module.html">paramiko</a></td>
+<td width="33%" class="link-index"><a href="paramiko.SFTPFile-class.html#prefetch">prefetch()</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.rsakey-module.html#PY22">PY22</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.SSHConfig-class.html#parse">parse()</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.primes-module.html">primes</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.server-module.html#PY22">PY22</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.kex_gex.KexGex-class.html#parse_next">parse_next()</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.SFTPClient-class.html#put">put()</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.sftp-module.html#PY22">PY22</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#parse_next">parse_next()</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.transport.ChannelMap-class.html#put">put()</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.sftp_attr-module.html#PY22">PY22</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.util-module.html#parse_ssh_config">parse_ssh_config()</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.auth_handler-module.html#PY22">PY22</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.sftp_client-module.html#PY22">PY22</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.ssh_exception.PartialAuthentication-class.html">PartialAuthentication</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.channel-module.html#PY22">PY22</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.sftp_file-module.html#PY22">PY22</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.PasswordRequiredException-class.html">PasswordRequiredException</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#PY22">PY22</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.sftp_handle-module.html#PY22">PY22</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.util.PFilter-class.html">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.common-module.html#PY22">PY22</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.sftp_server-module.html#PY22">PY22</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.pipe-module.html">pipe</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.dsskey-module.html#PY22">PY22</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.sftp_si-module.html#PY22">PY22</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.buffered_pipe.PipeTimeout-class.html">PipeTimeout</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.hostkeys-module.html#PY22">PY22</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.transport-module.html#PY22">PY22</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.PKey-class.html">PKey</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.kex_gex-module.html#PY22">PY22</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.util-module.html#PY22">PY22</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.util-module.html">paramiko.util</a>)</span></td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="R">R</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.rng.StrongLockingRandomPool-class.html#randomize">randomize()</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.transport-module.html#randpool">randpool</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.SFTPClient-class.html#rename">rename()</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.auth_handler-module.html#randpool">randpool</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-module.html#randpool">randpool</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.SFTPServerInterface-class.html#rename">rename()</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.channel-module.html#randpool">randpool</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.BufferedFile-class.html#read">read()</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.Transport-class.html#renegotiate_keys">renegotiate_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.client-module.html#randpool">randpool</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.SFTPHandle-class.html#read">read()</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.Transport-class.html#request_port_forward">request_port_forward()</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.common-module.html#randpool">randpool</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.buffered_pipe.BufferedPipe-class.html#read">read()</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.Channel-class.html#request_x11">request_x11()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.Channel-class.html">Channel</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.dsskey-module.html#randpool">randpool</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.primes.ModulusPack-class.html#read_file">read_file()</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.Channel-class.html#resize_pty">resize_pty()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.Channel-class.html">Channel</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.hostkeys-module.html#randpool">randpool</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.buffered_pipe.BufferedPipe-class.html#read_ready">read_ready()</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.resource-module.html">resource</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.kex_gex-module.html#randpool">randpool</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.BufferedFile-class.html#readline">readline()</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.resource-module.html#ResourceManager">ResourceManager</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.resource-module.html" onclick="show_private();">paramiko.resource</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.kex_group1-module.html#randpool">randpool</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.BufferedFile-class.html#readlines">readlines()</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.Message-class.html#rewind">rewind()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.Message-class.html">Message</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.packet-module.html#randpool">randpool</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#readlink">readlink()</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.SFTPClient-class.html#rmdir">rmdir()</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.pkey-module.html#randpool">randpool</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.SFTPServerInterface-class.html#readlink">readlink()</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.SFTPServerInterface-class.html#rmdir">rmdir()</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.rsakey-module.html#randpool">randpool</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.SFTPFile-class.html#readv">readv()</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.rng-module.html">rng</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.server-module.html#randpool">randpool</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.Channel-class.html#recv">recv()</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.rng-module.html#rng_device">rng_device</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-module.html#randpool">randpool</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.win_pageant.PageantConnection-class.html#recv">recv()</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.rng_posix-module.html">rng_posix</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_attr-module.html#randpool">randpool</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.Channel-class.html#recv_exit_status">recv_exit_status()</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.rng_win32-module.html">rng_win32</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_client-module.html#randpool">randpool</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.Channel-class.html#recv_ready">recv_ready()</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.RSAKey-class.html">RSAKey</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_file-module.html#randpool">randpool</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.Channel-class.html#recv_stderr">recv_stderr()</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.rsakey-module.html">rsakey</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#randpool">randpool</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.Channel-class.html#recv_stderr_ready">recv_stderr_ready()</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#run">run()</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#randpool">randpool</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.RejectPolicy-class.html">RejectPolicy</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko-module.html">paramiko</a>)</span></td>
+<td width="33%" class="link-index">&nbsp;</td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.sftp_si-module.html#randpool">randpool</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.SFTPServerInterface-class.html#remove">remove()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.SFTPServerInterface-class.html">SFTPServerInterface</a>)</span></td>
+<td width="33%" class="link-index">&nbsp;</td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="S">S</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.util-module.html#safe_string">safe_string()</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.sftp-module.html#SFTP_EOF">SFTP_EOF</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_SUCH_FILE">SFTP_NO_SUCH_FILE</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.HostKeys-class.html#save">save()</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.sftp_attr-module.html#SFTP_EOF">SFTP_EOF</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_SUCH_FILE">SFTP_NO_SUCH_FILE</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.SSHClient-class.html#save_host_keys">save_host_keys()</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.sftp_client-module.html#SFTP_EOF">SFTP_EOF</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_SUCH_FILE">SFTP_NO_SUCH_FILE</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.SecurityOptions-class.html">SecurityOptions</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_EOF">SFTP_EOF</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_SUCH_FILE">SFTP_NO_SUCH_FILE</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.BufferedFile-class.html#seek">seek()</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.sftp_handle-module.html#SFTP_EOF">SFTP_EOF</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_OK">SFTP_OK</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.SFTPFile-class.html#seek">seek()</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.sftp_server-module.html#SFTP_EOF">SFTP_EOF</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_OK">SFTP_OK</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.BufferedFile-class.html#SEEK_CUR">SEEK_CUR</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.sftp_si-module.html#SFTP_EOF">SFTP_EOF</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_OK">SFTP_OK</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.BufferedFile-class.html#SEEK_END">SEEK_END</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.sftp-module.html#SFTP_FAILURE">SFTP_FAILURE</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_OK">SFTP_OK</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.BufferedFile-class.html#SEEK_SET">SEEK_SET</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.sftp_attr-module.html#SFTP_FAILURE">SFTP_FAILURE</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_OK">SFTP_OK</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.Channel-class.html#send">send()</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.sftp_client-module.html#SFTP_FAILURE">SFTP_FAILURE</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_OK">SFTP_OK</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.win_pageant.PageantConnection-class.html#send">send()</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.sftp_file-module.html#SFTP_FAILURE">SFTP_FAILURE</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_OK">SFTP_OK</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.Channel-class.html#send_exit_status">send_exit_status()</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.sftp_handle-module.html#SFTP_FAILURE">SFTP_FAILURE</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_OP_UNSUPPORTED">SFTP_OP_UNSUPPORTED</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.Transport-class.html#send_ignore">send_ignore()</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_server-module.html#SFTP_FAILURE">SFTP_FAILURE</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_OP_UNSUPPORTED">SFTP_OP_UNSUPPORTED</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.Channel-class.html#send_ready">send_ready()</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.sftp_si-module.html#SFTP_FAILURE">SFTP_FAILURE</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_OP_UNSUPPORTED">SFTP_OP_UNSUPPORTED</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.Channel-class.html#send_stderr">send_stderr()</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.sftp_file-module.html">sftp_file</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_OP_UNSUPPORTED">SFTP_OP_UNSUPPORTED</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.Channel-class.html#sendall">sendall()</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.sftp-module.html#SFTP_FLAG_APPEND">SFTP_FLAG_APPEND</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_OP_UNSUPPORTED">SFTP_OP_UNSUPPORTED</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.Channel-class.html#sendall_stderr">sendall_stderr()</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.sftp_attr-module.html#SFTP_FLAG_APPEND">SFTP_FLAG_APPEND</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_OP_UNSUPPORTED">SFTP_OP_UNSUPPORTED</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.server-module.html">server</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_client-module.html#SFTP_FLAG_APPEND">SFTP_FLAG_APPEND</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_OP_UNSUPPORTED">SFTP_OP_UNSUPPORTED</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.ServerInterface-class.html">ServerInterface</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_APPEND">SFTP_FLAG_APPEND</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-module.html#SFTP_PERMISSION_DENIED">SFTP_PERMISSION_DENIED</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.SFTPServerInterface-class.html#session_ended">session_ended()</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.sftp_handle-module.html#SFTP_FLAG_APPEND">SFTP_FLAG_APPEND</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_attr-module.html#SFTP_PERMISSION_DENIED">SFTP_PERMISSION_DENIED</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.SFTPServerInterface-class.html#session_started">session_started()</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.sftp_server-module.html#SFTP_FLAG_APPEND">SFTP_FLAG_APPEND</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_client-module.html#SFTP_PERMISSION_DENIED">SFTP_PERMISSION_DENIED</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.pipe.OrPipe-class.html#set">set()</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.sftp_si-module.html#SFTP_FLAG_APPEND">SFTP_FLAG_APPEND</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_file-module.html#SFTP_PERMISSION_DENIED">SFTP_PERMISSION_DENIED</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.pipe.PosixPipe-class.html#set">set()</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.sftp-module.html#SFTP_FLAG_CREATE">SFTP_FLAG_CREATE</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_PERMISSION_DENIED">SFTP_PERMISSION_DENIED</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.pipe.WindowsPipe-class.html#set">set()</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.sftp_attr-module.html#SFTP_FLAG_CREATE">SFTP_FLAG_CREATE</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_PERMISSION_DENIED">SFTP_PERMISSION_DENIED</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.Channel-class.html#set_combine_stderr">set_combine_stderr()</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.sftp_client-module.html#SFTP_FLAG_CREATE">SFTP_FLAG_CREATE</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_PERMISSION_DENIED">SFTP_PERMISSION_DENIED</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.buffered_pipe.BufferedPipe-class.html#set_event">set_event()</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_file-module.html#SFTP_FLAG_CREATE">SFTP_FLAG_CREATE</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_server-module.html">sftp_server</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.SFTPServer-class.html#set_file_attr">set_file_attr()</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.sftp_handle-module.html#SFTP_FLAG_CREATE">SFTP_FLAG_CREATE</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_si-module.html">sftp_si</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.pipe.PosixPipe-class.html#set_forever">set_forever()</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.sftp_server-module.html#SFTP_FLAG_CREATE">SFTP_FLAG_CREATE</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.SFTPAttributes-class.html">SFTPAttributes</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.pipe.WindowsPipe-class.html#set_forever">set_forever()</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.sftp_si-module.html#SFTP_FLAG_CREATE">SFTP_FLAG_CREATE</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">SFTPClient</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.Transport-class.html#set_hexdump">set_hexdump()</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#SFTP_FLAG_EXCL">SFTP_FLAG_EXCL</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.SFTPError-class.html">SFTPError</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.Transport-class.html#set_keepalive">set_keepalive()</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#SFTP_FLAG_EXCL">SFTP_FLAG_EXCL</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.SFTPFile-class.html">SFTPFile</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.SSHClient-class.html#set_log_channel">set_log_channel()</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.sftp_client-module.html#SFTP_FLAG_EXCL">SFTP_FLAG_EXCL</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.SFTPHandle-class.html">SFTPHandle</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.Transport-class.html#set_log_channel">set_log_channel()</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_file-module.html#SFTP_FLAG_EXCL">SFTP_FLAG_EXCL</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">SFTPServer</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.SSHClient-class.html#set_missing_host_key_policy">set_missing_host_key_policy()</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.sftp_handle-module.html#SFTP_FLAG_EXCL">SFTP_FLAG_EXCL</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.SFTPServerInterface-class.html">SFTPServerInterface</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#set_name">set_name()</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.sftp_server-module.html#SFTP_FLAG_EXCL">SFTP_FLAG_EXCL</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.Channel-class.html#shutdown">shutdown()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.Channel-class.html">Channel</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.SFTPFile-class.html#set_pipelined">set_pipelined()</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.sftp_si-module.html#SFTP_FLAG_EXCL">SFTP_FLAG_EXCL</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-class.html#shutdown_read">shutdown_read()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.Channel-class.html">Channel</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.Transport-class.html#set_subsystem_handler">set_subsystem_handler()</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#SFTP_FLAG_READ">SFTP_FLAG_READ</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.Channel-class.html#shutdown_write">shutdown_write()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.Channel-class.html">Channel</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.Channel-class.html#setblocking">setblocking()</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.sftp_attr-module.html#SFTP_FLAG_READ">SFTP_FLAG_READ</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.AgentKey-class.html#sign_ssh_data">sign_ssh_data()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.AgentKey-class.html">AgentKey</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.SFTPFile-class.html#setblocking">setblocking()</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.sftp_client-module.html#SFTP_FLAG_READ">SFTP_FLAG_READ</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-class.html#sign_ssh_data">sign_ssh_data()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.DSSKey-class.html">DSSKey</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.logging22.StreamHandler-class.html#setFormatter">setFormatter()</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.sftp_file-module.html#SFTP_FLAG_READ">SFTP_FLAG_READ</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.PKey-class.html#sign_ssh_data">sign_ssh_data()</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.logging22.logger-class.html#setLevel">setLevel()</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.sftp_handle-module.html#SFTP_FLAG_READ">SFTP_FLAG_READ</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.RSAKey-class.html#sign_ssh_data">sign_ssh_data()</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.Channel-class.html#settimeout">settimeout()</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.sftp_server-module.html#SFTP_FLAG_READ">SFTP_FLAG_READ</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.agent-module.html#SSH2_AGENT_IDENTITIES_ANSWER">SSH2_AGENT_IDENTITIES_ANSWER</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.agent-module.html" onclick="show_private();">paramiko.agent</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.SFTPFile-class.html#settimeout">settimeout()</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.sftp_si-module.html#SFTP_FLAG_READ">SFTP_FLAG_READ</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.agent-module.html#SSH2_AGENT_SIGN_RESPONSE">SSH2_AGENT_SIGN_RESPONSE</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.agent-module.html" onclick="show_private();">paramiko.agent</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.SFTP-class.html">SFTP</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-module.html#SFTP_FLAG_TRUNC">SFTP_FLAG_TRUNC</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.agent-module.html#SSH2_AGENTC_REQUEST_IDENTITIES">SSH2_AGENTC_REQUEST_IDENTITIES</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.agent-module.html" onclick="show_private();">paramiko.agent</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.sftp-module.html">sftp</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_attr-module.html#SFTP_FLAG_TRUNC">SFTP_FLAG_TRUNC</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.agent-module.html#SSH2_AGENTC_SIGN_REQUEST">SSH2_AGENTC_SIGN_REQUEST</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.agent-module.html" onclick="show_private();">paramiko.agent</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.sftp_attr-module.html">sftp_attr</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_client-module.html#SFTP_FLAG_TRUNC">SFTP_FLAG_TRUNC</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.ssh_exception-module.html">ssh_exception</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-module.html#SFTP_BAD_MESSAGE">SFTP_BAD_MESSAGE</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_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>
+</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 />
+<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_client-module.html#SFTP_BAD_MESSAGE">SFTP_BAD_MESSAGE</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_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 />
+<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_file-module.html#SFTP_BAD_MESSAGE">SFTP_BAD_MESSAGE</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_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>
+</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>
+</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>
+</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>
+</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>
+</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>
+</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>
+</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>
+</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>
+</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>
+</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>
+</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>
+</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>
+</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>
+</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>
+</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>
+</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>
+</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>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.sftp_si-module.html#SFTP_DESC">SFTP_DESC</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_SUCH_FILE">SFTP_NO_SUCH_FILE</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">&nbsp;</td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="T">T</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.util-module.html#tb_strings">tb_strings()</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">Transport</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.SFTPFile-class.html#truncate">truncate()</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.BufferedFile-class.html#tell">tell()</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.transport-module.html">transport</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko-module.html">paramiko</a>)</span></td>
+<td width="33%" class="link-index">&nbsp;</td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.hostkeys.HostKeyEntry-class.html#to_line">to_line()</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.SFTPClient-class.html#truncate">truncate()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.SFTPClient-class.html">SFTPClient</a>)</span></td>
+<td width="33%" class="link-index">&nbsp;</td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="U">U</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.util-module.html#unhexify">unhexify()</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#use_compression">use_compression()</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.SFTPClient-class.html#utime">utime()</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.SFTPClient-class.html#unlink">unlink()</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.util-module.html">util</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.SFTPFile-class.html#utime">utime()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.SFTPFile-class.html">SFTPFile</a>)</span></td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="V">V</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.HostKeys-class.html#values">values()</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.DSSKey-class.html#verify_ssh_sig">verify_ssh_sig()</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.RSAKey-class.html#verify_ssh_sig">verify_ssh_sig()</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.transport.ChannelMap-class.html#values">values()</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.PKey-class.html#verify_ssh_sig">verify_ssh_sig()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.PKey-class.html">PKey</a>)</span></td>
+<td width="33%" class="link-index">&nbsp;</td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="W">W</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.auth_handler-module.html#WARNING">WARNING</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.server-module.html#WARNING">WARNING</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.win_pageant-module.html">win_pageant</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-module.html#WARNING">WARNING</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.sftp-module.html#WARNING">WARNING</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.pipe.WindowsPipe-class.html">WindowsPipe</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.pipe-module.html" onclick="show_private();">paramiko.pipe</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.client-module.html#WARNING">WARNING</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.sftp_attr-module.html#WARNING">WARNING</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.BufferedFile-class.html#write">write()</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.common-module.html#WARNING">WARNING</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.sftp_client-module.html#WARNING">WARNING</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.SFTPHandle-class.html#write">write()</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.dsskey-module.html#WARNING">WARNING</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.sftp_file-module.html#WARNING">WARNING</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.DSSKey-class.html#write_private_key">write_private_key()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.DSSKey-class.html">DSSKey</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.hostkeys-module.html#WARNING">WARNING</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.sftp_handle-module.html#WARNING">WARNING</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.PKey-class.html#write_private_key">write_private_key()</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.kex_gex-module.html#WARNING">WARNING</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.sftp_server-module.html#WARNING">WARNING</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.RSAKey-class.html#write_private_key">write_private_key()</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.kex_group1-module.html#WARNING">WARNING</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.sftp_si-module.html#WARNING">WARNING</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.DSSKey-class.html#write_private_key_file">write_private_key_file()</a><br />
+<span class="index-where">(in&nbsp;<a href="paramiko.DSSKey-class.html">DSSKey</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.logging22-module.html#WARNING">WARNING</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-module.html#WARNING">WARNING</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.PKey-class.html#write_private_key_file">write_private_key_file()</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.packet-module.html#WARNING">WARNING</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.util-module.html#WARNING">WARNING</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.RSAKey-class.html#write_private_key_file">write_private_key_file()</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.pkey-module.html#WARNING">WARNING</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.WarningPolicy-class.html">WarningPolicy</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.BufferedFile-class.html#writelines">writelines()</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.rsakey-module.html#WARNING">WARNING</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.win_pageant-module.html#win32con_WM_COPYDATA">win32con_WM_COPYDATA</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">&nbsp;</td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="X">X</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.BufferedFile-class.html#xreadlines">xreadlines()</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">&nbsp;</td>
+</tr>
+<tr><td class="link-index">&nbsp;</td><td class="link-index">&nbsp;</td><td class="link-index">&nbsp;</td></tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="Z">Z</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="paramiko.compress.ZlibCompressor-class.html">ZlibCompressor</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.compress.ZlibDecompressor-class.html">ZlibDecompressor</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">&nbsp;</td>
+</tr>
+<tr><td class="link-index">&nbsp;</td><td class="link-index">&nbsp;</td><td class="link-index">&nbsp;</td></tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="_">_</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<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>
+</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>
+</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>
+</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>
+</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>
+</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>
+</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>
+</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>
+</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>
+</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>
+</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>
+</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 />
+<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>
+</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>
+</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>
+</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>
+</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>
+</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>
+</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>
+</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>
+</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 />
+<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>
+</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>
+</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>
+</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>
+</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>
+</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>
+</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>
+</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>
+</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 />
+<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 />
+<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>
+</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>
+</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>
+</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>
+</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>
+</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>
+</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>
+</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>
+</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 />
+<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.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>
+</table>
+</td></tr>
+</table>
+<br /><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 bgcolor="#70b0f0" class="navbar-select"
+ >&nbsp;&nbsp;&nbsp;Indices&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 Jul 6 18:30:25 2008
+ </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/index.html b/docs/index.html
index d2fca35..d1e8877 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -1,13 +1,17 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
-<html>
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
+ "DTD/xhtml1-frameset.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title> API Documentation </title>
</head>
<frameset cols="20%,80%">
<frameset rows="30%,70%">
- <frame src="public/toc.html" name="moduleListFrame">
- <frame src="public/toc-everything.html" name="moduleFrame">
+ <frame src="toc.html" name="moduleListFrame"
+ id="moduleListFrame" />
+ <frame src="toc-everything.html" name="moduleFrame"
+ id="moduleFrame" />
</frameset>
- <frame src="public/paramiko-module.html" name="mainFrame">
+ <frame src="paramiko-module.html" name="mainFrame" id="mainFrame" />
</frameset>
</html>
diff --git a/docs/module-tree.html b/docs/module-tree.html
new file mode 100644
index 0000000..10ad60b
--- /dev/null
+++ b/docs/module-tree.html
@@ -0,0 +1,158 @@
+<?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>Module Hierarchy</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 bgcolor="#70b0f0" class="navbar-select"
+ >&nbsp;&nbsp;&nbsp;Trees&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%">&nbsp;</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="module-tree.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<center><b>
+ [ <a href="module-tree.html">Module Hierarchy</a>
+ | <a href="class-tree.html">Class Hierarchy</a> ]
+</b></center><br />
+<h1 class="epydoc">Module Hierarchy</h1>
+<ul class="nomargin-top">
+ <li> <strong class="uidlink"><a href="paramiko-module.html">paramiko</a></strong>: <em class="summary"><i>Paramiko</i> (a combination of the esperanto words for
+ &quot;paranoid&quot; and &quot;friend&quot;) is a module for python
+ 2.3 or greater that implements the SSH2 protocol for secure
+ (encrypted and authenticated) connections to remote machines.</em>
+ <ul>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.agent-module.html" onclick="show_private();">paramiko.agent</a></strong>: <em class="summary">SSH Agent interface for Unix clients.</em> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.auth_handler-module.html" onclick="show_private();">paramiko.auth_handler</a></strong>: <em class="summary">AuthHandler</em> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.ber-module.html" onclick="show_private();">paramiko.ber</a></strong> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.buffered_pipe-module.html" onclick="show_private();">paramiko.buffered_pipe</a></strong>: <em class="summary">Attempt to generalize the &quot;feeder&quot; part of a Channel: an
+ object which can be read from and closed, but is reading from a
+ buffer fed by another thread.</em> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.channel-module.html" onclick="show_private();">paramiko.channel</a></strong>: <em class="summary">Abstraction for an SSH2 channel.</em> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.client-module.html" onclick="show_private();">paramiko.client</a></strong>: <em class="summary"><a href="paramiko.SSHClient-class.html" class="link">SSHClient</a>.</em> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.common-module.html" onclick="show_private();">paramiko.common</a></strong>: <em class="summary">Common constants and global variables.</em> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.compress-module.html" onclick="show_private();">paramiko.compress</a></strong>: <em class="summary">Compression implementations for a Transport.</em> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.config-module.html" onclick="show_private();">paramiko.config</a></strong>: <em class="summary"><a href="paramiko.SSHConfig-class.html" class="link">SSHConfig</a>.</em> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.dsskey-module.html" onclick="show_private();">paramiko.dsskey</a></strong>: <em class="summary"><a href="paramiko.DSSKey-class.html" class="link">DSSKey</a></em> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.file-module.html" onclick="show_private();">paramiko.file</a></strong>: <em class="summary">BufferedFile.</em> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.hostkeys-module.html" onclick="show_private();">paramiko.hostkeys</a></strong>: <em class="summary"><a href="paramiko.HostKeys-class.html" class="link">HostKeys</a></em> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.kex_gex-module.html" onclick="show_private();">paramiko.kex_gex</a></strong>: <em class="summary">Variant on <a href="paramiko.kex_group1.KexGroup1-class.html"
+ class="link">KexGroup1</a> where the prime &quot;p&quot; and
+ generator &quot;g&quot; are provided by the server.</em> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.kex_group1-module.html" onclick="show_private();">paramiko.kex_group1</a></strong>: <em class="summary">Standard SSH key exchange (&quot;kex&quot; if you wanna sound
+ cool).</em> </li>
+ <li> <strong class="uidlink"><a href="paramiko.logging22-module.html">paramiko.logging22</a></strong>: <em class="summary">Stub out logging on python &lt; 2.3.</em> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.message-module.html" onclick="show_private();">paramiko.message</a></strong>: <em class="summary">Implementation of an SSH2 &quot;message&quot;.</em> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.packet-module.html" onclick="show_private();">paramiko.packet</a></strong>: <em class="summary">Packetizer.</em> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.pipe-module.html" onclick="show_private();">paramiko.pipe</a></strong>: <em class="summary">Abstraction of a one-way pipe where the read end can be used in
+ select().</em> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.pkey-module.html" onclick="show_private();">paramiko.pkey</a></strong>: <em class="summary">Common API for all public keys.</em> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.primes-module.html" onclick="show_private();">paramiko.primes</a></strong>: <em class="summary">Utility functions for dealing with primes.</em> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.resource-module.html" onclick="show_private();">paramiko.resource</a></strong>: <em class="summary">Resource manager.</em> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.rng-module.html" onclick="show_private();">paramiko.rng</a></strong> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.rng_posix-module.html" onclick="show_private();">paramiko.rng_posix</a></strong> </li>
+ <li> <strong class="uidlink"><a href="paramiko.rng_win32-module.html">paramiko.rng_win32</a></strong> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.rsakey-module.html" onclick="show_private();">paramiko.rsakey</a></strong>: <em class="summary"><a href="paramiko.RSAKey-class.html" class="link">RSAKey</a></em> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.server-module.html" onclick="show_private();">paramiko.server</a></strong>: <em class="summary"><a href="paramiko.ServerInterface-class.html"
+ class="link">ServerInterface</a> is an interface to override for
+ server support.</em> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.sftp-module.html" onclick="show_private();">paramiko.sftp</a></strong> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.sftp_attr-module.html" onclick="show_private();">paramiko.sftp_attr</a></strong> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.sftp_client-module.html" onclick="show_private();">paramiko.sftp_client</a></strong>: <em class="summary">Client-mode SFTP support.</em> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.sftp_file-module.html" onclick="show_private();">paramiko.sftp_file</a></strong>: <em class="summary"><a href="paramiko.SFTPFile-class.html" class="link">SFTPFile</a></em> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.sftp_handle-module.html" onclick="show_private();">paramiko.sftp_handle</a></strong>: <em class="summary">Abstraction of an SFTP file handle (for server mode).</em> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.sftp_server-module.html" onclick="show_private();">paramiko.sftp_server</a></strong>: <em class="summary">Server-mode SFTP support.</em> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.sftp_si-module.html" onclick="show_private();">paramiko.sftp_si</a></strong>: <em class="summary"><a href="paramiko.SFTPServerInterface-class.html"
+ class="link">SFTPServerInterface</a> is an interface to override
+ for SFTP server support.</em> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.ssh_exception-module.html" onclick="show_private();">paramiko.ssh_exception</a></strong>: <em class="summary">Exceptions defined by paramiko.</em> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.transport-module.html" onclick="show_private();">paramiko.transport</a></strong>: <em class="summary"><a href="paramiko.Transport-class.html" class="link">Transport</a>
+ handles the core SSH2 protocol.</em> </li>
+ <li> <strong class="uidlink"><a href="paramiko.util-module.html">paramiko.util</a></strong>: <em class="summary">Useful functions used by the rest of paramiko.</em> </li>
+ <li> <strong class="uidlink"><a href="paramiko.win_pageant-module.html">paramiko.win_pageant</a></strong>: <em class="summary">Functions for communicating with Pageant, the basic windows ssh
+ agent program.</em> </li>
+ </ul>
+ </li>
+</ul>
+<!-- ==================== 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 bgcolor="#70b0f0" class="navbar-select"
+ >&nbsp;&nbsp;&nbsp;Trees&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 Jul 6 18:30:25 2008
+ </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-module.html b/docs/paramiko-module.html
new file mode 100644
index 0000000..4c88f2e
--- /dev/null
+++ b/docs/paramiko-module.html
@@ -0,0 +1,516 @@
+<?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</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 bgcolor="#70b0f0" class="navbar-select"
+ >&nbsp;&nbsp;&nbsp;Home&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">
+ Package&nbsp;paramiko
+ </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-module.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== PACKAGE DESCRIPTION ==================== -->
+<h1 class="epydoc">Package paramiko</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko-pysrc.html">source&nbsp;code</a></span></p>
+<p><i>Paramiko</i> (a combination of the esperanto words for
+ &quot;paranoid&quot; and &quot;friend&quot;) is a module for python 2.3
+ or greater that implements the SSH2 protocol for secure (encrypted and
+ authenticated) connections to remote machines. Unlike SSL (aka TLS), the
+ SSH2 protocol does not require heirarchical certificates signed by a
+ powerful central authority. You may know SSH2 as the protocol that
+ replaced <code>telnet</code> and <code>rsh</code> for secure access to
+ remote shells, but the protocol also includes the ability to open
+ arbitrary channels to remote services across an encrypted tunnel. (This
+ is how <code>sftp</code> works, for example.)</p>
+ <p>The high-level client API starts with creation of an <a
+ href="paramiko.SSHClient-class.html" class="link">SSHClient</a> object.
+ For more direct control, pass a socket (or socket-like object) to a <a
+ href="paramiko.Transport-class.html" class="link">Transport</a>, and use
+ <a href="paramiko.Transport-class.html#start_server"
+ class="link">start_server</a> or <a
+ href="paramiko.Transport-class.html#start_client"
+ class="link">start_client</a> to negoatite with the remote host as either
+ a server or client. As a client, you are responsible for authenticating
+ using a password or private key, and checking the server's host key.
+ <i>(Key signature and verification is done by paramiko, but you will need
+ to provide private keys and check that the content of a public key
+ matches what you expected to see.)</i> As a server, you are responsible
+ for deciding which users, passwords, and keys to allow, and what kind of
+ channels to allow.</p>
+ <p>Once you have finished, either side may request flow-controlled <a
+ href="paramiko.Channel-class.html" class="link">Channel</a>s to the other
+ side, which are python objects that act like sockets, but send and
+ receive data over the encrypted session.</p>
+ <p>Paramiko is written entirely in python (no C or platform-dependent
+ code) and is released under the GNU Lesser General Public License
+ (LGPL).</p>
+ <p>Website: <a href="http://www.lag.net/paramiko/"
+ target="_top">http://www.lag.net/paramiko/</a></p>
+
+<hr />
+<div class="fields"> <p><strong>Version:</strong>
+ 1.7.4 (Desmond)
+ </p>
+ <p><strong>Author:</strong>
+ Robey Pointer
+ </p>
+ <p><strong>Contact:</strong>
+ robey@lag.net
+ </p>
+ <p><strong>License:</strong>
+ GNU Lesser General Public License (LGPL)
+ </p>
+ <p><strong>Date:</strong>
+ 06 Jul 2008
+ </p>
+</div><!-- ==================== SUBMODULES ==================== -->
+<a name="section-Submodules"></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">Submodules</span></td>
+</tr>
+ <tr><td class="summary">
+ <ul class="nomargin">
+ <li class="private"> <strong class="uidlink"><a href="paramiko.agent-module.html" onclick="show_private();">paramiko.agent</a></strong>: <em class="summary">SSH Agent interface for Unix clients.</em> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.auth_handler-module.html" onclick="show_private();">paramiko.auth_handler</a></strong>: <em class="summary">AuthHandler</em> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.ber-module.html" onclick="show_private();">paramiko.ber</a></strong> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.buffered_pipe-module.html" onclick="show_private();">paramiko.buffered_pipe</a></strong>: <em class="summary">Attempt to generalize the &quot;feeder&quot; part of a Channel: an
+ object which can be read from and closed, but is reading from a
+ buffer fed by another thread.</em> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.channel-module.html" onclick="show_private();">paramiko.channel</a></strong>: <em class="summary">Abstraction for an SSH2 channel.</em> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.client-module.html" onclick="show_private();">paramiko.client</a></strong>: <em class="summary"><a href="paramiko.SSHClient-class.html" class="link">SSHClient</a>.</em> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.common-module.html" onclick="show_private();">paramiko.common</a></strong>: <em class="summary">Common constants and global variables.</em> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.compress-module.html" onclick="show_private();">paramiko.compress</a></strong>: <em class="summary">Compression implementations for a Transport.</em> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.config-module.html" onclick="show_private();">paramiko.config</a></strong>: <em class="summary"><a href="paramiko.SSHConfig-class.html" class="link">SSHConfig</a>.</em> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.dsskey-module.html" onclick="show_private();">paramiko.dsskey</a></strong>: <em class="summary"><a href="paramiko.DSSKey-class.html" class="link">DSSKey</a></em> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.file-module.html" onclick="show_private();">paramiko.file</a></strong>: <em class="summary">BufferedFile.</em> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.hostkeys-module.html" onclick="show_private();">paramiko.hostkeys</a></strong>: <em class="summary"><a href="paramiko.HostKeys-class.html" class="link">HostKeys</a></em> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.kex_gex-module.html" onclick="show_private();">paramiko.kex_gex</a></strong>: <em class="summary">Variant on <a href="paramiko.kex_group1.KexGroup1-class.html"
+ class="link">KexGroup1</a> where the prime &quot;p&quot; and
+ generator &quot;g&quot; are provided by the server.</em> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.kex_group1-module.html" onclick="show_private();">paramiko.kex_group1</a></strong>: <em class="summary">Standard SSH key exchange (&quot;kex&quot; if you wanna sound
+ cool).</em> </li>
+ <li> <strong class="uidlink"><a href="paramiko.logging22-module.html">paramiko.logging22</a></strong>: <em class="summary">Stub out logging on python &lt; 2.3.</em> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.message-module.html" onclick="show_private();">paramiko.message</a></strong>: <em class="summary">Implementation of an SSH2 &quot;message&quot;.</em> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.packet-module.html" onclick="show_private();">paramiko.packet</a></strong>: <em class="summary">Packetizer.</em> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.pipe-module.html" onclick="show_private();">paramiko.pipe</a></strong>: <em class="summary">Abstraction of a one-way pipe where the read end can be used in
+ select().</em> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.pkey-module.html" onclick="show_private();">paramiko.pkey</a></strong>: <em class="summary">Common API for all public keys.</em> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.primes-module.html" onclick="show_private();">paramiko.primes</a></strong>: <em class="summary">Utility functions for dealing with primes.</em> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.resource-module.html" onclick="show_private();">paramiko.resource</a></strong>: <em class="summary">Resource manager.</em> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.rng-module.html" onclick="show_private();">paramiko.rng</a></strong> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.rng_posix-module.html" onclick="show_private();">paramiko.rng_posix</a></strong> </li>
+ <li> <strong class="uidlink"><a href="paramiko.rng_win32-module.html">paramiko.rng_win32</a></strong> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.rsakey-module.html" onclick="show_private();">paramiko.rsakey</a></strong>: <em class="summary"><a href="paramiko.RSAKey-class.html" class="link">RSAKey</a></em> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.server-module.html" onclick="show_private();">paramiko.server</a></strong>: <em class="summary"><a href="paramiko.ServerInterface-class.html"
+ class="link">ServerInterface</a> is an interface to override for
+ server support.</em> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.sftp-module.html" onclick="show_private();">paramiko.sftp</a></strong> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.sftp_attr-module.html" onclick="show_private();">paramiko.sftp_attr</a></strong> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.sftp_client-module.html" onclick="show_private();">paramiko.sftp_client</a></strong>: <em class="summary">Client-mode SFTP support.</em> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.sftp_file-module.html" onclick="show_private();">paramiko.sftp_file</a></strong>: <em class="summary"><a href="paramiko.SFTPFile-class.html" class="link">SFTPFile</a></em> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.sftp_handle-module.html" onclick="show_private();">paramiko.sftp_handle</a></strong>: <em class="summary">Abstraction of an SFTP file handle (for server mode).</em> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.sftp_server-module.html" onclick="show_private();">paramiko.sftp_server</a></strong>: <em class="summary">Server-mode SFTP support.</em> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.sftp_si-module.html" onclick="show_private();">paramiko.sftp_si</a></strong>: <em class="summary"><a href="paramiko.SFTPServerInterface-class.html"
+ class="link">SFTPServerInterface</a> is an interface to override
+ for SFTP server support.</em> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.ssh_exception-module.html" onclick="show_private();">paramiko.ssh_exception</a></strong>: <em class="summary">Exceptions defined by paramiko.</em> </li>
+ <li class="private"> <strong class="uidlink"><a href="paramiko.transport-module.html" onclick="show_private();">paramiko.transport</a></strong>: <em class="summary"><a href="paramiko.Transport-class.html" class="link">Transport</a>
+ handles the core SSH2 protocol.</em> </li>
+ <li> <strong class="uidlink"><a href="paramiko.util-module.html">paramiko.util</a></strong>: <em class="summary">Useful functions used by the rest of paramiko.</em> </li>
+ <li> <strong class="uidlink"><a href="paramiko.win_pageant-module.html">paramiko.win_pageant</a></strong>: <em class="summary">Functions for communicating with Pageant, the basic windows ssh
+ agent program.</em> </li>
+ </ul></td></tr>
+</table>
+
+<br />
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></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">Classes</span></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.SecurityOptions-class.html" class="summary-name">SecurityOptions</a><br />
+ Simple object containing the security preferences of an ssh
+ transport.
+ </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.Transport-class.html" class="summary-name">Transport</a><br />
+ An SSH Transport attaches to a stream (usually a socket),
+ negotiates an encrypted session, authenticates, and then creates
+ stream tunnels, called <a href="paramiko.Channel-class.html"
+ class="link">Channel</a>s, across the session.
+ </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.SSHClient-class.html" class="summary-name">SSHClient</a><br />
+ A high-level representation of a session with an SSH server.
+ </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.MissingHostKeyPolicy-class.html" class="summary-name">MissingHostKeyPolicy</a><br />
+ Interface for defining the policy that <a
+ href="paramiko.SSHClient-class.html" class="link">SSHClient</a>
+ should use when the SSH server's hostname is not in either the
+ system host keys or the application's keys.
+ </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.AutoAddPolicy-class.html" class="summary-name">AutoAddPolicy</a><br />
+ Policy for automatically adding the hostname and new host key to
+ the local <a href="paramiko.HostKeys-class.html"
+ class="link">HostKeys</a> object, and saving it.
+ </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.RejectPolicy-class.html" class="summary-name">RejectPolicy</a><br />
+ Policy for automatically rejecting the unknown hostname &amp; key.
+ </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.WarningPolicy-class.html" class="summary-name">WarningPolicy</a><br />
+ Policy for logging a python-style warning for an unknown host key,
+ but accepting it.
+ </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.Channel-class.html" class="summary-name">Channel</a><br />
+ A secure tunnel across an SSH <a
+ href="paramiko.Transport-class.html" class="link">Transport</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.SSHException-class.html" class="summary-name">SSHException</a><br />
+ Exception raised by failures in SSH2 protocol negotiation or logic
+ errors.
+ </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.PasswordRequiredException-class.html" class="summary-name">PasswordRequiredException</a><br />
+ Exception raised when a password is needed to unlock a private key
+ file.
+ </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.BadAuthenticationType-class.html" class="summary-name">BadAuthenticationType</a><br />
+ Exception raised when an authentication type (like password) is
+ used, but the server isn't allowing that type.
+ </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.ChannelException-class.html" class="summary-name">ChannelException</a><br />
+ Exception raised when an attempt to open a new <a
+ href="paramiko.Channel-class.html" class="link">Channel</a> fails.
+ </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.BadHostKeyException-class.html" class="summary-name">BadHostKeyException</a><br />
+ The host key given by the SSH server did not match what we were
+ expecting.
+ </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.AuthenticationException-class.html" class="summary-name">AuthenticationException</a><br />
+ Exception raised when authentication failed for some reason.
+ </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.ServerInterface-class.html" class="summary-name">ServerInterface</a><br />
+ This class defines an interface for controlling the behavior of
+ paramiko in server mode.
+ </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.SubsystemHandler-class.html" class="summary-name">SubsystemHandler</a><br />
+ Handler for a subsytem in server mode.
+ </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.RSAKey-class.html" class="summary-name">RSAKey</a><br />
+ Representation of an RSA key which can be used to sign and verify
+ SSH2 data.
+ </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.DSSKey-class.html" class="summary-name">DSSKey</a><br />
+ Representation of a DSS key which can be used to sign an verify
+ SSH2 data.
+ </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.SFTPError-class.html" class="summary-name">SFTPError</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.SFTP-class.html" class="summary-name">SFTP</a><br />
+ an alias for <a href="paramiko.SFTPClient-class.html"
+ class="link">SFTPClient</a> for backwards compatability
+ </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.SFTPClient-class.html" class="summary-name">SFTPClient</a><br />
+ SFTP client object.
+ </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.SFTPServer-class.html" class="summary-name">SFTPServer</a><br />
+ Server-side SFTP subsystem support.
+ </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.SFTPAttributes-class.html" class="summary-name">SFTPAttributes</a><br />
+ Representation of the attributes of a file (or proxied file) for
+ SFTP in client or server mode.
+ </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.SFTPHandle-class.html" class="summary-name">SFTPHandle</a><br />
+ Abstract object representing a handle to an open file (or folder)
+ in an SFTP server implementation.
+ </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.SFTPServerInterface-class.html" class="summary-name">SFTPServerInterface</a><br />
+ This class defines an interface for controlling the behavior of
+ paramiko when using the <a href="paramiko.SFTPServer-class.html"
+ class="link">SFTPServer</a> subsystem to provide an SFTP server.
+ </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.SFTPFile-class.html" class="summary-name">SFTPFile</a><br />
+ Proxy object for a file on the remote server, in client mode SFTP.
+ </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.Message-class.html" class="summary-name">Message</a><br />
+ An SSH2 <i>Message</i> is a stream of bytes that encodes some
+ combination of strings, integers, bools, and infinite-precision
+ integers (known in python as <i>long</i>s).
+ </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.BufferedFile-class.html" class="summary-name">BufferedFile</a><br />
+ Reusable base class to implement python-style file buffering around
+ a simpler stream.
+ </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.Agent-class.html" class="summary-name">Agent</a><br />
+ Client interface for using private keys from an SSH agent running
+ on the local machine.
+ </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.AgentKey-class.html" class="summary-name">AgentKey</a><br />
+ Private key held in a local SSH agent.
+ </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.PKey-class.html" class="summary-name">PKey</a><br />
+ Base class for public keys.
+ </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.HostKeys-class.html" class="summary-name">HostKeys</a><br />
+ Representation of an openssh-style &quot;known hosts&quot; file.
+ </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.SSHConfig-class.html" class="summary-name">SSHConfig</a><br />
+ Representation of config information as stored in the format used
+ by OpenSSH.
+ </td>
+ </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+ <!-- Home link -->
+ <th bgcolor="#70b0f0" class="navbar-select"
+ >&nbsp;&nbsp;&nbsp;Home&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 Jul 6 18:30:26 2008
+ </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-pysrc.html b/docs/paramiko-pysrc.html
new file mode 100644
index 0000000..a81648d
--- /dev/null
+++ b/docs/paramiko-pysrc.html
@@ -0,0 +1,485 @@
+<?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</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 bgcolor="#70b0f0" class="navbar-select"
+ >&nbsp;&nbsp;&nbsp;Home&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">
+ Package&nbsp;paramiko
+ </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-pysrc.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</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="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>
+<a name="L22"></a><tt class="py-lineno"> 22</tt> <tt class="py-line"><tt class="py-docstring">secure (encrypted and authenticated) connections to remote machines. Unlike</tt> </tt>
+<a name="L23"></a><tt class="py-lineno"> 23</tt> <tt class="py-line"><tt class="py-docstring">SSL (aka TLS), the SSH2 protocol does not require heirarchical certificates</tt> </tt>
+<a name="L24"></a><tt class="py-lineno"> 24</tt> <tt class="py-line"><tt class="py-docstring">signed by a powerful central authority. You may know SSH2 as the protocol that</tt> </tt>
+<a name="L25"></a><tt class="py-lineno"> 25</tt> <tt class="py-line"><tt class="py-docstring">replaced C{telnet} and C{rsh} for secure access to remote shells, but the</tt> </tt>
+<a name="L26"></a><tt class="py-lineno"> 26</tt> <tt class="py-line"><tt class="py-docstring">protocol also includes the ability to open arbitrary channels to remote</tt> </tt>
+<a name="L27"></a><tt class="py-lineno"> 27</tt> <tt class="py-line"><tt class="py-docstring">services across an encrypted tunnel. (This is how C{sftp} works, for example.)</tt> </tt>
+<a name="L28"></a><tt class="py-lineno"> 28</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L29"></a><tt class="py-lineno"> 29</tt> <tt class="py-line"><tt class="py-docstring">The high-level client API starts with creation of an L{SSHClient} object.</tt> </tt>
+<a name="L30"></a><tt class="py-lineno"> 30</tt> <tt class="py-line"><tt class="py-docstring">For more direct control, pass a socket (or socket-like object) to a</tt> </tt>
+<a name="L31"></a><tt class="py-lineno"> 31</tt> <tt class="py-line"><tt class="py-docstring">L{Transport}, and use L{start_server &lt;Transport.start_server&gt;} or</tt> </tt>
+<a name="L32"></a><tt class="py-lineno"> 32</tt> <tt class="py-line"><tt class="py-docstring">L{start_client &lt;Transport.start_client&gt;} to negoatite</tt> </tt>
+<a name="L33"></a><tt class="py-lineno"> 33</tt> <tt class="py-line"><tt class="py-docstring">with the remote host as either a server or client. As a client, you are</tt> </tt>
+<a name="L34"></a><tt class="py-lineno"> 34</tt> <tt class="py-line"><tt class="py-docstring">responsible for authenticating using a password or private key, and checking</tt> </tt>
+<a name="L35"></a><tt class="py-lineno"> 35</tt> <tt class="py-line"><tt class="py-docstring">the server's host key. I{(Key signature and verification is done by paramiko,</tt> </tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line"><tt class="py-docstring">but you will need to provide private keys and check that the content of a</tt> </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt> <tt class="py-line"><tt class="py-docstring">public key matches what you expected to see.)} As a server, you are</tt> </tt>
+<a name="L38"></a><tt class="py-lineno"> 38</tt> <tt class="py-line"><tt class="py-docstring">responsible for deciding which users, passwords, and keys to allow, and what</tt> </tt>
+<a name="L39"></a><tt class="py-lineno"> 39</tt> <tt class="py-line"><tt class="py-docstring">kind of channels to allow.</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-docstring">Once you have finished, either side may request flow-controlled L{Channel}s to</tt> </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt> <tt class="py-line"><tt class="py-docstring">the other side, which are python objects that act like sockets, but send and</tt> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt> <tt class="py-line"><tt class="py-docstring">receive data over the encrypted session.</tt> </tt>
+<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">Paramiko is written entirely in python (no C or platform-dependent code) and is</tt> </tt>
+<a name="L46"></a><tt class="py-lineno"> 46</tt> <tt class="py-line"><tt class="py-docstring">released under the GNU Lesser General Public License (LGPL).</tt> </tt>
+<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="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="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>
+<a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">sys</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-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">2</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-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="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>
+<a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-4" class="py-name" targets="Module paramiko.transport=paramiko.transport-module.html"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-4', 'transport', 'link-4');">transport</a></tt> <tt class="py-keyword">import</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
+paramiko.dsskey.randpool
+paramiko.hostkeys.randpool
+paramiko.kex_gex.randpool
+paramiko.kex_group1.randpool
+paramiko.packet.randpool
+paramiko.pkey.randpool
+paramiko.rsakey.randpool
+paramiko.server.randpool
+paramiko.sftp.randpool
+paramiko.sftp_attr.randpool
+paramiko.sftp_client.randpool
+paramiko.sftp_file.randpool
+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-5', 'randpool', 'link-5');">randpool</a></tt><tt class="py-op">,</tt> <tt id="link-6" class="py-name" targets="Class paramiko.SecurityOptions=paramiko.SecurityOptions-class.html"><a title="paramiko.SecurityOptions" class="py-name" href="#" onclick="return doclink('link-6', 'SecurityOptions', 'link-6');">SecurityOptions</a></tt><tt class="py-op">,</tt> <tt id="link-7" class="py-name" targets="Class paramiko.Transport=paramiko.Transport-class.html"><a title="paramiko.Transport" class="py-name" href="#" onclick="return doclink('link-7', 'Transport', 'link-7');">Transport</a></tt> </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-8" class="py-name" targets="Module paramiko.client=paramiko.client-module.html"><a title="paramiko.client" class="py-name" href="#" onclick="return doclink('link-8', 'client', 'link-8');">client</a></tt> <tt class="py-keyword">import</tt> <tt id="link-9" class="py-name" targets="Class paramiko.SSHClient=paramiko.SSHClient-class.html"><a title="paramiko.SSHClient" class="py-name" href="#" onclick="return doclink('link-9', 'SSHClient', 'link-9');">SSHClient</a></tt><tt class="py-op">,</tt> <tt id="link-10" class="py-name" targets="Class paramiko.MissingHostKeyPolicy=paramiko.MissingHostKeyPolicy-class.html"><a title="paramiko.MissingHostKeyPolicy" class="py-name" href="#" onclick="return doclink('link-10', 'MissingHostKeyPolicy', 'link-10');">MissingHostKeyPolicy</a></tt><tt class="py-op">,</tt> <tt id="link-11" class="py-name" targets="Class paramiko.AutoAddPolicy=paramiko.AutoAddPolicy-class.html"><a title="paramiko.AutoAddPolicy" class="py-name" href="#" onclick="return doclink('link-11', 'AutoAddPolicy', 'link-11');">AutoAddPolicy</a></tt><tt class="py-op">,</tt> <tt id="link-12" class="py-name" targets="Class paramiko.RejectPolicy=paramiko.RejectPolicy-class.html"><a title="paramiko.RejectPolicy" class="py-name" href="#" onclick="return doclink('link-12', 'RejectPolicy', 'link-12');">RejectPolicy</a></tt><tt class="py-op">,</tt> <tt id="link-13" class="py-name" targets="Class paramiko.WarningPolicy=paramiko.WarningPolicy-class.html"><a title="paramiko.WarningPolicy" class="py-name" href="#" onclick="return doclink('link-13', 'WarningPolicy', 'link-13');">WarningPolicy</a></tt> </tt>
+<a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-14" class="py-name" targets="Module paramiko.auth_handler=paramiko.auth_handler-module.html"><a title="paramiko.auth_handler" class="py-name" href="#" onclick="return doclink('link-14', 'auth_handler', 'link-14');">auth_handler</a></tt> <tt class="py-keyword">import</tt> <tt class="py-name">AuthHandler</tt> </tt>
+<a name="L72"></a><tt class="py-lineno"> 72</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-15" class="py-name" targets="Module paramiko.channel=paramiko.channel-module.html"><a title="paramiko.channel" class="py-name" href="#" onclick="return doclink('link-15', 'channel', 'link-15');">channel</a></tt> <tt class="py-keyword">import</tt> <tt id="link-16" class="py-name" targets="Class paramiko.Channel=paramiko.Channel-class.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 class="py-name">ChannelFile</tt> </tt>
+<a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-17" 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-17', 'ssh_exception', 'link-17');">ssh_exception</a></tt> <tt class="py-keyword">import</tt> <tt id="link-18" class="py-name" targets="Class paramiko.SSHException=paramiko.SSHException-class.html"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-18', 'SSHException', 'link-18');">SSHException</a></tt><tt class="py-op">,</tt> <tt id="link-19" class="py-name" targets="Class paramiko.PasswordRequiredException=paramiko.PasswordRequiredException-class.html"><a title="paramiko.PasswordRequiredException" class="py-name" href="#" onclick="return doclink('link-19', 'PasswordRequiredException', 'link-19');">PasswordRequiredException</a></tt><tt class="py-op">,</tt> \ </tt>
+<a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"> <tt id="link-20" class="py-name" targets="Class paramiko.BadAuthenticationType=paramiko.BadAuthenticationType-class.html"><a title="paramiko.BadAuthenticationType" class="py-name" href="#" onclick="return doclink('link-20', 'BadAuthenticationType', 'link-20');">BadAuthenticationType</a></tt><tt class="py-op">,</tt> <tt id="link-21" class="py-name" targets="Class paramiko.ChannelException=paramiko.ChannelException-class.html"><a title="paramiko.ChannelException" class="py-name" href="#" onclick="return doclink('link-21', 'ChannelException', 'link-21');">ChannelException</a></tt><tt class="py-op">,</tt> <tt id="link-22" class="py-name" targets="Class paramiko.BadHostKeyException=paramiko.BadHostKeyException-class.html"><a title="paramiko.BadHostKeyException" class="py-name" href="#" onclick="return doclink('link-22', 'BadHostKeyException', 'link-22');">BadHostKeyException</a></tt><tt class="py-op">,</tt> \ </tt>
+<a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"> <tt id="link-23" class="py-name" targets="Class paramiko.AuthenticationException=paramiko.AuthenticationException-class.html"><a title="paramiko.AuthenticationException" class="py-name" href="#" onclick="return doclink('link-23', 'AuthenticationException', 'link-23');">AuthenticationException</a></tt> </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-24" class="py-name" targets="Module paramiko.server=paramiko.server-module.html"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-24', 'server', 'link-24');">server</a></tt> <tt class="py-keyword">import</tt> <tt id="link-25" class="py-name" targets="Class paramiko.ServerInterface=paramiko.ServerInterface-class.html"><a title="paramiko.ServerInterface" class="py-name" href="#" onclick="return doclink('link-25', 'ServerInterface', 'link-25');">ServerInterface</a></tt><tt class="py-op">,</tt> <tt id="link-26" class="py-name" targets="Class paramiko.SubsystemHandler=paramiko.SubsystemHandler-class.html"><a title="paramiko.SubsystemHandler" class="py-name" href="#" onclick="return doclink('link-26', 'SubsystemHandler', 'link-26');">SubsystemHandler</a></tt><tt class="py-op">,</tt> <tt class="py-name">InteractiveQuery</tt> </tt>
+<a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-27" class="py-name" targets="Module paramiko.rsakey=paramiko.rsakey-module.html"><a title="paramiko.rsakey" class="py-name" href="#" onclick="return doclink('link-27', 'rsakey', 'link-27');">rsakey</a></tt> <tt class="py-keyword">import</tt> <tt id="link-28" class="py-name" targets="Class paramiko.RSAKey=paramiko.RSAKey-class.html"><a title="paramiko.RSAKey" class="py-name" href="#" onclick="return doclink('link-28', 'RSAKey', 'link-28');">RSAKey</a></tt> </tt>
+<a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-29" class="py-name" targets="Module paramiko.dsskey=paramiko.dsskey-module.html"><a title="paramiko.dsskey" class="py-name" href="#" onclick="return doclink('link-29', 'dsskey', 'link-29');">dsskey</a></tt> <tt class="py-keyword">import</tt> <tt id="link-30" class="py-name" targets="Class paramiko.DSSKey=paramiko.DSSKey-class.html"><a title="paramiko.DSSKey" class="py-name" href="#" onclick="return doclink('link-30', 'DSSKey', 'link-30');">DSSKey</a></tt> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-31" class="py-name" targets="Module paramiko.sftp=paramiko.sftp-module.html"><a title="paramiko.sftp" class="py-name" href="#" onclick="return doclink('link-31', 'sftp', 'link-31');">sftp</a></tt> <tt class="py-keyword">import</tt> <tt id="link-32" class="py-name" targets="Class paramiko.SFTPError=paramiko.SFTPError-class.html"><a title="paramiko.SFTPError" class="py-name" href="#" onclick="return doclink('link-32', 'SFTPError', 'link-32');">SFTPError</a></tt><tt class="py-op">,</tt> <tt class="py-name">BaseSFTP</tt> </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-33" class="py-name" targets="Module paramiko.sftp_client=paramiko.sftp_client-module.html"><a title="paramiko.sftp_client" class="py-name" href="#" onclick="return doclink('link-33', 'sftp_client', 'link-33');">sftp_client</a></tt> <tt class="py-keyword">import</tt> <tt id="link-34" class="py-name" targets="Class paramiko.SFTP=paramiko.SFTP-class.html"><a title="paramiko.SFTP" class="py-name" href="#" onclick="return doclink('link-34', 'SFTP', 'link-34');">SFTP</a></tt><tt class="py-op">,</tt> <tt id="link-35" class="py-name" targets="Class paramiko.SFTPClient=paramiko.SFTPClient-class.html"><a title="paramiko.SFTPClient" class="py-name" href="#" onclick="return doclink('link-35', 'SFTPClient', 'link-35');">SFTPClient</a></tt> </tt>
+<a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-36" class="py-name" targets="Module paramiko.sftp_server=paramiko.sftp_server-module.html"><a title="paramiko.sftp_server" class="py-name" href="#" onclick="return doclink('link-36', 'sftp_server', 'link-36');">sftp_server</a></tt> <tt class="py-keyword">import</tt> <tt id="link-37" class="py-name" targets="Class paramiko.SFTPServer=paramiko.SFTPServer-class.html"><a title="paramiko.SFTPServer" class="py-name" href="#" onclick="return doclink('link-37', 'SFTPServer', 'link-37');">SFTPServer</a></tt> </tt>
+<a name="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-38" 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-38', 'sftp_attr', 'link-38');">sftp_attr</a></tt> <tt class="py-keyword">import</tt> <tt id="link-39" class="py-name" targets="Class paramiko.SFTPAttributes=paramiko.SFTPAttributes-class.html"><a title="paramiko.SFTPAttributes" class="py-name" href="#" onclick="return doclink('link-39', 'SFTPAttributes', 'link-39');">SFTPAttributes</a></tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-40" 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-40', 'sftp_handle', 'link-40');">sftp_handle</a></tt> <tt class="py-keyword">import</tt> <tt id="link-41" class="py-name" targets="Class paramiko.SFTPHandle=paramiko.SFTPHandle-class.html"><a title="paramiko.SFTPHandle" class="py-name" href="#" onclick="return doclink('link-41', 'SFTPHandle', 'link-41');">SFTPHandle</a></tt> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-42" class="py-name" targets="Module paramiko.sftp_si=paramiko.sftp_si-module.html"><a title="paramiko.sftp_si" class="py-name" href="#" onclick="return doclink('link-42', 'sftp_si', 'link-42');">sftp_si</a></tt> <tt class="py-keyword">import</tt> <tt id="link-43" class="py-name" targets="Class paramiko.SFTPServerInterface=paramiko.SFTPServerInterface-class.html"><a title="paramiko.SFTPServerInterface" class="py-name" href="#" onclick="return doclink('link-43', 'SFTPServerInterface', 'link-43');">SFTPServerInterface</a></tt> </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-44" 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-44', 'sftp_file', 'link-44');">sftp_file</a></tt> <tt class="py-keyword">import</tt> <tt id="link-45" class="py-name" targets="Class paramiko.SFTPFile=paramiko.SFTPFile-class.html"><a title="paramiko.SFTPFile" class="py-name" href="#" onclick="return doclink('link-45', 'SFTPFile', 'link-45');">SFTPFile</a></tt> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-46" class="py-name" targets="Module paramiko.message=paramiko.message-module.html"><a title="paramiko.message" class="py-name" href="#" onclick="return doclink('link-46', 'message', 'link-46');">message</a></tt> <tt class="py-keyword">import</tt> <tt id="link-47" class="py-name" targets="Class paramiko.Message=paramiko.Message-class.html"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-47', 'Message', 'link-47');">Message</a></tt> </tt>
+<a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-48" class="py-name" targets="Module paramiko.packet=paramiko.packet-module.html"><a title="paramiko.packet" class="py-name" href="#" onclick="return doclink('link-48', 'packet', 'link-48');">packet</a></tt> <tt class="py-keyword">import</tt> <tt class="py-name">Packetizer</tt> </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-49" 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-49', 'file', 'link-49');">file</a></tt> <tt class="py-keyword">import</tt> <tt id="link-50" class="py-name" targets="Class paramiko.BufferedFile=paramiko.BufferedFile-class.html"><a title="paramiko.BufferedFile" class="py-name" href="#" onclick="return doclink('link-50', 'BufferedFile', 'link-50');">BufferedFile</a></tt> </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-51" class="py-name" targets="Module paramiko.agent=paramiko.agent-module.html"><a title="paramiko.agent" class="py-name" href="#" onclick="return doclink('link-51', 'agent', 'link-51');">agent</a></tt> <tt class="py-keyword">import</tt> <tt id="link-52" class="py-name" targets="Class paramiko.Agent=paramiko.Agent-class.html"><a title="paramiko.Agent" class="py-name" href="#" onclick="return doclink('link-52', 'Agent', 'link-52');">Agent</a></tt><tt class="py-op">,</tt> <tt id="link-53" class="py-name" targets="Class paramiko.AgentKey=paramiko.AgentKey-class.html"><a title="paramiko.AgentKey" class="py-name" href="#" onclick="return doclink('link-53', 'AgentKey', 'link-53');">AgentKey</a></tt> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-54" class="py-name" targets="Module paramiko.pkey=paramiko.pkey-module.html"><a title="paramiko.pkey" class="py-name" href="#" onclick="return doclink('link-54', 'pkey', 'link-54');">pkey</a></tt> <tt class="py-keyword">import</tt> <tt id="link-55" class="py-name" targets="Class paramiko.PKey=paramiko.PKey-class.html"><a title="paramiko.PKey" class="py-name" href="#" onclick="return doclink('link-55', 'PKey', 'link-55');">PKey</a></tt> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-56" class="py-name" targets="Module paramiko.hostkeys=paramiko.hostkeys-module.html"><a title="paramiko.hostkeys" class="py-name" href="#" onclick="return doclink('link-56', 'hostkeys', 'link-56');">hostkeys</a></tt> <tt class="py-keyword">import</tt> <tt id="link-57" class="py-name" targets="Class paramiko.HostKeys=paramiko.HostKeys-class.html"><a title="paramiko.HostKeys" class="py-name" href="#" onclick="return doclink('link-57', 'HostKeys', 'link-57');">HostKeys</a></tt> </tt>
+<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
+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="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
+paramiko.channel.AUTH_SUCCESSFUL
+paramiko.client.AUTH_SUCCESSFUL
+paramiko.common.AUTH_SUCCESSFUL
+paramiko.dsskey.AUTH_SUCCESSFUL
+paramiko.hostkeys.AUTH_SUCCESSFUL
+paramiko.kex_gex.AUTH_SUCCESSFUL
+paramiko.kex_group1.AUTH_SUCCESSFUL
+paramiko.packet.AUTH_SUCCESSFUL
+paramiko.pkey.AUTH_SUCCESSFUL
+paramiko.rsakey.AUTH_SUCCESSFUL
+paramiko.server.AUTH_SUCCESSFUL
+paramiko.sftp.AUTH_SUCCESSFUL
+paramiko.sftp_attr.AUTH_SUCCESSFUL
+paramiko.sftp_client.AUTH_SUCCESSFUL
+paramiko.sftp_file.AUTH_SUCCESSFUL
+paramiko.sftp_handle.AUTH_SUCCESSFUL
+paramiko.sftp_server.AUTH_SUCCESSFUL
+paramiko.sftp_si.AUTH_SUCCESSFUL
+paramiko.transport.AUTH_SUCCESSFUL
+paramiko.util.AUTH_SUCCESSFUL" class="py-name" href="#" onclick="return doclink('link-62', 'AUTH_SUCCESSFUL', 'link-62');">AUTH_SUCCESSFUL</a></tt><tt class="py-op">,</tt> <tt id="link-63" class="py-name" targets="Variable paramiko.auth_handler.AUTH_PARTIALLY_SUCCESSFUL=paramiko.auth_handler-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.channel.AUTH_PARTIALLY_SUCCESSFUL=paramiko.channel-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.client.AUTH_PARTIALLY_SUCCESSFUL=paramiko.client-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.common.AUTH_PARTIALLY_SUCCESSFUL=paramiko.common-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.dsskey.AUTH_PARTIALLY_SUCCESSFUL=paramiko.dsskey-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.hostkeys.AUTH_PARTIALLY_SUCCESSFUL=paramiko.hostkeys-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.kex_gex.AUTH_PARTIALLY_SUCCESSFUL=paramiko.kex_gex-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.kex_group1.AUTH_PARTIALLY_SUCCESSFUL=paramiko.kex_group1-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.packet.AUTH_PARTIALLY_SUCCESSFUL=paramiko.packet-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.pkey.AUTH_PARTIALLY_SUCCESSFUL=paramiko.pkey-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.rsakey.AUTH_PARTIALLY_SUCCESSFUL=paramiko.rsakey-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.server.AUTH_PARTIALLY_SUCCESSFUL=paramiko.server-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.sftp.AUTH_PARTIALLY_SUCCESSFUL=paramiko.sftp-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.sftp_attr.AUTH_PARTIALLY_SUCCESSFUL=paramiko.sftp_attr-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.sftp_client.AUTH_PARTIALLY_SUCCESSFUL=paramiko.sftp_client-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.sftp_file.AUTH_PARTIALLY_SUCCESSFUL=paramiko.sftp_file-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.sftp_handle.AUTH_PARTIALLY_SUCCESSFUL=paramiko.sftp_handle-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.sftp_server.AUTH_PARTIALLY_SUCCESSFUL=paramiko.sftp_server-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.sftp_si.AUTH_PARTIALLY_SUCCESSFUL=paramiko.sftp_si-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.transport.AUTH_PARTIALLY_SUCCESSFUL=paramiko.transport-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.util.AUTH_PARTIALLY_SUCCESSFUL=paramiko.util-module.html#AUTH_PARTIALLY_SUCCESSFUL"><a title="paramiko.auth_handler.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.channel.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.client.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.common.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.dsskey.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.hostkeys.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.kex_gex.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.kex_group1.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.packet.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.pkey.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.rsakey.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.server.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.sftp.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.sftp_attr.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.sftp_client.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.sftp_file.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.sftp_handle.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.sftp_server.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.sftp_si.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.transport.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.util.AUTH_PARTIALLY_SUCCESSFUL" class="py-name" href="#" onclick="return doclink('link-63', 'AUTH_PARTIALLY_SUCCESSFUL', 'link-63');">AUTH_PARTIALLY_SUCCESSFUL</a></tt><tt class="py-op">,</tt> <tt id="link-64" class="py-name" targets="Variable paramiko.auth_handler.AUTH_FAILED=paramiko.auth_handler-module.html#AUTH_FAILED,Variable paramiko.channel.AUTH_FAILED=paramiko.channel-module.html#AUTH_FAILED,Variable paramiko.client.AUTH_FAILED=paramiko.client-module.html#AUTH_FAILED,Variable paramiko.common.AUTH_FAILED=paramiko.common-module.html#AUTH_FAILED,Variable paramiko.dsskey.AUTH_FAILED=paramiko.dsskey-module.html#AUTH_FAILED,Variable paramiko.hostkeys.AUTH_FAILED=paramiko.hostkeys-module.html#AUTH_FAILED,Variable paramiko.kex_gex.AUTH_FAILED=paramiko.kex_gex-module.html#AUTH_FAILED,Variable paramiko.kex_group1.AUTH_FAILED=paramiko.kex_group1-module.html#AUTH_FAILED,Variable paramiko.packet.AUTH_FAILED=paramiko.packet-module.html#AUTH_FAILED,Variable paramiko.pkey.AUTH_FAILED=paramiko.pkey-module.html#AUTH_FAILED,Variable paramiko.rsakey.AUTH_FAILED=paramiko.rsakey-module.html#AUTH_FAILED,Variable paramiko.server.AUTH_FAILED=paramiko.server-module.html#AUTH_FAILED,Variable paramiko.sftp.AUTH_FAILED=paramiko.sftp-module.html#AUTH_FAILED,Variable paramiko.sftp_attr.AUTH_FAILED=paramiko.sftp_attr-module.html#AUTH_FAILED,Variable paramiko.sftp_client.AUTH_FAILED=paramiko.sftp_client-module.html#AUTH_FAILED,Variable paramiko.sftp_file.AUTH_FAILED=paramiko.sftp_file-module.html#AUTH_FAILED,Variable paramiko.sftp_handle.AUTH_FAILED=paramiko.sftp_handle-module.html#AUTH_FAILED,Variable paramiko.sftp_server.AUTH_FAILED=paramiko.sftp_server-module.html#AUTH_FAILED,Variable paramiko.sftp_si.AUTH_FAILED=paramiko.sftp_si-module.html#AUTH_FAILED,Variable paramiko.transport.AUTH_FAILED=paramiko.transport-module.html#AUTH_FAILED,Variable paramiko.util.AUTH_FAILED=paramiko.util-module.html#AUTH_FAILED"><a title="paramiko.auth_handler.AUTH_FAILED
+paramiko.channel.AUTH_FAILED
+paramiko.client.AUTH_FAILED
+paramiko.common.AUTH_FAILED
+paramiko.dsskey.AUTH_FAILED
+paramiko.hostkeys.AUTH_FAILED
+paramiko.kex_gex.AUTH_FAILED
+paramiko.kex_group1.AUTH_FAILED
+paramiko.packet.AUTH_FAILED
+paramiko.pkey.AUTH_FAILED
+paramiko.rsakey.AUTH_FAILED
+paramiko.server.AUTH_FAILED
+paramiko.sftp.AUTH_FAILED
+paramiko.sftp_attr.AUTH_FAILED
+paramiko.sftp_client.AUTH_FAILED
+paramiko.sftp_file.AUTH_FAILED
+paramiko.sftp_handle.AUTH_FAILED
+paramiko.sftp_server.AUTH_FAILED
+paramiko.sftp_si.AUTH_FAILED
+paramiko.transport.AUTH_FAILED
+paramiko.util.AUTH_FAILED" class="py-name" href="#" onclick="return doclink('link-64', 'AUTH_FAILED', 'link-64');">AUTH_FAILED</a></tt><tt class="py-op">,</tt> \ </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"> <tt id="link-65" 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
+paramiko.dsskey.OPEN_SUCCEEDED
+paramiko.hostkeys.OPEN_SUCCEEDED
+paramiko.kex_gex.OPEN_SUCCEEDED
+paramiko.kex_group1.OPEN_SUCCEEDED
+paramiko.packet.OPEN_SUCCEEDED
+paramiko.pkey.OPEN_SUCCEEDED
+paramiko.rsakey.OPEN_SUCCEEDED
+paramiko.server.OPEN_SUCCEEDED
+paramiko.sftp.OPEN_SUCCEEDED
+paramiko.sftp_attr.OPEN_SUCCEEDED
+paramiko.sftp_client.OPEN_SUCCEEDED
+paramiko.sftp_file.OPEN_SUCCEEDED
+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-65', 'OPEN_SUCCEEDED', 'link-65');">OPEN_SUCCEEDED</a></tt><tt class="py-op">,</tt> <tt id="link-66" 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
+paramiko.dsskey.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.hostkeys.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.kex_gex.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.kex_group1.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.packet.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.pkey.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.rsakey.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.server.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.sftp.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.sftp_attr.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.sftp_client.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.sftp_file.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+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-66', 'OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED', 'link-66');">OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED</a></tt><tt class="py-op">,</tt> <tt id="link-67" class="py-name" targets="Variable paramiko.auth_handler.OPEN_FAILED_CONNECT_FAILED=paramiko.auth_handler-module.html#OPEN_FAILED_CONNECT_FAILED,Variable paramiko.channel.OPEN_FAILED_CONNECT_FAILED=paramiko.channel-module.html#OPEN_FAILED_CONNECT_FAILED,Variable paramiko.client.OPEN_FAILED_CONNECT_FAILED=paramiko.client-module.html#OPEN_FAILED_CONNECT_FAILED,Variable paramiko.common.OPEN_FAILED_CONNECT_FAILED=paramiko.common-module.html#OPEN_FAILED_CONNECT_FAILED,Variable paramiko.dsskey.OPEN_FAILED_CONNECT_FAILED=paramiko.dsskey-module.html#OPEN_FAILED_CONNECT_FAILED,Variable paramiko.hostkeys.OPEN_FAILED_CONNECT_FAILED=paramiko.hostkeys-module.html#OPEN_FAILED_CONNECT_FAILED,Variable paramiko.kex_gex.OPEN_FAILED_CONNECT_FAILED=paramiko.kex_gex-module.html#OPEN_FAILED_CONNECT_FAILED,Variable paramiko.kex_group1.OPEN_FAILED_CONNECT_FAILED=paramiko.kex_group1-module.html#OPEN_FAILED_CONNECT_FAILED,Variable paramiko.packet.OPEN_FAILED_CONNECT_FAILED=paramiko.packet-module.html#OPEN_FAILED_CONNECT_FAILED,Variable paramiko.pkey.OPEN_FAILED_CONNECT_FAILED=paramiko.pkey-module.html#OPEN_FAILED_CONNECT_FAILED,Variable paramiko.rsakey.OPEN_FAILED_CONNECT_FAILED=paramiko.rsakey-module.html#OPEN_FAILED_CONNECT_FAILED,Variable paramiko.server.OPEN_FAILED_CONNECT_FAILED=paramiko.server-module.html#OPEN_FAILED_CONNECT_FAILED,Variable paramiko.sftp.OPEN_FAILED_CONNECT_FAILED=paramiko.sftp-module.html#OPEN_FAILED_CONNECT_FAILED,Variable paramiko.sftp_attr.OPEN_FAILED_CONNECT_FAILED=paramiko.sftp_attr-module.html#OPEN_FAILED_CONNECT_FAILED,Variable paramiko.sftp_client.OPEN_FAILED_CONNECT_FAILED=paramiko.sftp_client-module.html#OPEN_FAILED_CONNECT_FAILED,Variable paramiko.sftp_file.OPEN_FAILED_CONNECT_FAILED=paramiko.sftp_file-module.html#OPEN_FAILED_CONNECT_FAILED,Variable paramiko.sftp_handle.OPEN_FAILED_CONNECT_FAILED=paramiko.sftp_handle-module.html#OPEN_FAILED_CONNECT_FAILED,Variable paramiko.sftp_server.OPEN_FAILED_CONNECT_FAILED=paramiko.sftp_server-module.html#OPEN_FAILED_CONNECT_FAILED,Variable paramiko.sftp_si.OPEN_FAILED_CONNECT_FAILED=paramiko.sftp_si-module.html#OPEN_FAILED_CONNECT_FAILED,Variable paramiko.transport.OPEN_FAILED_CONNECT_FAILED=paramiko.transport-module.html#OPEN_FAILED_CONNECT_FAILED,Variable paramiko.util.OPEN_FAILED_CONNECT_FAILED=paramiko.util-module.html#OPEN_FAILED_CONNECT_FAILED"><a title="paramiko.auth_handler.OPEN_FAILED_CONNECT_FAILED
+paramiko.channel.OPEN_FAILED_CONNECT_FAILED
+paramiko.client.OPEN_FAILED_CONNECT_FAILED
+paramiko.common.OPEN_FAILED_CONNECT_FAILED
+paramiko.dsskey.OPEN_FAILED_CONNECT_FAILED
+paramiko.hostkeys.OPEN_FAILED_CONNECT_FAILED
+paramiko.kex_gex.OPEN_FAILED_CONNECT_FAILED
+paramiko.kex_group1.OPEN_FAILED_CONNECT_FAILED
+paramiko.packet.OPEN_FAILED_CONNECT_FAILED
+paramiko.pkey.OPEN_FAILED_CONNECT_FAILED
+paramiko.rsakey.OPEN_FAILED_CONNECT_FAILED
+paramiko.server.OPEN_FAILED_CONNECT_FAILED
+paramiko.sftp.OPEN_FAILED_CONNECT_FAILED
+paramiko.sftp_attr.OPEN_FAILED_CONNECT_FAILED
+paramiko.sftp_client.OPEN_FAILED_CONNECT_FAILED
+paramiko.sftp_file.OPEN_FAILED_CONNECT_FAILED
+paramiko.sftp_handle.OPEN_FAILED_CONNECT_FAILED
+paramiko.sftp_server.OPEN_FAILED_CONNECT_FAILED
+paramiko.sftp_si.OPEN_FAILED_CONNECT_FAILED
+paramiko.transport.OPEN_FAILED_CONNECT_FAILED
+paramiko.util.OPEN_FAILED_CONNECT_FAILED" class="py-name" href="#" onclick="return doclink('link-67', 'OPEN_FAILED_CONNECT_FAILED', 'link-67');">OPEN_FAILED_CONNECT_FAILED</a></tt><tt class="py-op">,</tt> \ </tt>
+<a name="L103"></a><tt class="py-lineno">103</tt> <tt class="py-line"> <tt id="link-68" class="py-name" targets="Variable paramiko.auth_handler.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE=paramiko.auth_handler-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE,Variable paramiko.channel.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE=paramiko.channel-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE,Variable paramiko.client.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE=paramiko.client-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE,Variable paramiko.common.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE=paramiko.common-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE,Variable paramiko.dsskey.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE=paramiko.dsskey-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE,Variable paramiko.hostkeys.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE=paramiko.hostkeys-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE,Variable paramiko.kex_gex.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE=paramiko.kex_gex-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE,Variable paramiko.kex_group1.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE=paramiko.kex_group1-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE,Variable paramiko.packet.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE=paramiko.packet-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE,Variable paramiko.pkey.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE=paramiko.pkey-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE,Variable paramiko.rsakey.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE=paramiko.rsakey-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE,Variable paramiko.server.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE=paramiko.server-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE,Variable paramiko.sftp.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE=paramiko.sftp-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE,Variable paramiko.sftp_attr.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE=paramiko.sftp_attr-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE,Variable paramiko.sftp_client.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE=paramiko.sftp_client-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE,Variable paramiko.sftp_file.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE=paramiko.sftp_file-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE,Variable paramiko.sftp_handle.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE=paramiko.sftp_handle-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE,Variable paramiko.sftp_server.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE=paramiko.sftp_server-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE,Variable paramiko.sftp_si.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE=paramiko.sftp_si-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE,Variable paramiko.transport.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE=paramiko.transport-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE,Variable paramiko.util.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE=paramiko.util-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE"><a title="paramiko.auth_handler.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.channel.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.client.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.common.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.dsskey.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.hostkeys.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.kex_gex.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.kex_group1.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.packet.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.pkey.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.rsakey.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.server.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.sftp.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.sftp_attr.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.sftp_client.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.sftp_file.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.sftp_handle.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.sftp_server.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.sftp_si.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.transport.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.util.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE" class="py-name" href="#" onclick="return doclink('link-68', 'OPEN_FAILED_UNKNOWN_CHANNEL_TYPE', 'link-68');">OPEN_FAILED_UNKNOWN_CHANNEL_TYPE</a></tt><tt class="py-op">,</tt> <tt id="link-69" class="py-name" targets="Variable paramiko.auth_handler.OPEN_FAILED_RESOURCE_SHORTAGE=paramiko.auth_handler-module.html#OPEN_FAILED_RESOURCE_SHORTAGE,Variable paramiko.channel.OPEN_FAILED_RESOURCE_SHORTAGE=paramiko.channel-module.html#OPEN_FAILED_RESOURCE_SHORTAGE,Variable paramiko.client.OPEN_FAILED_RESOURCE_SHORTAGE=paramiko.client-module.html#OPEN_FAILED_RESOURCE_SHORTAGE,Variable paramiko.common.OPEN_FAILED_RESOURCE_SHORTAGE=paramiko.common-module.html#OPEN_FAILED_RESOURCE_SHORTAGE,Variable paramiko.dsskey.OPEN_FAILED_RESOURCE_SHORTAGE=paramiko.dsskey-module.html#OPEN_FAILED_RESOURCE_SHORTAGE,Variable paramiko.hostkeys.OPEN_FAILED_RESOURCE_SHORTAGE=paramiko.hostkeys-module.html#OPEN_FAILED_RESOURCE_SHORTAGE,Variable paramiko.kex_gex.OPEN_FAILED_RESOURCE_SHORTAGE=paramiko.kex_gex-module.html#OPEN_FAILED_RESOURCE_SHORTAGE,Variable paramiko.kex_group1.OPEN_FAILED_RESOURCE_SHORTAGE=paramiko.kex_group1-module.html#OPEN_FAILED_RESOURCE_SHORTAGE,Variable paramiko.packet.OPEN_FAILED_RESOURCE_SHORTAGE=paramiko.packet-module.html#OPEN_FAILED_RESOURCE_SHORTAGE,Variable paramiko.pkey.OPEN_FAILED_RESOURCE_SHORTAGE=paramiko.pkey-module.html#OPEN_FAILED_RESOURCE_SHORTAGE,Variable paramiko.rsakey.OPEN_FAILED_RESOURCE_SHORTAGE=paramiko.rsakey-module.html#OPEN_FAILED_RESOURCE_SHORTAGE,Variable paramiko.server.OPEN_FAILED_RESOURCE_SHORTAGE=paramiko.server-module.html#OPEN_FAILED_RESOURCE_SHORTAGE,Variable paramiko.sftp.OPEN_FAILED_RESOURCE_SHORTAGE=paramiko.sftp-module.html#OPEN_FAILED_RESOURCE_SHORTAGE,Variable paramiko.sftp_attr.OPEN_FAILED_RESOURCE_SHORTAGE=paramiko.sftp_attr-module.html#OPEN_FAILED_RESOURCE_SHORTAGE,Variable paramiko.sftp_client.OPEN_FAILED_RESOURCE_SHORTAGE=paramiko.sftp_client-module.html#OPEN_FAILED_RESOURCE_SHORTAGE,Variable paramiko.sftp_file.OPEN_FAILED_RESOURCE_SHORTAGE=paramiko.sftp_file-module.html#OPEN_FAILED_RESOURCE_SHORTAGE,Variable paramiko.sftp_handle.OPEN_FAILED_RESOURCE_SHORTAGE=paramiko.sftp_handle-module.html#OPEN_FAILED_RESOURCE_SHORTAGE,Variable paramiko.sftp_server.OPEN_FAILED_RESOURCE_SHORTAGE=paramiko.sftp_server-module.html#OPEN_FAILED_RESOURCE_SHORTAGE,Variable paramiko.sftp_si.OPEN_FAILED_RESOURCE_SHORTAGE=paramiko.sftp_si-module.html#OPEN_FAILED_RESOURCE_SHORTAGE,Variable paramiko.transport.OPEN_FAILED_RESOURCE_SHORTAGE=paramiko.transport-module.html#OPEN_FAILED_RESOURCE_SHORTAGE,Variable paramiko.util.OPEN_FAILED_RESOURCE_SHORTAGE=paramiko.util-module.html#OPEN_FAILED_RESOURCE_SHORTAGE"><a title="paramiko.auth_handler.OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.channel.OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.client.OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.common.OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.dsskey.OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.hostkeys.OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.kex_gex.OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.kex_group1.OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.packet.OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.pkey.OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.rsakey.OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.server.OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.sftp.OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.sftp_attr.OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.sftp_client.OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.sftp_file.OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.sftp_handle.OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.sftp_server.OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.sftp_si.OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.transport.OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.util.OPEN_FAILED_RESOURCE_SHORTAGE" class="py-name" href="#" onclick="return doclink('link-69', 'OPEN_FAILED_RESOURCE_SHORTAGE', 'link-69');">OPEN_FAILED_RESOURCE_SHORTAGE</a></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 class="py-keyword">from</tt> <tt id="link-70" class="py-name"><a title="paramiko.sftp" class="py-name" href="#" onclick="return doclink('link-70', 'sftp', 'link-31');">sftp</a></tt> <tt class="py-keyword">import</tt> <tt id="link-71" 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-71', 'SFTP_OK', 'link-71');">SFTP_OK</a></tt><tt class="py-op">,</tt> <tt id="link-72" 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-72', 'SFTP_EOF', 'link-72');">SFTP_EOF</a></tt><tt class="py-op">,</tt> <tt id="link-73" 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-73', 'SFTP_NO_SUCH_FILE', 'link-73');">SFTP_NO_SUCH_FILE</a></tt><tt class="py-op">,</tt> <tt id="link-74" 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-74', 'SFTP_PERMISSION_DENIED', 'link-74');">SFTP_PERMISSION_DENIED</a></tt><tt class="py-op">,</tt> <tt id="link-75" 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
+paramiko.sftp_file.SFTP_FAILURE
+paramiko.sftp_handle.SFTP_FAILURE
+paramiko.sftp_server.SFTP_FAILURE
+paramiko.sftp_si.SFTP_FAILURE" class="py-name" href="#" onclick="return doclink('link-75', 'SFTP_FAILURE', 'link-75');">SFTP_FAILURE</a></tt><tt class="py-op">,</tt> \ </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"> <tt id="link-76" class="py-name" targets="Variable paramiko.sftp.SFTP_BAD_MESSAGE=paramiko.sftp-module.html#SFTP_BAD_MESSAGE,Variable paramiko.sftp_attr.SFTP_BAD_MESSAGE=paramiko.sftp_attr-module.html#SFTP_BAD_MESSAGE,Variable paramiko.sftp_client.SFTP_BAD_MESSAGE=paramiko.sftp_client-module.html#SFTP_BAD_MESSAGE,Variable paramiko.sftp_file.SFTP_BAD_MESSAGE=paramiko.sftp_file-module.html#SFTP_BAD_MESSAGE,Variable paramiko.sftp_handle.SFTP_BAD_MESSAGE=paramiko.sftp_handle-module.html#SFTP_BAD_MESSAGE,Variable paramiko.sftp_server.SFTP_BAD_MESSAGE=paramiko.sftp_server-module.html#SFTP_BAD_MESSAGE,Variable paramiko.sftp_si.SFTP_BAD_MESSAGE=paramiko.sftp_si-module.html#SFTP_BAD_MESSAGE"><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-76', 'SFTP_BAD_MESSAGE', 'link-76');">SFTP_BAD_MESSAGE</a></tt><tt class="py-op">,</tt> <tt id="link-77" class="py-name" targets="Variable paramiko.sftp.SFTP_NO_CONNECTION=paramiko.sftp-module.html#SFTP_NO_CONNECTION,Variable paramiko.sftp_attr.SFTP_NO_CONNECTION=paramiko.sftp_attr-module.html#SFTP_NO_CONNECTION,Variable paramiko.sftp_client.SFTP_NO_CONNECTION=paramiko.sftp_client-module.html#SFTP_NO_CONNECTION,Variable paramiko.sftp_file.SFTP_NO_CONNECTION=paramiko.sftp_file-module.html#SFTP_NO_CONNECTION,Variable paramiko.sftp_handle.SFTP_NO_CONNECTION=paramiko.sftp_handle-module.html#SFTP_NO_CONNECTION,Variable paramiko.sftp_server.SFTP_NO_CONNECTION=paramiko.sftp_server-module.html#SFTP_NO_CONNECTION,Variable paramiko.sftp_si.SFTP_NO_CONNECTION=paramiko.sftp_si-module.html#SFTP_NO_CONNECTION"><a title="paramiko.sftp.SFTP_NO_CONNECTION
+paramiko.sftp_attr.SFTP_NO_CONNECTION
+paramiko.sftp_client.SFTP_NO_CONNECTION
+paramiko.sftp_file.SFTP_NO_CONNECTION
+paramiko.sftp_handle.SFTP_NO_CONNECTION
+paramiko.sftp_server.SFTP_NO_CONNECTION
+paramiko.sftp_si.SFTP_NO_CONNECTION" class="py-name" href="#" onclick="return doclink('link-77', 'SFTP_NO_CONNECTION', 'link-77');">SFTP_NO_CONNECTION</a></tt><tt class="py-op">,</tt> <tt id="link-78" class="py-name" targets="Variable paramiko.sftp.SFTP_CONNECTION_LOST=paramiko.sftp-module.html#SFTP_CONNECTION_LOST,Variable paramiko.sftp_attr.SFTP_CONNECTION_LOST=paramiko.sftp_attr-module.html#SFTP_CONNECTION_LOST,Variable paramiko.sftp_client.SFTP_CONNECTION_LOST=paramiko.sftp_client-module.html#SFTP_CONNECTION_LOST,Variable paramiko.sftp_file.SFTP_CONNECTION_LOST=paramiko.sftp_file-module.html#SFTP_CONNECTION_LOST,Variable paramiko.sftp_handle.SFTP_CONNECTION_LOST=paramiko.sftp_handle-module.html#SFTP_CONNECTION_LOST,Variable paramiko.sftp_server.SFTP_CONNECTION_LOST=paramiko.sftp_server-module.html#SFTP_CONNECTION_LOST,Variable paramiko.sftp_si.SFTP_CONNECTION_LOST=paramiko.sftp_si-module.html#SFTP_CONNECTION_LOST"><a title="paramiko.sftp.SFTP_CONNECTION_LOST
+paramiko.sftp_attr.SFTP_CONNECTION_LOST
+paramiko.sftp_client.SFTP_CONNECTION_LOST
+paramiko.sftp_file.SFTP_CONNECTION_LOST
+paramiko.sftp_handle.SFTP_CONNECTION_LOST
+paramiko.sftp_server.SFTP_CONNECTION_LOST
+paramiko.sftp_si.SFTP_CONNECTION_LOST" class="py-name" href="#" onclick="return doclink('link-78', 'SFTP_CONNECTION_LOST', 'link-78');">SFTP_CONNECTION_LOST</a></tt><tt class="py-op">,</tt> <tt id="link-79" 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-79', 'SFTP_OP_UNSUPPORTED', 'link-79');">SFTP_OP_UNSUPPORTED</a></tt> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line"><tt class="py-name">__all__</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt> <tt class="py-string">'Transport'</tt><tt class="py-op">,</tt> </tt>
+<a name="L109"></a><tt class="py-lineno">109</tt> <tt class="py-line"> <tt class="py-string">'SSHClient'</tt><tt class="py-op">,</tt> </tt>
+<a name="L110"></a><tt class="py-lineno">110</tt> <tt class="py-line"> <tt class="py-string">'MissingHostKeyPolicy'</tt><tt class="py-op">,</tt> </tt>
+<a name="L111"></a><tt class="py-lineno">111</tt> <tt class="py-line"> <tt class="py-string">'AutoAddPolicy'</tt><tt class="py-op">,</tt> </tt>
+<a name="L112"></a><tt class="py-lineno">112</tt> <tt class="py-line"> <tt class="py-string">'RejectPolicy'</tt><tt class="py-op">,</tt> </tt>
+<a name="L113"></a><tt class="py-lineno">113</tt> <tt class="py-line"> <tt class="py-string">'WarningPolicy'</tt><tt class="py-op">,</tt> </tt>
+<a name="L114"></a><tt class="py-lineno">114</tt> <tt class="py-line"> <tt class="py-string">'SecurityOptions'</tt><tt class="py-op">,</tt> </tt>
+<a name="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"> <tt class="py-string">'SubsystemHandler'</tt><tt class="py-op">,</tt> </tt>
+<a name="L116"></a><tt class="py-lineno">116</tt> <tt class="py-line"> <tt class="py-string">'Channel'</tt><tt class="py-op">,</tt> </tt>
+<a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"> <tt class="py-string">'PKey'</tt><tt class="py-op">,</tt> </tt>
+<a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"> <tt class="py-string">'RSAKey'</tt><tt class="py-op">,</tt> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"> <tt class="py-string">'DSSKey'</tt><tt class="py-op">,</tt> </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt> <tt class="py-line"> <tt class="py-string">'Message'</tt><tt class="py-op">,</tt> </tt>
+<a name="L121"></a><tt class="py-lineno">121</tt> <tt class="py-line"> <tt class="py-string">'SSHException'</tt><tt class="py-op">,</tt> </tt>
+<a name="L122"></a><tt class="py-lineno">122</tt> <tt class="py-line"> <tt class="py-string">'AuthenticationException'</tt><tt class="py-op">,</tt> </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt> <tt class="py-line"> <tt class="py-string">'PasswordRequiredException'</tt><tt class="py-op">,</tt> </tt>
+<a name="L124"></a><tt class="py-lineno">124</tt> <tt class="py-line"> <tt class="py-string">'BadAuthenticationType'</tt><tt class="py-op">,</tt> </tt>
+<a name="L125"></a><tt class="py-lineno">125</tt> <tt class="py-line"> <tt class="py-string">'ChannelException'</tt><tt class="py-op">,</tt> </tt>
+<a name="L126"></a><tt class="py-lineno">126</tt> <tt class="py-line"> <tt class="py-string">'BadHostKeyException'</tt><tt class="py-op">,</tt> </tt>
+<a name="L127"></a><tt class="py-lineno">127</tt> <tt class="py-line"> <tt class="py-string">'SFTP'</tt><tt class="py-op">,</tt> </tt>
+<a name="L128"></a><tt class="py-lineno">128</tt> <tt class="py-line"> <tt class="py-string">'SFTPFile'</tt><tt class="py-op">,</tt> </tt>
+<a name="L129"></a><tt class="py-lineno">129</tt> <tt class="py-line"> <tt class="py-string">'SFTPHandle'</tt><tt class="py-op">,</tt> </tt>
+<a name="L130"></a><tt class="py-lineno">130</tt> <tt class="py-line"> <tt class="py-string">'SFTPClient'</tt><tt class="py-op">,</tt> </tt>
+<a name="L131"></a><tt class="py-lineno">131</tt> <tt class="py-line"> <tt class="py-string">'SFTPServer'</tt><tt class="py-op">,</tt> </tt>
+<a name="L132"></a><tt class="py-lineno">132</tt> <tt class="py-line"> <tt class="py-string">'SFTPError'</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">'SFTPAttributes'</tt><tt class="py-op">,</tt> </tt>
+<a name="L134"></a><tt class="py-lineno">134</tt> <tt class="py-line"> <tt class="py-string">'SFTPServerInterface'</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">'ServerInterface'</tt><tt class="py-op">,</tt> </tt>
+<a name="L136"></a><tt class="py-lineno">136</tt> <tt class="py-line"> <tt class="py-string">'BufferedFile'</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">'Agent'</tt><tt class="py-op">,</tt> </tt>
+<a name="L138"></a><tt class="py-lineno">138</tt> <tt class="py-line"> <tt class="py-string">'AgentKey'</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">'HostKeys'</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">'SSHConfig'</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">'util'</tt> <tt class="py-op">]</tt> </tt>
+<a name="L142"></a><tt class="py-lineno">142</tt> <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+ <!-- Home link -->
+ <th bgcolor="#70b0f0" class="navbar-select"
+ >&nbsp;&nbsp;&nbsp;Home&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 Jul 6 18:30:33 2008
+ </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.Agent-class.html b/docs/paramiko.Agent-class.html
new file mode 100644
index 0000000..18e1f3a
--- /dev/null
+++ b/docs/paramiko.Agent-class.html
@@ -0,0 +1,233 @@
+<?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.Agent</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> ::
+ Class&nbsp;Agent
+ </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.Agent-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class Agent</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko-pysrc.html#Agent">source&nbsp;code</a></span></p>
+<p>Client interface for using private keys from an SSH agent running on
+ the local machine. If an SSH agent is running, this class can be used to
+ connect to it and retreive <a href="paramiko.PKey-class.html"
+ class="link">PKey</a> objects which can be used when attempting to
+ authenticate to remote SSH servers.</p>
+ <p>Because the SSH agent protocol uses environment variables and
+ unix-domain sockets, this probably doesn't work on Windows. It does work
+ on most posix platforms though (Linux and MacOS X, for example).</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.Agent-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Open a session with the local machine's SSH agent, if one is running.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.agent-pysrc.html">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="close"></a><span class="summary-sig-name">close</span>(<span class="summary-sig-arg">self</span>)</span><br />
+ Close the SSH agent connection.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.agent-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">tuple of <a href="paramiko.AgentKey-class.html"
+ class="link">AgentKey</a></span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.Agent-class.html#get_keys" class="summary-sig-name">get_keys</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Return the list of keys available through the SSH agent, if any.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.agent-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </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>
+ <br /><em class="fname">(Constructor)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.agent-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Open a session with the local machine's SSH agent, if one is running.
+ If no agent is running, initialization will succeed, but <a
+ href="paramiko.Agent-class.html#get_keys" class="link">get_keys</a> will
+ return an empty tuple.</p>
+ <dl class="fields">
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'><a href="paramiko.SSHException-class.html">SSHException</a></strong></code> - if an SSH agent is found, but speaks an incompatible protocol</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="get_keys"></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">get_keys</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.agent-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return the list of keys available through the SSH agent, if any. If
+ no SSH agent was running (or it couldn't be contacted), an empty list
+ will be returned.</p>
+ <dl class="fields">
+ <dt>Returns: tuple of <a href="paramiko.AgentKey-class.html"
+ class="link">AgentKey</a></dt>
+ <dd>a list of keys available on the SSH agent</dd>
+ </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 Jul 6 18:30:28 2008
+ </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.AgentKey-class.html b/docs/paramiko.AgentKey-class.html
new file mode 100644
index 0000000..7b09946
--- /dev/null
+++ b/docs/paramiko.AgentKey-class.html
@@ -0,0 +1,396 @@
+<?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.AgentKey</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> ::
+ Class&nbsp;AgentKey
+ </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.AgentKey-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class AgentKey</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko-pysrc.html#AgentKey">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+object --+
+ |
+ <a href="paramiko.PKey-class.html">PKey</a> --+
+ |
+ <strong class="uidshort">AgentKey</strong>
+</pre>
+
+<hr />
+<p>Private key held in a local SSH agent. This type of key can be used
+ for authenticating to a remote server (signing). Most other key
+ operations work as expected.</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.AgentKey-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">agent</span>,
+ <span class="summary-sig-arg">blob</span>)</span><br />
+ Create a new instance of this public key type.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.agent-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">str</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.AgentKey-class.html#__str__" class="summary-sig-name">__str__</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Return a string of an SSH <a href="paramiko.Message-class.html"
+ class="link">Message</a> made up of the public part(s) of this key.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.agent-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">str</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.AgentKey-class.html#get_name" class="summary-sig-name">get_name</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Return the name of this private key implementation.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.agent-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"><a href="paramiko.Message-class.html" class="link">Message</a></span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.AgentKey-class.html#sign_ssh_data" class="summary-sig-name">sign_ssh_data</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">randpool</span>,
+ <span class="summary-sig-arg">data</span>)</span><br />
+ Sign a blob of data with this private key, and return a <a
+ href="paramiko.Message-class.html" class="link">Message</a>
+ representing an SSH signature message.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.agent-pysrc.html">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><a href="paramiko.PKey-class.html">PKey</a></code></b>:
+ <code><a href="paramiko.PKey-class.html#__cmp__">__cmp__</a></code>,
+ <code><a href="paramiko.PKey-class.html#can_sign">can_sign</a></code>,
+ <code><a href="paramiko.PKey-class.html#get_base64">get_base64</a></code>,
+ <code><a href="paramiko.PKey-class.html#get_bits">get_bits</a></code>,
+ <code><a href="paramiko.PKey-class.html#get_fingerprint">get_fingerprint</a></code>,
+ <code><a href="paramiko.PKey-class.html#verify_ssh_sig">verify_ssh_sig</a></code>,
+ <code><a href="paramiko.PKey-class.html#write_private_key">write_private_key</a></code>,
+ <code><a href="paramiko.PKey-class.html#write_private_key_file">write_private_key_file</a></code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__delattr__</code>,
+ <code>__getattribute__</code>,
+ <code>__hash__</code>,
+ <code>__new__</code>,
+ <code>__reduce__</code>,
+ <code>__reduce_ex__</code>,
+ <code>__repr__</code>,
+ <code>__setattr__</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 colspan="2" class="summary">
+ <p class="indent-wrapped-lines"><b>Inherited from <code><a href="paramiko.PKey-class.html">PKey</a></code></b>:
+ <code><a href="paramiko.PKey-class.html#from_private_key">from_private_key</a></code>,
+ <code><a href="paramiko.PKey-class.html#from_private_key_file">from_private_key_file</a></code>
+ </p>
+ </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">agent</span>,
+ <span class="sig-arg">blob</span>)</span>
+ <br /><em class="fname">(Constructor)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.agent-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Create a new instance of this public key type. If <code>msg</code> is
+ given, the key's public part(s) will be filled in from the message. If
+ <code>data</code> is given, the key's public part(s) will be filled in
+ from the string.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>msg</code></strong> - an optional SSH <a href="paramiko.Message-class.html"
+ class="link">Message</a> containing a public key of this type.</li>
+ <li><strong class="pname"><code>data</code></strong> - an optional string containing a public key of this type</li>
+ </ul></dd>
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'><a href="paramiko.SSHException-class.html">SSHException</a></strong></code> - if a key cannot be created from the <code>data</code> or
+ <code>msg</code> given, or no key was passed in.</li>
+ </ul></dd>
+ <dt>Overrides:
+ object.__init__
+ <dd><em class="note">(inherited documentation)</em></dd>
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="__str__"></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">__str__</span>(<span class="sig-arg">self</span>)</span>
+ <br /><em class="fname">(Informal representation operator)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.agent-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return a string of an SSH <a href="paramiko.Message-class.html"
+ class="link">Message</a> made up of the public part(s) of this key. This
+ string is suitable for passing to <a
+ href="paramiko.AgentKey-class.html#__init__" class="link">__init__</a> to
+ re-create the key object later.</p>
+ <dl class="fields">
+ <dt>Returns: str</dt>
+ <dd>string representation of an SSH key message.</dd>
+ <dt>Overrides:
+ object.__str__
+ <dd><em class="note">(inherited documentation)</em></dd>
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="get_name"></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">get_name</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.agent-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return the name of this private key implementation.</p>
+ <dl class="fields">
+ <dt>Returns: str</dt>
+ <dd>name of this private key type, in SSH terminology (for example,
+ <code>&quot;ssh-rsa&quot;</code>).</dd>
+ <dt>Overrides:
+ <a href="paramiko.PKey-class.html#get_name">PKey.get_name</a>
+ <dd><em class="note">(inherited documentation)</em></dd>
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="sign_ssh_data"></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">sign_ssh_data</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">randpool</span>,
+ <span class="sig-arg">data</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.agent-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Sign a blob of data with this private key, and return a <a
+ href="paramiko.Message-class.html" class="link">Message</a> representing
+ an SSH signature message.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>randpool</code></strong> - a secure random number generator.</li>
+ <li><strong class="pname"><code>data</code></strong> - the data to sign.</li>
+ </ul></dd>
+ <dt>Returns: <a href="paramiko.Message-class.html" class="link">Message</a></dt>
+ <dd>an SSH signature message.</dd>
+ <dt>Overrides:
+ <a href="paramiko.PKey-class.html#sign_ssh_data">PKey.sign_ssh_data</a>
+ <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 Jul 6 18:30:28 2008
+ </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.AuthenticationException-class.html b/docs/paramiko.AuthenticationException-class.html
new file mode 100644
index 0000000..9056815
--- /dev/null
+++ b/docs/paramiko.AuthenticationException-class.html
@@ -0,0 +1,180 @@
+<?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.AuthenticationException</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> ::
+ Class&nbsp;AuthenticationException
+ </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.AuthenticationException-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class AuthenticationException</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko-pysrc.html#AuthenticationException">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+ object --+
+ |
+exceptions.BaseException --+
+ |
+ exceptions.Exception --+
+ |
+ <a href="paramiko.SSHException-class.html">SSHException</a> --+
+ |
+ <strong class="uidshort">AuthenticationException</strong>
+</pre>
+
+<dl><dt>Known Subclasses:</dt>
+<dd>
+ <ul class="subclass-list">
+<li><a href="paramiko.BadAuthenticationType-class.html">BadAuthenticationType</a></li><li>, <a href="paramiko.PasswordRequiredException-class.html">PasswordRequiredException</a></li><li>, <a href="paramiko.ssh_exception.PartialAuthentication-class.html">ssh_exception.PartialAuthentication</a></li> </ul>
+</dd></dl>
+
+<hr />
+<p>Exception raised when authentication failed for some reason. It may
+ be possible to retry with different credentials. (Other classes specify
+ more specific reasons.)</p>
+
+<hr />
+<div class="fields"> <p><strong>Since:</strong>
+ 1.6
+ </p>
+</div><!-- ==================== 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 colspan="2" class="summary">
+ <p class="indent-wrapped-lines"><b>Inherited from <code>exceptions.Exception</code></b>:
+ <code>__init__</code>,
+ <code>__new__</code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>exceptions.BaseException</code></b>:
+ <code>__delattr__</code>,
+ <code>__getattribute__</code>,
+ <code>__getitem__</code>,
+ <code>__reduce__</code>,
+ <code>__repr__</code>,
+ <code>__setattr__</code>,
+ <code>__setstate__</code>,
+ <code>__str__</code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__hash__</code>,
+ <code>__reduce_ex__</code>
+ </p>
+ </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>exceptions.BaseException</code></b>:
+ <code>args</code>,
+ <code>message</code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__class__</code>
+ </p>
+ </td>
+ </tr>
+</table>
+<!-- ==================== 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 Jul 6 18:30:28 2008
+ </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.AutoAddPolicy-class.html b/docs/paramiko.AutoAddPolicy-class.html
new file mode 100644
index 0000000..36cecb0
--- /dev/null
+++ b/docs/paramiko.AutoAddPolicy-class.html
@@ -0,0 +1,221 @@
+<?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.AutoAddPolicy</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> ::
+ Class&nbsp;AutoAddPolicy
+ </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.AutoAddPolicy-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class AutoAddPolicy</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko-pysrc.html#AutoAddPolicy">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+ object --+
+ |
+<a href="paramiko.MissingHostKeyPolicy-class.html">MissingHostKeyPolicy</a> --+
+ |
+ <strong class="uidshort">AutoAddPolicy</strong>
+</pre>
+
+<hr />
+<p>Policy for automatically adding the hostname and new host key to the
+ local <a href="paramiko.HostKeys-class.html" class="link">HostKeys</a>
+ object, and saving it. This is used by <a
+ href="paramiko.SSHClient-class.html" class="link">SSHClient</a>.</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.AutoAddPolicy-class.html#missing_host_key" class="summary-sig-name">missing_host_key</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">client</span>,
+ <span class="summary-sig-arg">hostname</span>,
+ <span class="summary-sig-arg">key</span>)</span><br />
+ Called when an <a href="paramiko.SSHClient-class.html"
+ class="link">SSHClient</a> receives a server key for a server that
+ isn't in either the system or local <a
+ href="paramiko.HostKeys-class.html" class="link">HostKeys</a> object.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.client-pysrc.html">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>__getattribute__</code>,
+ <code>__hash__</code>,
+ <code>__init__</code>,
+ <code>__new__</code>,
+ <code>__reduce__</code>,
+ <code>__reduce_ex__</code>,
+ <code>__repr__</code>,
+ <code>__setattr__</code>,
+ <code>__str__</code>
+ </p>
+ </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="missing_host_key"></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">missing_host_key</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">client</span>,
+ <span class="sig-arg">hostname</span>,
+ <span class="sig-arg">key</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.client-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Called when an <a href="paramiko.SSHClient-class.html"
+ class="link">SSHClient</a> receives a server key for a server that isn't
+ in either the system or local <a href="paramiko.HostKeys-class.html"
+ class="link">HostKeys</a> object. To accept the key, simply return. To
+ reject, raised an exception (which will be passed to the calling
+ application).</p>
+ <dl class="fields">
+ <dt>Overrides:
+ <a href="paramiko.MissingHostKeyPolicy-class.html#missing_host_key">MissingHostKeyPolicy.missing_host_key</a>
+ <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 Jul 6 18:30:28 2008
+ </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.BadAuthenticationType-class.html b/docs/paramiko.BadAuthenticationType-class.html
new file mode 100644
index 0000000..bf7ba8a
--- /dev/null
+++ b/docs/paramiko.BadAuthenticationType-class.html
@@ -0,0 +1,291 @@
+<?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.BadAuthenticationType</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> ::
+ Class&nbsp;BadAuthenticationType
+ </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.BadAuthenticationType-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class BadAuthenticationType</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko-pysrc.html#BadAuthenticationType">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+ object --+
+ |
+exceptions.BaseException --+
+ |
+ exceptions.Exception --+
+ |
+ <a href="paramiko.SSHException-class.html">SSHException</a> --+
+ |
+ <a href="paramiko.AuthenticationException-class.html">AuthenticationException</a> --+
+ |
+ <strong class="uidshort">BadAuthenticationType</strong>
+</pre>
+
+<hr />
+<p>Exception raised when an authentication type (like password) is used,
+ but the server isn't allowing that type. (It may only allow public-key,
+ for example.)</p>
+
+<hr />
+<div class="fields"> <p><strong>Since:</strong>
+ 1.1
+ </p>
+</div><!-- ==================== 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.BadAuthenticationType-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">explanation</span>,
+ <span class="summary-sig-arg">types</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.ssh_exception-pysrc.html">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 href="paramiko.BadAuthenticationType-class.html#__str__" class="summary-sig-name">__str__</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ str(x)</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.ssh_exception-pysrc.html">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>exceptions.Exception</code></b>:
+ <code>__new__</code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>exceptions.BaseException</code></b>:
+ <code>__delattr__</code>,
+ <code>__getattribute__</code>,
+ <code>__getitem__</code>,
+ <code>__reduce__</code>,
+ <code>__repr__</code>,
+ <code>__setattr__</code>,
+ <code>__setstate__</code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__hash__</code>,
+ <code>__reduce_ex__</code>
+ </p>
+ </td>
+ </tr>
+</table>
+<!-- ==================== INSTANCE VARIABLES ==================== -->
+<a name="section-InstanceVariables"></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 Variables</span></td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">list</span>
+ </td><td class="summary">
+ <a name="allowed_types"></a><span class="summary-name">allowed_types</span> = <code title="[]"><code class="variable-group">[</code><code class="variable-group">]</code></code><br />
+ list of allowed authentication types provided by the server (possible
+ values are: <code>&quot;none&quot;</code>,
+ <code>&quot;password&quot;</code>, and
+ <code>&quot;publickey&quot;</code>).
+ </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>exceptions.BaseException</code></b>:
+ <code>args</code>,
+ <code>message</code>
+ </p>
+ <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">explanation</span>,
+ <span class="sig-arg">types</span>)</span>
+ <br /><em class="fname">(Constructor)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.ssh_exception-pysrc.html">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>
+<a name="__str__"></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">__str__</span>(<span class="sig-arg">self</span>)</span>
+ <br /><em class="fname">(Informal representation operator)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.ssh_exception-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>str(x)</p>
+ <dl class="fields">
+ <dt>Overrides:
+ object.__str__
+ <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 Jul 6 18:30:28 2008
+ </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.BadHostKeyException-class.html b/docs/paramiko.BadHostKeyException-class.html
new file mode 100644
index 0000000..20d2814
--- /dev/null
+++ b/docs/paramiko.BadHostKeyException-class.html
@@ -0,0 +1,263 @@
+<?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.BadHostKeyException</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> ::
+ Class&nbsp;BadHostKeyException
+ </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.BadHostKeyException-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class BadHostKeyException</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko-pysrc.html#BadHostKeyException">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+ object --+
+ |
+exceptions.BaseException --+
+ |
+ exceptions.Exception --+
+ |
+ <a href="paramiko.SSHException-class.html">SSHException</a> --+
+ |
+ <strong class="uidshort">BadHostKeyException</strong>
+</pre>
+
+<hr />
+<p>The host key given by the SSH server did not match what we were
+ expecting.</p>
+
+<hr />
+<div class="fields"> <p><strong>Since:</strong>
+ 1.6
+ </p>
+</div><!-- ==================== 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.BadHostKeyException-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">hostname</span>,
+ <span class="summary-sig-arg">got_key</span>,
+ <span class="summary-sig-arg">expected_key</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.ssh_exception-pysrc.html">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>exceptions.Exception</code></b>:
+ <code>__new__</code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>exceptions.BaseException</code></b>:
+ <code>__delattr__</code>,
+ <code>__getattribute__</code>,
+ <code>__getitem__</code>,
+ <code>__reduce__</code>,
+ <code>__repr__</code>,
+ <code>__setattr__</code>,
+ <code>__setstate__</code>,
+ <code>__str__</code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__hash__</code>,
+ <code>__reduce_ex__</code>
+ </p>
+ </td>
+ </tr>
+</table>
+<!-- ==================== INSTANCE VARIABLES ==================== -->
+<a name="section-InstanceVariables"></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 Variables</span></td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"><a href="paramiko.PKey-class.html" class="link">PKey</a></span>
+ </td><td class="summary">
+ <a name="expected_key"></a><span class="summary-name">expected_key</span><br />
+ the host key expected
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">str</span>
+ </td><td class="summary">
+ <a name="hostname"></a><span class="summary-name">hostname</span><br />
+ the hostname of the SSH server
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"><a href="paramiko.PKey-class.html" class="link">PKey</a></span>
+ </td><td class="summary">
+ <a name="key"></a><span class="summary-name">key</span><br />
+ the host key presented by the server
+ </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>exceptions.BaseException</code></b>:
+ <code>args</code>,
+ <code>message</code>
+ </p>
+ <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">hostname</span>,
+ <span class="sig-arg">got_key</span>,
+ <span class="sig-arg">expected_key</span>)</span>
+ <br /><em class="fname">(Constructor)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.ssh_exception-pysrc.html">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 Jul 6 18:30:28 2008
+ </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.BufferedFile-class.html b/docs/paramiko.BufferedFile-class.html
new file mode 100644
index 0000000..f3fe0f5
--- /dev/null
+++ b/docs/paramiko.BufferedFile-class.html
@@ -0,0 +1,853 @@
+<?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.BufferedFile</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> ::
+ Class&nbsp;BufferedFile
+ </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.BufferedFile-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class BufferedFile</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko-pysrc.html#BufferedFile">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+object --+
+ |
+ <strong class="uidshort">BufferedFile</strong>
+</pre>
+
+<dl><dt>Known Subclasses:</dt>
+<dd>
+ <ul class="subclass-list">
+<li class="private">ChannelFile</li><li>, <a href="paramiko.SFTPFile-class.html">SFTPFile</a></li> </ul>
+</dd></dl>
+
+<hr />
+<p>Reusable base class to implement python-style file buffering around a
+ simpler stream.</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 name="__del__"></a><span class="summary-sig-name">__del__</span>(<span class="summary-sig-arg">self</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.file-pysrc.html">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 href="paramiko.BufferedFile-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</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.file-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">iterator</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#__iter__" class="summary-sig-name">__iter__</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Returns an iterator that can be used to iterate over the lines in
+ this file.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.file-pysrc.html">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 href="paramiko.BufferedFile-class.html#close" class="summary-sig-name">close</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Close the file.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.file-pysrc.html">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 href="paramiko.BufferedFile-class.html#flush" class="summary-sig-name">flush</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Write out any data in the write buffer.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.file-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">str</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#next" class="summary-sig-name">next</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Returns the next line from the input, or raises <code
+ class="link">StopIteration</code> when EOF is hit.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.file-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">str</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#read" class="summary-sig-name">read</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">size</span>=<span class="summary-sig-default">None</span>)</span><br />
+ Read at most <code>size</code> bytes from the file (less if we hit
+ the end of the file first).</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.file-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">str</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#readline" class="summary-sig-name">readline</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">size</span>=<span class="summary-sig-default">None</span>)</span><br />
+ Read one entire line from the file.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.file-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">list</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#readlines" class="summary-sig-name">readlines</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">sizehint</span>=<span class="summary-sig-default">None</span>)</span><br />
+ Read all remaining lines using <a
+ href="paramiko.BufferedFile-class.html#readline"
+ class="link">readline</a> and return them as a list.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.file-pysrc.html">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 href="paramiko.BufferedFile-class.html#seek" class="summary-sig-name">seek</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">offset</span>,
+ <span class="summary-sig-arg">whence</span>=<span class="summary-sig-default">0</span>)</span><br />
+ Set the file's current position, like stdio's <code>fseek</code>.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.file-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">int</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#tell" class="summary-sig-name">tell</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Return the file's current position.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.file-pysrc.html">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 href="paramiko.BufferedFile-class.html#write" class="summary-sig-name">write</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">data</span>)</span><br />
+ Write data to the file.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.file-pysrc.html">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 href="paramiko.BufferedFile-class.html#writelines" class="summary-sig-name">writelines</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">sequence</span>)</span><br />
+ Write a sequence of strings to the file.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.file-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">iterator</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#xreadlines" class="summary-sig-name">xreadlines</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Identical to <code>iter(f)</code>.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.file-pysrc.html">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>__getattribute__</code>,
+ <code>__hash__</code>,
+ <code>__new__</code>,
+ <code>__reduce__</code>,
+ <code>__reduce_ex__</code>,
+ <code>__repr__</code>,
+ <code>__setattr__</code>,
+ <code>__str__</code>
+ </p>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS VARIABLES ==================== -->
+<a name="section-ClassVariables"></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 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="FLAG_APPEND"></a><span class="summary-name">FLAG_APPEND</span> = <code title="4">4</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="FLAG_BINARY"></a><span class="summary-name">FLAG_BINARY</span> = <code title="16">16</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="FLAG_BUFFERED"></a><span class="summary-name">FLAG_BUFFERED</span> = <code title="32">32</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="FLAG_LINE_BUFFERED"></a><span class="summary-name">FLAG_LINE_BUFFERED</span> = <code title="64">64</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="FLAG_READ"></a><span class="summary-name">FLAG_READ</span> = <code title="1">1</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="FLAG_UNIVERSAL_NEWLINE"></a><span class="summary-name">FLAG_UNIVERSAL_NEWLINE</span> = <code title="128">128</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="FLAG_WRITE"></a><span class="summary-name">FLAG_WRITE</span> = <code title="2">2</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="SEEK_CUR"></a><span class="summary-name">SEEK_CUR</span> = <code title="1">1</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="SEEK_END"></a><span class="summary-name">SEEK_END</span> = <code title="2">2</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="SEEK_SET"></a><span class="summary-name">SEEK_SET</span> = <code title="0">0</code>
+ </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>
+ <br /><em class="fname">(Constructor)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.file-pysrc.html">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>
+<a name="__iter__"></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">__iter__</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.file-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Returns an iterator that can be used to iterate over the lines in this
+ file. This iterator happens to return the file itself, since a file is
+ its own iterator.</p>
+ <dl class="fields">
+ <dt>Returns: iterator</dt>
+ <dd>an interator.</dd>
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'>ValueError</strong></code> - if the file is closed.</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="close"></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">close</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.file-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Close the file. Future read and write operations will fail.</p>
+ <dl class="fields">
+ </dl>
+</td></tr></table>
+</div>
+<a name="flush"></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">flush</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.file-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Write out any data in the write buffer. This may do nothing if write
+ buffering is not turned on.</p>
+ <dl class="fields">
+ </dl>
+</td></tr></table>
+</div>
+<a name="next"></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">next</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.file-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Returns the next line from the input, or raises <code
+ class="link">StopIteration</code> when EOF is hit. Unlike python file
+ objects, it's okay to mix calls to <code>next</code> and <a
+ href="paramiko.BufferedFile-class.html#readline"
+ class="link">readline</a>.</p>
+ <dl class="fields">
+ <dt>Returns: str</dt>
+ <dd>a line read from the file.</dd>
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'>StopIteration</strong></code> - when the end of the file is reached.</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="read"></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">read</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">size</span>=<span class="sig-default">None</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.file-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Read at most <code>size</code> bytes from the file (less if we hit the
+ end of the file first). If the <code>size</code> argument is negative or
+ omitted, read all the remaining data in the file.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>size</code></strong> (int) - maximum number of bytes to read</li>
+ </ul></dd>
+ <dt>Returns: str</dt>
+ <dd>data read from the file, or an empty string if EOF was
+ encountered immediately</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="readline"></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">readline</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">size</span>=<span class="sig-default">None</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.file-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Read one entire line from the file. A trailing newline character is
+ kept in the string (but may be absent when a file ends with an incomplete
+ line). If the size argument is present and non-negative, it is a maximum
+ byte count (including the trailing newline) and an incomplete line may be
+ returned. An empty string is returned only when EOF is encountered
+ immediately.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>size</code></strong> (int) - maximum length of returned string.</li>
+ </ul></dd>
+ <dt>Returns: str</dt>
+ <dd>next line of the file, or an empty string if the end of the file
+ has been reached.</dd>
+ </dl>
+<div class="fields"> <p><strong>Note:</strong>
+ Unlike stdio's <code>fgets()</code>, the returned string contains
+ null characters (<code>'\0'</code>) if they occurred in the input.
+ </p>
+</div></td></tr></table>
+</div>
+<a name="readlines"></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">readlines</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">sizehint</span>=<span class="sig-default">None</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.file-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Read all remaining lines using <a
+ href="paramiko.BufferedFile-class.html#readline"
+ class="link">readline</a> and return them as a list. If the optional
+ <code>sizehint</code> argument is present, instead of reading up to EOF,
+ whole lines totalling approximately sizehint bytes (possibly after
+ rounding up to an internal buffer size) are read.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>sizehint</code></strong> (int) - desired maximum number of bytes to read.</li>
+ </ul></dd>
+ <dt>Returns: list</dt>
+ <dd>list of lines read from the file.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="seek"></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">seek</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">offset</span>,
+ <span class="sig-arg">whence</span>=<span class="sig-default">0</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.file-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Set the file's current position, like stdio's <code>fseek</code>. Not
+ all file objects support seeking.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>offset</code></strong> (int) - position to move to within the file, relative to
+ <code>whence</code>.</li>
+ <li><strong class="pname"><code>whence</code></strong> (int) - type of movement: 0 = absolute; 1 = relative to the current
+ position; 2 = relative to the end of the file.</li>
+ </ul></dd>
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'>IOError</strong></code> - if the file doesn't support random access.</li>
+ </ul></dd>
+ </dl>
+<div class="fields"> <p><strong>Note:</strong>
+ If a file is opened in append mode (<code>'a'</code> or
+ <code>'a+'</code>), any seek operations will be undone at the next
+ write (as the file position will move back to the end of the file).
+ </p>
+</div></td></tr></table>
+</div>
+<a name="tell"></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">tell</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.file-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return the file's current position. This may not be accurate or
+ useful if the underlying file doesn't support random access, or was
+ opened in append mode.</p>
+ <dl class="fields">
+ <dt>Returns: int</dt>
+ <dd>file position (in bytes).</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="write"></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">write</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">data</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.file-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Write data to the file. If write buffering is on
+ (<code>bufsize</code> was specified and non-zero), some or all of the
+ data may not actually be written yet. (Use <a
+ href="paramiko.BufferedFile-class.html#flush" class="link">flush</a> or
+ <a href="paramiko.BufferedFile-class.html#close" class="link">close</a>
+ to force buffered data to be written out.)</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>data</code></strong> (str) - data to write.</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="writelines"></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">writelines</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">sequence</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.file-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Write a sequence of strings to the file. The sequence can be any
+ iterable object producing strings, typically a list of strings. (The
+ name is intended to match <a
+ href="paramiko.BufferedFile-class.html#readlines"
+ class="link">readlines</a>; <code>writelines</code> does not add line
+ separators.)</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>sequence</code></strong> (sequence) - an iterable sequence of strings.</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="xreadlines"></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">xreadlines</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.file-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Identical to <code>iter(f)</code>. This is a deprecated file
+ interface that predates python iterator support.</p>
+ <dl class="fields">
+ <dt>Returns: iterator</dt>
+ <dd>an iterator.</dd>
+ </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 Jul 6 18:30:28 2008
+ </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.Channel-class.html b/docs/paramiko.Channel-class.html
new file mode 100644
index 0000000..41ff545
--- /dev/null
+++ b/docs/paramiko.Channel-class.html
@@ -0,0 +1,1995 @@
+<?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.Channel</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> ::
+ Class&nbsp;Channel
+ </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.Channel-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class Channel</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko-pysrc.html#Channel">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+object --+
+ |
+ <strong class="uidshort">Channel</strong>
+</pre>
+
+<hr />
+<p>A secure tunnel across an SSH <a href="paramiko.Transport-class.html"
+ class="link">Transport</a>. A Channel is meant to behave like a socket,
+ and has an API that should be indistinguishable from the python socket
+ API.</p>
+ <p>Because SSH2 has a windowing kind of flow control, if you stop reading
+ data from a Channel and its buffer fills up, the server will be unable to
+ send you any more data until you read some of it. (This won't affect
+ other channels on the same transport -- all channels on a single
+ transport are flow-controlled independently.) Similarly, if the server
+ isn't reading data you send, calls to <a
+ href="paramiko.Channel-class.html#send" class="link">send</a> may block,
+ unless you set a timeout. This is exactly like a normal network socket,
+ so it shouldn't be too surprising.</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 name="__del__"></a><span class="summary-sig-name">__del__</span>(<span class="summary-sig-arg">self</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.channel-pysrc.html">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 href="paramiko.Channel-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">chanid</span>)</span><br />
+ Create a new channel.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.channel-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">str</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.Channel-class.html#__repr__" class="summary-sig-name">__repr__</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Return a string representation of this object, for debugging.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.channel-pysrc.html">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 href="paramiko.Channel-class.html#close" class="summary-sig-name">close</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Close the channel.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.channel-pysrc.html">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 href="paramiko.Channel-class.html#exec_command" class="summary-sig-name">exec_command</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">command</span>)</span><br />
+ Execute a command on the server.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.channel-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">bool</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.Channel-class.html#exit_status_ready" class="summary-sig-name">exit_status_ready</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Return true if the remote process has exited and returned an exit
+ status.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.channel-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">int</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.Channel-class.html#fileno" class="summary-sig-name">fileno</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Returns an OS-level file descriptor which can be used for polling,
+ but but <i>not</i> for reading or writing.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.channel-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">int</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.Channel-class.html#get_id" class="summary-sig-name">get_id</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Return the ID # for this channel.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.channel-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">str</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.Channel-class.html#get_name" class="summary-sig-name">get_name</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Get the name of this channel that was previously set by <a
+ href="paramiko.Channel-class.html#set_name"
+ class="link">set_name</a>.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.channel-pysrc.html">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 href="paramiko.Channel-class.html#get_pty" class="summary-sig-name">get_pty</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">term</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string">vt100</code><code class="variable-quote">'</code></span>,
+ <span class="summary-sig-arg">width</span>=<span class="summary-sig-default">80</span>,
+ <span class="summary-sig-arg">height</span>=<span class="summary-sig-default">24</span>)</span><br />
+ Request a pseudo-terminal from the server.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.channel-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"><a href="paramiko.Transport-class.html" class="link">Transport</a></span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.Channel-class.html#get_transport" class="summary-sig-name">get_transport</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Return the <a href="paramiko.Transport-class.html"
+ class="link">Transport</a> associated with this channel.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.channel-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">tuple(str, int)</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.Channel-class.html#getpeername" class="summary-sig-name">getpeername</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Return the address of the remote side of this Channel, if possible.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.channel-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">float</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.Channel-class.html#gettimeout" class="summary-sig-name">gettimeout</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Returns the timeout in seconds (as a float) associated with socket
+ operations, or <code>None</code> if no timeout is set.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.channel-pysrc.html">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 href="paramiko.Channel-class.html#invoke_shell" class="summary-sig-name">invoke_shell</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Request an interactive shell session on this channel.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.channel-pysrc.html">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 href="paramiko.Channel-class.html#invoke_subsystem" class="summary-sig-name">invoke_subsystem</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">subsystem</span>)</span><br />
+ Request a subsystem on the server (for example, <code>sftp</code>).</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.channel-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">ChannelFile</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.Channel-class.html#makefile" class="summary-sig-name">makefile</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">*params</span>)</span><br />
+ Return a file-like object associated with this channel.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.channel-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">ChannelFile</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.Channel-class.html#makefile_stderr" class="summary-sig-name">makefile_stderr</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">*params</span>)</span><br />
+ Return a file-like object associated with this channel's stderr
+ stream.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.channel-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">str</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.Channel-class.html#recv" class="summary-sig-name">recv</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">nbytes</span>)</span><br />
+ Receive data from the channel.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.channel-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">int</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.Channel-class.html#recv_exit_status" class="summary-sig-name">recv_exit_status</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Return the exit status from the process on the server.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.channel-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">boolean</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.Channel-class.html#recv_ready" class="summary-sig-name">recv_ready</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Returns true if data is buffered and ready to be read from this
+ channel.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.channel-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">str</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.Channel-class.html#recv_stderr" class="summary-sig-name">recv_stderr</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">nbytes</span>)</span><br />
+ Receive data from the channel's stderr stream.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.channel-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">boolean</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.Channel-class.html#recv_stderr_ready" class="summary-sig-name">recv_stderr_ready</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Returns true if data is buffered and ready to be read from this
+ channel's stderr stream.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.channel-pysrc.html">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 href="paramiko.Channel-class.html#request_x11" class="summary-sig-name">request_x11</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">screen_number</span>=<span class="summary-sig-default">0</span>,
+ <span class="summary-sig-arg">auth_protocol</span>=<span class="summary-sig-default">None</span>,
+ <span class="summary-sig-arg">auth_cookie</span>=<span class="summary-sig-default">None</span>,
+ <span class="summary-sig-arg">single_connection</span>=<span class="summary-sig-default">False</span>,
+ <span class="summary-sig-arg">handler</span>=<span class="summary-sig-default">None</span>)</span><br />
+ Request an x11 session on this channel.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.channel-pysrc.html">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 href="paramiko.Channel-class.html#resize_pty" class="summary-sig-name">resize_pty</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">width</span>=<span class="summary-sig-default">80</span>,
+ <span class="summary-sig-arg">height</span>=<span class="summary-sig-default">24</span>)</span><br />
+ Resize the pseudo-terminal.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.channel-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">int</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.Channel-class.html#send" class="summary-sig-name">send</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">s</span>)</span><br />
+ Send data to the channel.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.channel-pysrc.html">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 href="paramiko.Channel-class.html#send_exit_status" class="summary-sig-name">send_exit_status</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">status</span>)</span><br />
+ Send the exit status of an executed command to the client.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.channel-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">boolean</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.Channel-class.html#send_ready" class="summary-sig-name">send_ready</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Returns true if data can be written to this channel without blocking.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.channel-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">int</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.Channel-class.html#send_stderr" class="summary-sig-name">send_stderr</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">s</span>)</span><br />
+ Send data to the channel on the &quot;stderr&quot; stream.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.channel-pysrc.html">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 href="paramiko.Channel-class.html#sendall" class="summary-sig-name">sendall</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">s</span>)</span><br />
+ Send data to the channel, without allowing partial results.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.channel-pysrc.html">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 href="paramiko.Channel-class.html#sendall_stderr" class="summary-sig-name">sendall_stderr</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">s</span>)</span><br />
+ Send data to the channel's &quot;stderr&quot; stream, without
+ allowing partial results.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.channel-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">bool</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.Channel-class.html#set_combine_stderr" class="summary-sig-name">set_combine_stderr</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">combine</span>)</span><br />
+ Set whether stderr should be combined into stdout on this channel.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.channel-pysrc.html">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 href="paramiko.Channel-class.html#set_name" class="summary-sig-name">set_name</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">name</span>)</span><br />
+ Set a name for this channel.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.channel-pysrc.html">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 href="paramiko.Channel-class.html#setblocking" class="summary-sig-name">setblocking</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">blocking</span>)</span><br />
+ Set blocking or non-blocking mode of the channel: if
+ <code>blocking</code> is 0, the channel is set to non-blocking mode;
+ otherwise it's set to blocking mode.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.channel-pysrc.html">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 href="paramiko.Channel-class.html#settimeout" class="summary-sig-name">settimeout</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">timeout</span>)</span><br />
+ Set a timeout on blocking read/write operations.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.channel-pysrc.html">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 href="paramiko.Channel-class.html#shutdown" class="summary-sig-name">shutdown</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">how</span>)</span><br />
+ Shut down one or both halves of the connection.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.channel-pysrc.html">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 href="paramiko.Channel-class.html#shutdown_read" class="summary-sig-name">shutdown_read</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Shutdown the receiving side of this socket, closing the stream in the
+ incoming direction.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.channel-pysrc.html">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 href="paramiko.Channel-class.html#shutdown_write" class="summary-sig-name">shutdown_write</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Shutdown the sending side of this socket, closing the stream in the
+ outgoing direction.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.channel-pysrc.html">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>__getattribute__</code>,
+ <code>__hash__</code>,
+ <code>__new__</code>,
+ <code>__reduce__</code>,
+ <code>__reduce_ex__</code>,
+ <code>__setattr__</code>,
+ <code>__str__</code>
+ </p>
+ </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">chanid</span>)</span>
+ <br /><em class="fname">(Constructor)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.channel-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Create a new channel. The channel is not associated with any
+ particular session or <a href="paramiko.Transport-class.html"
+ class="link">Transport</a> until the Transport attaches it. Normally you
+ would only call this method from the constructor of a subclass of <a
+ href="paramiko.Channel-class.html" class="link">Channel</a>.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>chanid</code></strong> (int) - the ID of this channel, as passed by an existing <a
+ href="paramiko.Transport-class.html" class="link">Transport</a>.</li>
+ </ul></dd>
+ <dt>Overrides:
+ object.__init__
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="__repr__"></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">__repr__</span>(<span class="sig-arg">self</span>)</span>
+ <br /><em class="fname">(Representation operator)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.channel-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return a string representation of this object, for debugging.</p>
+ <dl class="fields">
+ <dt>Returns: str</dt>
+ <dt>Overrides:
+ object.__repr__
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="close"></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">close</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.channel-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Close the channel. All future read/write operations on the channel
+ will fail. The remote end will receive no more data (after queued data
+ is flushed). Channels are automatically closed when their <a
+ href="paramiko.Transport-class.html" class="link">Transport</a> is closed
+ or when they are garbage collected.</p>
+ <dl class="fields">
+ </dl>
+</td></tr></table>
+</div>
+<a name="exec_command"></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">exec_command</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">command</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.channel-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Execute a command on the server. If the server allows it, the channel
+ will then be directly connected to the stdin, stdout, and stderr of the
+ command being executed.</p>
+ <p>When the command finishes executing, the channel will be closed and
+ can't be reused. You must open a new channel if you wish to execute
+ another command.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>command</code></strong> (str) - a shell command to execute.</li>
+ </ul></dd>
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'><a href="paramiko.SSHException-class.html">SSHException</a></strong></code> - if the request was rejected or the channel was closed</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="exit_status_ready"></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">exit_status_ready</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.channel-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return true if the remote process has exited and returned an exit
+ status. You may use this to poll the process status if you don't want to
+ block in <a href="paramiko.Channel-class.html#recv_exit_status"
+ class="link">recv_exit_status</a>. Note that the server may not return an
+ exit status in some cases (like bad servers).</p>
+ <dl class="fields">
+ <dt>Returns: bool</dt>
+ <dd>True if <a href="paramiko.Channel-class.html#recv_exit_status"
+ class="link">recv_exit_status</a> will return immediately</dd>
+ </dl>
+<div class="fields"> <p><strong>Since:</strong>
+ 1.7.3
+ </p>
+</div></td></tr></table>
+</div>
+<a name="fileno"></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">fileno</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.channel-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Returns an OS-level file descriptor which can be used for polling, but
+ but <i>not</i> for reading or writing. This is primaily to allow
+ python's <code>select</code> module to work.</p>
+ <p>The first time <code>fileno</code> is called on a channel, a pipe is
+ created to simulate real OS-level file descriptor (FD) behavior. Because
+ of this, two OS-level FDs are created, which will use up FDs faster than
+ normal. (You won't notice this effect unless you have hundreds of
+ channels open at the same time.)</p>
+ <dl class="fields">
+ <dt>Returns: int</dt>
+ <dd>an OS-level file descriptor</dd>
+ </dl>
+<div class="fields"> <p><strong>Warning:</strong>
+ This method causes channel reads to be slightly less efficient.
+ </p>
+</div></td></tr></table>
+</div>
+<a name="get_id"></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">get_id</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.channel-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return the ID # for this channel. The channel ID is unique across a
+ <a href="paramiko.Transport-class.html" class="link">Transport</a> and
+ usually a small number. It's also the number passed to <a
+ href="paramiko.ServerInterface-class.html#check_channel_request"
+ class="link">ServerInterface.check_channel_request</a> when determining
+ whether to accept a channel request in server mode.</p>
+ <dl class="fields">
+ <dt>Returns: int</dt>
+ <dd>the ID of this channel.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="get_name"></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">get_name</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.channel-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Get the name of this channel that was previously set by <a
+ href="paramiko.Channel-class.html#set_name"
+ class="link">set_name</a>.</p>
+ <dl class="fields">
+ <dt>Returns: str</dt>
+ <dd>the name of this channel.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="get_pty"></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">get_pty</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">term</span>=<span class="sig-default"><code class="variable-quote">'</code><code class="variable-string">vt100</code><code class="variable-quote">'</code></span>,
+ <span class="sig-arg">width</span>=<span class="sig-default">80</span>,
+ <span class="sig-arg">height</span>=<span class="sig-default">24</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.channel-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Request a pseudo-terminal from the server. This is usually used right
+ after creating a client channel, to ask the server to provide some basic
+ terminal semantics for a shell invoked with <a
+ href="paramiko.Channel-class.html#invoke_shell"
+ class="link">invoke_shell</a>. It isn't necessary (or desirable) to call
+ this method if you're going to exectue a single command with <a
+ href="paramiko.Channel-class.html#exec_command"
+ class="link">exec_command</a>.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>term</code></strong> (str) - the terminal type to emulate (for example, <code>'vt100'</code>)</li>
+ <li><strong class="pname"><code>width</code></strong> (int) - width (in characters) of the terminal screen</li>
+ <li><strong class="pname"><code>height</code></strong> (int) - height (in characters) of the terminal screen</li>
+ </ul></dd>
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'><a href="paramiko.SSHException-class.html">SSHException</a></strong></code> - if the request was rejected or the channel was closed</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="get_transport"></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">get_transport</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.channel-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return the <a href="paramiko.Transport-class.html"
+ class="link">Transport</a> associated with this channel.</p>
+ <dl class="fields">
+ <dt>Returns: <a href="paramiko.Transport-class.html" class="link">Transport</a></dt>
+ <dd>the <a href="paramiko.Transport-class.html"
+ class="link">Transport</a> that was used to create this channel.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="getpeername"></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">getpeername</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.channel-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return the address of the remote side of this Channel, if possible.
+ This is just a wrapper around <code>'getpeername'</code> on the
+ Transport, used to provide enough of a socket-like interface to allow
+ asyncore to work. (asyncore likes to call
+ <code>'getpeername'</code>.)</p>
+ <dl class="fields">
+ <dt>Returns: tuple(str, int)</dt>
+ <dd>the address if the remote host, if known</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="gettimeout"></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">gettimeout</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.channel-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Returns the timeout in seconds (as a float) associated with socket
+ operations, or <code>None</code> if no timeout is set. This reflects the
+ last call to <a href="paramiko.Channel-class.html#setblocking"
+ class="link">setblocking</a> or <a
+ href="paramiko.Channel-class.html#settimeout"
+ class="link">settimeout</a>.</p>
+ <dl class="fields">
+ <dt>Returns: float</dt>
+ <dd>timeout in seconds, or <code>None</code>.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="invoke_shell"></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">invoke_shell</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.channel-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Request an interactive shell session on this channel. If the server
+ allows it, the channel will then be directly connected to the stdin,
+ stdout, and stderr of the shell.</p>
+ <p>Normally you would call <a href="paramiko.Channel-class.html#get_pty"
+ class="link">get_pty</a> before this, in which case the shell will
+ operate through the pty, and the channel will be connected to the stdin
+ and stdout of the pty.</p>
+ <p>When the shell exits, the channel will be closed and can't be reused.
+ You must open a new channel if you wish to open another shell.</p>
+ <dl class="fields">
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'><a href="paramiko.SSHException-class.html">SSHException</a></strong></code> - if the request was rejected or the channel was closed</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="invoke_subsystem"></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">invoke_subsystem</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">subsystem</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.channel-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Request a subsystem on the server (for example, <code>sftp</code>).
+ If the server allows it, the channel will then be directly connected to
+ the requested subsystem.</p>
+ <p>When the subsystem finishes, the channel will be closed and can't be
+ reused.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>subsystem</code></strong> (str) - name of the subsystem being requested.</li>
+ </ul></dd>
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'><a href="paramiko.SSHException-class.html">SSHException</a></strong></code> - if the request was rejected or the channel was closed</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="makefile"></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">makefile</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">*params</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.channel-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return a file-like object associated with this channel. The optional
+ <code>mode</code> and <code>bufsize</code> arguments are interpreted the
+ same way as by the built-in <code>file()</code> function in python.</p>
+ <dl class="fields">
+ <dt>Returns: ChannelFile</dt>
+ <dd>object which can be used for python file I/O.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="makefile_stderr"></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">makefile_stderr</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">*params</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.channel-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return a file-like object associated with this channel's stderr
+ stream. Only channels using <a
+ href="paramiko.Channel-class.html#exec_command"
+ class="link">exec_command</a> or <a
+ href="paramiko.Channel-class.html#invoke_shell"
+ class="link">invoke_shell</a> without a pty will ever have data on the
+ stderr stream.</p>
+ <p>The optional <code>mode</code> and <code>bufsize</code> arguments are
+ interpreted the same way as by the built-in <code>file()</code> function
+ in python. For a client, it only makes sense to open this file for
+ reading. For a server, it only makes sense to open this file for
+ writing.</p>
+ <dl class="fields">
+ <dt>Returns: ChannelFile</dt>
+ <dd>object which can be used for python file I/O.</dd>
+ </dl>
+<div class="fields"> <p><strong>Since:</strong>
+ 1.1
+ </p>
+</div></td></tr></table>
+</div>
+<a name="recv"></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">recv</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">nbytes</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.channel-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Receive data from the channel. The return value is a string
+ representing the data received. The maximum amount of data to be
+ received at once is specified by <code>nbytes</code>. If a string of
+ length zero is returned, the channel stream has closed.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>nbytes</code></strong> (int) - maximum number of bytes to read.</li>
+ </ul></dd>
+ <dt>Returns: str</dt>
+ <dd>data.</dd>
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'>socket.timeout</strong></code> - if no data is ready before the timeout set by <a
+ href="paramiko.Channel-class.html#settimeout"
+ class="link">settimeout</a>.</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="recv_exit_status"></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">recv_exit_status</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.channel-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return the exit status from the process on the server. This is mostly
+ useful for retrieving the reults of an <a
+ href="paramiko.Channel-class.html#exec_command"
+ class="link">exec_command</a>. If the command hasn't finished yet, this
+ method will wait until it does, or until the channel is closed. If no
+ exit status is provided by the server, -1 is returned.</p>
+ <dl class="fields">
+ <dt>Returns: int</dt>
+ <dd>the exit code of the process on the server.</dd>
+ </dl>
+<div class="fields"> <p><strong>Since:</strong>
+ 1.2
+ </p>
+</div></td></tr></table>
+</div>
+<a name="recv_ready"></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">recv_ready</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.channel-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Returns true if data is buffered and ready to be read from this
+ channel. A <code>False</code> result does not mean that the channel has
+ closed; it means you may need to wait before more data arrives.</p>
+ <dl class="fields">
+ <dt>Returns: boolean</dt>
+ <dd><code>True</code> if a <a href="paramiko.Channel-class.html#recv"
+ class="link">recv</a> call on this channel would immediately
+ return at least one byte; <code>False</code> otherwise.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="recv_stderr"></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">recv_stderr</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">nbytes</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.channel-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Receive data from the channel's stderr stream. Only channels using <a
+ href="paramiko.Channel-class.html#exec_command"
+ class="link">exec_command</a> or <a
+ href="paramiko.Channel-class.html#invoke_shell"
+ class="link">invoke_shell</a> without a pty will ever have data on the
+ stderr stream. The return value is a string representing the data
+ received. The maximum amount of data to be received at once is specified
+ by <code>nbytes</code>. If a string of length zero is returned, the
+ channel stream has closed.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>nbytes</code></strong> (int) - maximum number of bytes to read.</li>
+ </ul></dd>
+ <dt>Returns: str</dt>
+ <dd>data.</dd>
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'>socket.timeout</strong></code> - if no data is ready before the timeout set by <a
+ href="paramiko.Channel-class.html#settimeout"
+ class="link">settimeout</a>.</li>
+ </ul></dd>
+ </dl>
+<div class="fields"> <p><strong>Since:</strong>
+ 1.1
+ </p>
+</div></td></tr></table>
+</div>
+<a name="recv_stderr_ready"></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">recv_stderr_ready</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.channel-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Returns true if data is buffered and ready to be read from this
+ channel's stderr stream. Only channels using <a
+ href="paramiko.Channel-class.html#exec_command"
+ class="link">exec_command</a> or <a
+ href="paramiko.Channel-class.html#invoke_shell"
+ class="link">invoke_shell</a> without a pty will ever have data on the
+ stderr stream.</p>
+ <dl class="fields">
+ <dt>Returns: boolean</dt>
+ <dd><code>True</code> if a <a
+ href="paramiko.Channel-class.html#recv_stderr"
+ class="link">recv_stderr</a> call on this channel would
+ immediately return at least one byte; <code>False</code>
+ otherwise.</dd>
+ </dl>
+<div class="fields"> <p><strong>Since:</strong>
+ 1.1
+ </p>
+</div></td></tr></table>
+</div>
+<a name="request_x11"></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">request_x11</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">screen_number</span>=<span class="sig-default">0</span>,
+ <span class="sig-arg">auth_protocol</span>=<span class="sig-default">None</span>,
+ <span class="sig-arg">auth_cookie</span>=<span class="sig-default">None</span>,
+ <span class="sig-arg">single_connection</span>=<span class="sig-default">False</span>,
+ <span class="sig-arg">handler</span>=<span class="sig-default">None</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.channel-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Request an x11 session on this channel. If the server allows it,
+ further x11 requests can be made from the server to the client, when an
+ x11 application is run in a shell session.</p>
+ <p>From RFC4254:</p>
+<pre class="literalblock">
+ It is RECOMMENDED that the 'x11 authentication cookie' that is
+ sent be a fake, random cookie, and that the cookie be checked and
+ replaced by the real cookie when a connection request is received.
+</pre>
+ <p>If you omit the auth_cookie, a new secure random 128-bit value will be
+ generated, used, and returned. You will need to use this value to verify
+ incoming x11 requests and replace them with the actual local x11 cookie
+ (which requires some knoweldge of the x11 protocol).</p>
+ <p>If a handler is passed in, the handler is called from another thread
+ whenever a new x11 connection arrives. The default handler queues up
+ incoming x11 connections, which may be retrieved using <a
+ href="paramiko.Transport-class.html#accept"
+ class="link">Transport.accept</a>. The handler's calling signature
+ is:</p>
+<pre class="literalblock">
+ handler(channel: Channel, (address: str, port: int))
+</pre>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>screen_number</code></strong> (int) - the x11 screen number (0, 10, etc)</li>
+ <li><strong class="pname"><code>auth_protocol</code></strong> (str) - the name of the X11 authentication method used; if none is given,
+ <code>&quot;MIT-MAGIC-COOKIE-1&quot;</code> is used</li>
+ <li><strong class="pname"><code>auth_cookie</code></strong> (str) - hexadecimal string containing the x11 auth cookie; if none is
+ given, a secure random 128-bit value is generated</li>
+ <li><strong class="pname"><code>single_connection</code></strong> (bool) - if True, only a single x11 connection will be forwarded (by
+ default, any number of x11 connections can arrive over this
+ session)</li>
+ <li><strong class="pname"><code>handler</code></strong> (function) - an optional handler to use for incoming X11 connections</li>
+ </ul></dd>
+ <dt>Returns:</dt>
+ <dd>the auth_cookie used</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="resize_pty"></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">resize_pty</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">width</span>=<span class="sig-default">80</span>,
+ <span class="sig-arg">height</span>=<span class="sig-default">24</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.channel-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Resize the pseudo-terminal. This can be used to change the width and
+ height of the terminal emulation created in a previous <a
+ href="paramiko.Channel-class.html#get_pty" class="link">get_pty</a>
+ call.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>width</code></strong> (int) - new width (in characters) of the terminal screen</li>
+ <li><strong class="pname"><code>height</code></strong> (int) - new height (in characters) of the terminal screen</li>
+ </ul></dd>
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'><a href="paramiko.SSHException-class.html">SSHException</a></strong></code> - if the request was rejected or the channel was closed</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="send"></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">send</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">s</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.channel-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Send data to the channel. Returns the number of bytes sent, or 0 if
+ the channel stream is closed. Applications are responsible for checking
+ that all data has been sent: if only some of the data was transmitted,
+ the application needs to attempt delivery of the remaining data.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>s</code></strong> (str) - data to send</li>
+ </ul></dd>
+ <dt>Returns: int</dt>
+ <dd>number of bytes actually sent</dd>
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'>socket.timeout</strong></code> - if no data could be sent before the timeout set by <a
+ href="paramiko.Channel-class.html#settimeout"
+ class="link">settimeout</a>.</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="send_exit_status"></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">send_exit_status</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">status</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.channel-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Send the exit status of an executed command to the client. (This
+ really only makes sense in server mode.) Many clients expect to get some
+ sort of status code back from an executed command after it completes.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>status</code></strong> (int) - the exit code of the process</li>
+ </ul></dd>
+ </dl>
+<div class="fields"> <p><strong>Since:</strong>
+ 1.2
+ </p>
+</div></td></tr></table>
+</div>
+<a name="send_ready"></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">send_ready</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.channel-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Returns true if data can be written to this channel without blocking.
+ This means the channel is either closed (so any write attempt would
+ return immediately) or there is at least one byte of space in the
+ outbound buffer. If there is at least one byte of space in the outbound
+ buffer, a <a href="paramiko.Channel-class.html#send"
+ class="link">send</a> call will succeed immediately and return the number
+ of bytes actually written.</p>
+ <dl class="fields">
+ <dt>Returns: boolean</dt>
+ <dd><code>True</code> if a <a href="paramiko.Channel-class.html#send"
+ class="link">send</a> call on this channel would immediately
+ succeed or fail</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="send_stderr"></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">send_stderr</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">s</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.channel-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Send data to the channel on the &quot;stderr&quot; stream. This is
+ normally only used by servers to send output from shell commands --
+ clients won't use this. Returns the number of bytes sent, or 0 if the
+ channel stream is closed. Applications are responsible for checking that
+ all data has been sent: if only some of the data was transmitted, the
+ application needs to attempt delivery of the remaining data.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>s</code></strong> (str) - data to send.</li>
+ </ul></dd>
+ <dt>Returns: int</dt>
+ <dd>number of bytes actually sent.</dd>
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'>socket.timeout</strong></code> - if no data could be sent before the timeout set by <a
+ href="paramiko.Channel-class.html#settimeout"
+ class="link">settimeout</a>.</li>
+ </ul></dd>
+ </dl>
+<div class="fields"> <p><strong>Since:</strong>
+ 1.1
+ </p>
+</div></td></tr></table>
+</div>
+<a name="sendall"></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">sendall</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">s</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.channel-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Send data to the channel, without allowing partial results. Unlike <a
+ href="paramiko.Channel-class.html#send" class="link">send</a>, this
+ method continues to send data from the given string until either all data
+ has been sent or an error occurs. Nothing is returned.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>s</code></strong> (str) - data to send.</li>
+ </ul></dd>
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'>socket.timeout</strong></code> - if sending stalled for longer than the timeout set by <a
+ href="paramiko.Channel-class.html#settimeout"
+ class="link">settimeout</a>.</li>
+ <li><code><strong class='fraise'>socket.error</strong></code> - if an error occured before the entire string was sent.</li>
+ </ul></dd>
+ </dl>
+<div class="fields"> <p><strong>Note:</strong>
+ If the channel is closed while only part of the data hase been
+ sent, there is no way to determine how much data (if any) was sent.
+ This is irritating, but identically follows python's API.
+ </p>
+</div></td></tr></table>
+</div>
+<a name="sendall_stderr"></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">sendall_stderr</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">s</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.channel-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Send data to the channel's &quot;stderr&quot; stream, without allowing
+ partial results. Unlike <a
+ href="paramiko.Channel-class.html#send_stderr"
+ class="link">send_stderr</a>, this method continues to send data from the
+ given string until all data has been sent or an error occurs. Nothing is
+ returned.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>s</code></strong> (str) - data to send to the client as &quot;stderr&quot; output.</li>
+ </ul></dd>
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'>socket.timeout</strong></code> - if sending stalled for longer than the timeout set by <a
+ href="paramiko.Channel-class.html#settimeout"
+ class="link">settimeout</a>.</li>
+ <li><code><strong class='fraise'>socket.error</strong></code> - if an error occured before the entire string was sent.</li>
+ </ul></dd>
+ </dl>
+<div class="fields"> <p><strong>Since:</strong>
+ 1.1
+ </p>
+</div></td></tr></table>
+</div>
+<a name="set_combine_stderr"></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">set_combine_stderr</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">combine</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.channel-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Set whether stderr should be combined into stdout on this channel. The
+ default is <code>False</code>, but in some cases it may be convenient to
+ have both streams combined.</p>
+ <p>If this is <code>False</code>, and <a
+ href="paramiko.Channel-class.html#exec_command"
+ class="link">exec_command</a> is called (or <code>invoke_shell</code>
+ with no pty), output to stderr will not show up through the <a
+ href="paramiko.Channel-class.html#recv" class="link">recv</a> and <a
+ href="paramiko.Channel-class.html#recv_ready" class="link">recv_ready</a>
+ calls. You will have to use <a
+ href="paramiko.Channel-class.html#recv_stderr"
+ class="link">recv_stderr</a> and <a
+ href="paramiko.Channel-class.html#recv_stderr_ready"
+ class="link">recv_stderr_ready</a> to get stderr output.</p>
+ <p>If this is <code>True</code>, data will never show up via <a
+ href="paramiko.Channel-class.html#recv_stderr"
+ class="link">recv_stderr</a> or <a
+ href="paramiko.Channel-class.html#recv_stderr_ready"
+ class="link">recv_stderr_ready</a>.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>combine</code></strong> (bool) - <code>True</code> if stderr output should be combined into stdout
+ on this channel.</li>
+ </ul></dd>
+ <dt>Returns: bool</dt>
+ <dd>previous setting.</dd>
+ </dl>
+<div class="fields"> <p><strong>Since:</strong>
+ 1.1
+ </p>
+</div></td></tr></table>
+</div>
+<a name="set_name"></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">set_name</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">name</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.channel-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Set a name for this channel. Currently it's only used to set the name
+ of the channel in logfile entries. The name can be fetched with the <a
+ href="paramiko.Channel-class.html#get_name" class="link">get_name</a>
+ method.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>name</code></strong> (str) - new channel name</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="setblocking"></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">setblocking</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">blocking</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.channel-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Set blocking or non-blocking mode of the channel: if
+ <code>blocking</code> is 0, the channel is set to non-blocking mode;
+ otherwise it's set to blocking mode. Initially all channels are in
+ blocking mode.</p>
+ <p>In non-blocking mode, if a <a href="paramiko.Channel-class.html#recv"
+ class="link">recv</a> call doesn't find any data, or if a <a
+ href="paramiko.Channel-class.html#send" class="link">send</a> call can't
+ immediately dispose of the data, an error exception is raised. In
+ blocking mode, the calls block until they can proceed. An EOF condition
+ is considered &quot;immediate data&quot; for <a
+ href="paramiko.Channel-class.html#recv" class="link">recv</a>, so if the
+ channel is closed in the read direction, it will never block.</p>
+ <p><code>chan.setblocking(0)</code> is equivalent to
+ <code>chan.settimeout(0)</code>; <code>chan.setblocking(1)</code> is
+ equivalent to <code>chan.settimeout(None)</code>.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>blocking</code></strong> (int) - 0 to set non-blocking mode; non-0 to set blocking mode.</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="settimeout"></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">settimeout</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">timeout</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.channel-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Set a timeout on blocking read/write operations. The
+ <code>timeout</code> argument can be a nonnegative float expressing
+ seconds, or <code>None</code>. If a float is given, subsequent channel
+ read/write operations will raise a timeout exception if the timeout
+ period value has elapsed before the operation has completed. Setting a
+ timeout of <code>None</code> disables timeouts on socket operations.</p>
+ <p><code>chan.settimeout(0.0)</code> is equivalent to
+ <code>chan.setblocking(0)</code>; <code>chan.settimeout(None)</code> is
+ equivalent to <code>chan.setblocking(1)</code>.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>timeout</code></strong> (float) - seconds to wait for a pending read/write operation before raising
+ <code>socket.timeout</code>, or <code>None</code> for no timeout.</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="shutdown"></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">shutdown</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">how</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.channel-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Shut down one or both halves of the connection. If <code>how</code>
+ is 0, further receives are disallowed. If <code>how</code> is 1, further
+ sends are disallowed. If <code>how</code> is 2, further sends and
+ receives are disallowed. This closes the stream in one or both
+ directions.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>how</code></strong> (int) - 0 (stop receiving), 1 (stop sending), or 2 (stop receiving and
+ sending).</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="shutdown_read"></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">shutdown_read</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.channel-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Shutdown the receiving side of this socket, closing the stream in the
+ incoming direction. After this call, future reads on this channel will
+ fail instantly. This is a convenience method, equivalent to
+ <code>shutdown(0)</code>, for people who don't make it a habit to
+ memorize unix constants from the 1970s.</p>
+ <dl class="fields">
+ </dl>
+<div class="fields"> <p><strong>Since:</strong>
+ 1.2
+ </p>
+</div></td></tr></table>
+</div>
+<a name="shutdown_write"></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">shutdown_write</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.channel-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Shutdown the sending side of this socket, closing the stream in the
+ outgoing direction. After this call, future writes on this channel will
+ fail instantly. This is a convenience method, equivalent to
+ <code>shutdown(1)</code>, for people who don't make it a habit to
+ memorize unix constants from the 1970s.</p>
+ <dl class="fields">
+ </dl>
+<div class="fields"> <p><strong>Since:</strong>
+ 1.2
+ </p>
+</div></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 Jul 6 18:30:28 2008
+ </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.ChannelException-class.html b/docs/paramiko.ChannelException-class.html
new file mode 100644
index 0000000..8a02d64
--- /dev/null
+++ b/docs/paramiko.ChannelException-class.html
@@ -0,0 +1,245 @@
+<?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.ChannelException</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> ::
+ Class&nbsp;ChannelException
+ </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.ChannelException-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class ChannelException</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko-pysrc.html#ChannelException">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+ object --+
+ |
+exceptions.BaseException --+
+ |
+ exceptions.Exception --+
+ |
+ <a href="paramiko.SSHException-class.html">SSHException</a> --+
+ |
+ <strong class="uidshort">ChannelException</strong>
+</pre>
+
+<hr />
+<p>Exception raised when an attempt to open a new <a
+ href="paramiko.Channel-class.html" class="link">Channel</a> fails.</p>
+
+<hr />
+<div class="fields"> <p><strong>Since:</strong>
+ 1.6
+ </p>
+</div><!-- ==================== 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.ChannelException-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">code</span>,
+ <span class="summary-sig-arg">text</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.ssh_exception-pysrc.html">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>exceptions.Exception</code></b>:
+ <code>__new__</code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>exceptions.BaseException</code></b>:
+ <code>__delattr__</code>,
+ <code>__getattribute__</code>,
+ <code>__getitem__</code>,
+ <code>__reduce__</code>,
+ <code>__repr__</code>,
+ <code>__setattr__</code>,
+ <code>__setstate__</code>,
+ <code>__str__</code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__hash__</code>,
+ <code>__reduce_ex__</code>
+ </p>
+ </td>
+ </tr>
+</table>
+<!-- ==================== INSTANCE VARIABLES ==================== -->
+<a name="section-InstanceVariables"></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 Variables</span></td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">int</span>
+ </td><td class="summary">
+ <a name="code"></a><span class="summary-name">code</span><br />
+ the error code returned by the server
+ </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>exceptions.BaseException</code></b>:
+ <code>args</code>,
+ <code>message</code>
+ </p>
+ <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">code</span>,
+ <span class="sig-arg">text</span>)</span>
+ <br /><em class="fname">(Constructor)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.ssh_exception-pysrc.html">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 Jul 6 18:30:28 2008
+ </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.DSSKey-class.html b/docs/paramiko.DSSKey-class.html
new file mode 100644
index 0000000..29c5115
--- /dev/null
+++ b/docs/paramiko.DSSKey-class.html
@@ -0,0 +1,747 @@
+<?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.DSSKey</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> ::
+ Class&nbsp;DSSKey
+ </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.DSSKey-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class DSSKey</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko-pysrc.html#DSSKey">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+object --+
+ |
+ <a href="paramiko.PKey-class.html">PKey</a> --+
+ |
+ <strong class="uidshort">DSSKey</strong>
+</pre>
+
+<hr />
+<p>Representation of a DSS key which can be used to sign an verify SSH2
+ data.</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.DSSKey-class.html#__hash__" class="summary-sig-name">__hash__</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ hash(x)</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.dsskey-pysrc.html">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 href="paramiko.DSSKey-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">msg</span>=<span class="summary-sig-default">None</span>,
+ <span class="summary-sig-arg">data</span>=<span class="summary-sig-default">None</span>,
+ <span class="summary-sig-arg">filename</span>=<span class="summary-sig-default">None</span>,
+ <span class="summary-sig-arg">password</span>=<span class="summary-sig-default">None</span>,
+ <span class="summary-sig-arg">vals</span>=<span class="summary-sig-default">None</span>,
+ <span class="summary-sig-arg">file_obj</span>=<span class="summary-sig-default">None</span>)</span><br />
+ Create a new instance of this public key type.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.dsskey-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">str</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.DSSKey-class.html#__str__" class="summary-sig-name">__str__</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Return a string of an SSH <a href="paramiko.Message-class.html"
+ class="link">Message</a> made up of the public part(s) of this key.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.dsskey-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">bool</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.DSSKey-class.html#can_sign" class="summary-sig-name">can_sign</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Return <code>True</code> if this key has the private part necessary
+ for signing data.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.dsskey-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">int</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.DSSKey-class.html#get_bits" class="summary-sig-name">get_bits</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Return the number of significant bits in this key.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.dsskey-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">str</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.DSSKey-class.html#get_name" class="summary-sig-name">get_name</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Return the name of this private key implementation.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.dsskey-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"><a href="paramiko.Message-class.html" class="link">Message</a></span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.DSSKey-class.html#sign_ssh_data" class="summary-sig-name">sign_ssh_data</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">rpool</span>,
+ <span class="summary-sig-arg">data</span>)</span><br />
+ Sign a blob of data with this private key, and return a <a
+ href="paramiko.Message-class.html" class="link">Message</a>
+ representing an SSH signature message.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.dsskey-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">boolean</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.DSSKey-class.html#verify_ssh_sig" class="summary-sig-name">verify_ssh_sig</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">data</span>,
+ <span class="summary-sig-arg">msg</span>)</span><br />
+ Given a blob of data, and an SSH message representing a signature of
+ that data, verify that it was signed with this key.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.dsskey-pysrc.html">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 href="paramiko.DSSKey-class.html#write_private_key" class="summary-sig-name">write_private_key</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">file_obj</span>,
+ <span class="summary-sig-arg">password</span>=<span class="summary-sig-default">None</span>)</span><br />
+ Write private key contents into a file (or file-like) object.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.dsskey-pysrc.html">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 href="paramiko.DSSKey-class.html#write_private_key_file" class="summary-sig-name">write_private_key_file</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">filename</span>,
+ <span class="summary-sig-arg">password</span>=<span class="summary-sig-default">None</span>)</span><br />
+ Write private key contents into a file.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.dsskey-pysrc.html">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><a href="paramiko.PKey-class.html">PKey</a></code></b>:
+ <code><a href="paramiko.PKey-class.html#__cmp__">__cmp__</a></code>,
+ <code><a href="paramiko.PKey-class.html#get_base64">get_base64</a></code>,
+ <code><a href="paramiko.PKey-class.html#get_fingerprint">get_fingerprint</a></code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__delattr__</code>,
+ <code>__getattribute__</code>,
+ <code>__new__</code>,
+ <code>__reduce__</code>,
+ <code>__reduce_ex__</code>,
+ <code>__repr__</code>,
+ <code>__setattr__</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 colspan="2" class="summary">
+ <p class="indent-wrapped-lines"><b>Inherited from <code><a href="paramiko.PKey-class.html">PKey</a></code></b>:
+ <code><a href="paramiko.PKey-class.html#from_private_key">from_private_key</a></code>,
+ <code><a href="paramiko.PKey-class.html#from_private_key_file">from_private_key_file</a></code>
+ </p>
+ </td>
+ </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></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">Static Methods</span></td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"><a href="paramiko.DSSKey-class.html" class="link">DSSKey</a></span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.DSSKey-class.html#generate" class="summary-sig-name">generate</a>(<span class="summary-sig-arg">bits</span>=<span class="summary-sig-default">1024</span>,
+ <span class="summary-sig-arg">progress_func</span>=<span class="summary-sig-default">None</span>)</span><br />
+ Generate a new private DSS key.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko-pysrc.html#DSSKey.generate">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="__hash__"></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">__hash__</span>(<span class="sig-arg">self</span>)</span>
+ <br /><em class="fname">(Hashing function)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.dsskey-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>hash(x)</p>
+ <dl class="fields">
+ <dt>Overrides:
+ object.__hash__
+ <dd><em class="note">(inherited documentation)</em></dd>
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<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">msg</span>=<span class="sig-default">None</span>,
+ <span class="sig-arg">data</span>=<span class="sig-default">None</span>,
+ <span class="sig-arg">filename</span>=<span class="sig-default">None</span>,
+ <span class="sig-arg">password</span>=<span class="sig-default">None</span>,
+ <span class="sig-arg">vals</span>=<span class="sig-default">None</span>,
+ <span class="sig-arg">file_obj</span>=<span class="sig-default">None</span>)</span>
+ <br /><em class="fname">(Constructor)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.dsskey-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Create a new instance of this public key type. If <code>msg</code> is
+ given, the key's public part(s) will be filled in from the message. If
+ <code>data</code> is given, the key's public part(s) will be filled in
+ from the string.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>msg</code></strong> - an optional SSH <a href="paramiko.Message-class.html"
+ class="link">Message</a> containing a public key of this type.</li>
+ <li><strong class="pname"><code>data</code></strong> - an optional string containing a public key of this type</li>
+ </ul></dd>
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'><a href="paramiko.SSHException-class.html">SSHException</a></strong></code> - if a key cannot be created from the <code>data</code> or
+ <code>msg</code> given, or no key was passed in.</li>
+ </ul></dd>
+ <dt>Overrides:
+ object.__init__
+ <dd><em class="note">(inherited documentation)</em></dd>
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="__str__"></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">__str__</span>(<span class="sig-arg">self</span>)</span>
+ <br /><em class="fname">(Informal representation operator)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.dsskey-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return a string of an SSH <a href="paramiko.Message-class.html"
+ class="link">Message</a> made up of the public part(s) of this key. This
+ string is suitable for passing to <a
+ href="paramiko.AgentKey-class.html#__init__" class="link">__init__</a> to
+ re-create the key object later.</p>
+ <dl class="fields">
+ <dt>Returns: str</dt>
+ <dd>string representation of an SSH key message.</dd>
+ <dt>Overrides:
+ object.__str__
+ <dd><em class="note">(inherited documentation)</em></dd>
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="can_sign"></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">can_sign</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.dsskey-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return <code>True</code> if this key has the private part necessary
+ for signing data.</p>
+ <dl class="fields">
+ <dt>Returns: bool</dt>
+ <dd><code>True</code> if this is a private key.</dd>
+ <dt>Overrides:
+ <a href="paramiko.PKey-class.html#can_sign">PKey.can_sign</a>
+ <dd><em class="note">(inherited documentation)</em></dd>
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="generate"></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">generate</span>(<span class="sig-arg">bits</span>=<span class="sig-default">1024</span>,
+ <span class="sig-arg">progress_func</span>=<span class="sig-default">None</span>)</span>
+ <br /><em class="fname">Static Method</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko-pysrc.html#DSSKey.generate">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Generate a new private DSS key. This factory function can be used to
+ generate a new host key or authentication key.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>bits</code></strong> (int) - number of bits the generated key should be.</li>
+ <li><strong class="pname"><code>progress_func</code></strong> (function) - an optional function to call at key points in key generation
+ (used by <code>pyCrypto.PublicKey</code>).</li>
+ </ul></dd>
+ <dt>Returns: <a href="paramiko.DSSKey-class.html" class="link">DSSKey</a></dt>
+ <dd>new private key</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="get_bits"></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">get_bits</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.dsskey-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return the number of significant bits in this key. This is useful for
+ judging the relative security of a key.</p>
+ <dl class="fields">
+ <dt>Returns: int</dt>
+ <dd>bits in the key.</dd>
+ <dt>Overrides:
+ <a href="paramiko.PKey-class.html#get_bits">PKey.get_bits</a>
+ <dd><em class="note">(inherited documentation)</em></dd>
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="get_name"></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">get_name</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.dsskey-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return the name of this private key implementation.</p>
+ <dl class="fields">
+ <dt>Returns: str</dt>
+ <dd>name of this private key type, in SSH terminology (for example,
+ <code>&quot;ssh-rsa&quot;</code>).</dd>
+ <dt>Overrides:
+ <a href="paramiko.PKey-class.html#get_name">PKey.get_name</a>
+ <dd><em class="note">(inherited documentation)</em></dd>
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="sign_ssh_data"></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">sign_ssh_data</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">rpool</span>,
+ <span class="sig-arg">data</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.dsskey-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Sign a blob of data with this private key, and return a <a
+ href="paramiko.Message-class.html" class="link">Message</a> representing
+ an SSH signature message.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>randpool</code></strong> - a secure random number generator.</li>
+ <li><strong class="pname"><code>data</code></strong> - the data to sign.</li>
+ </ul></dd>
+ <dt>Returns: <a href="paramiko.Message-class.html" class="link">Message</a></dt>
+ <dd>an SSH signature message.</dd>
+ <dt>Overrides:
+ <a href="paramiko.PKey-class.html#sign_ssh_data">PKey.sign_ssh_data</a>
+ <dd><em class="note">(inherited documentation)</em></dd>
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="verify_ssh_sig"></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">verify_ssh_sig</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">data</span>,
+ <span class="sig-arg">msg</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.dsskey-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Given a blob of data, and an SSH message representing a signature of
+ that data, verify that it was signed with this key.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>data</code></strong> - the data that was signed.</li>
+ <li><strong class="pname"><code>msg</code></strong> - an SSH signature message</li>
+ </ul></dd>
+ <dt>Returns: boolean</dt>
+ <dd><code>True</code> if the signature verifies correctly;
+ <code>False</code> otherwise.</dd>
+ <dt>Overrides:
+ <a href="paramiko.PKey-class.html#verify_ssh_sig">PKey.verify_ssh_sig</a>
+ <dd><em class="note">(inherited documentation)</em></dd>
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="write_private_key"></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">write_private_key</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">file_obj</span>,
+ <span class="sig-arg">password</span>=<span class="sig-default">None</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.dsskey-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Write private key contents into a file (or file-like) object. If the
+ password is not <code>None</code>, the key is encrypted before
+ writing.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>file_obj</code></strong> - the file object to write into</li>
+ <li><strong class="pname"><code>password</code></strong> - an optional password to use to encrypt the key</li>
+ </ul></dd>
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'>IOError</strong></code> - if there was an error writing to the file</li>
+ <li><code><strong class='fraise'><a href="paramiko.SSHException-class.html">SSHException</a></strong></code> - if the key is invalid</li>
+ </ul></dd>
+ <dt>Overrides:
+ <a href="paramiko.PKey-class.html#write_private_key">PKey.write_private_key</a>
+ <dd><em class="note">(inherited documentation)</em></dd>
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="write_private_key_file"></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">write_private_key_file</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">filename</span>,
+ <span class="sig-arg">password</span>=<span class="sig-default">None</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.dsskey-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Write private key contents into a file. If the password is not
+ <code>None</code>, the key is encrypted before writing.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>filename</code></strong> - name of the file to write</li>
+ <li><strong class="pname"><code>password</code></strong> - an optional password to use to encrypt the key file</li>
+ </ul></dd>
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'>IOError</strong></code> - if there was an error writing the file</li>
+ <li><code><strong class='fraise'><a href="paramiko.SSHException-class.html">SSHException</a></strong></code> - if the key is invalid</li>
+ </ul></dd>
+ <dt>Overrides:
+ <a href="paramiko.PKey-class.html#write_private_key_file">PKey.write_private_key_file</a>
+ <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 Jul 6 18:30:28 2008
+ </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.HostKeys-class.html b/docs/paramiko.HostKeys-class.html
new file mode 100644
index 0000000..e4db6c8
--- /dev/null
+++ b/docs/paramiko.HostKeys-class.html
@@ -0,0 +1,643 @@
+<?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.HostKeys</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> ::
+ Class&nbsp;HostKeys
+ </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.HostKeys-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class HostKeys</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko-pysrc.html#HostKeys">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+UserDict.DictMixin --+
+ |
+ <strong class="uidshort">HostKeys</strong>
+</pre>
+
+<hr />
+<p>Representation of an openssh-style &quot;known hosts&quot; 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.</p>
+ <p>A HostKeys object can be treated like a dict; any dict lookup is
+ equivalent to calling <a href="paramiko.HostKeys-class.html#lookup"
+ class="link">lookup</a>.</p>
+
+<hr />
+<div class="fields"> <p><strong>Since:</strong>
+ 1.5.3
+ </p>
+</div><!-- ==================== 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 name="__getitem__"></a><span class="summary-sig-name">__getitem__</span>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">key</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.hostkeys-pysrc.html">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 href="paramiko.HostKeys-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">filename</span>=<span class="summary-sig-default">None</span>)</span><br />
+ Create a new HostKeys object, optionally loading keys from an openssh
+ style host-key file.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.hostkeys-pysrc.html">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="__setitem__"></a><span class="summary-sig-name">__setitem__</span>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">hostname</span>,
+ <span class="summary-sig-arg">entry</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.hostkeys-pysrc.html">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 href="paramiko.HostKeys-class.html#add" class="summary-sig-name">add</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">hostname</span>,
+ <span class="summary-sig-arg">keytype</span>,
+ <span class="summary-sig-arg">key</span>)</span><br />
+ Add a host key entry to the table.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.hostkeys-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">bool</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.HostKeys-class.html#check" class="summary-sig-name">check</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">hostname</span>,
+ <span class="summary-sig-arg">key</span>)</span><br />
+ Return True if the given key is associated with the given hostname in
+ this dictionary.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.hostkeys-pysrc.html">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 href="paramiko.HostKeys-class.html#clear" class="summary-sig-name">clear</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Remove all host keys from the dictionary.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.hostkeys-pysrc.html">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="keys"></a><span class="summary-sig-name">keys</span>(<span class="summary-sig-arg">self</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.hostkeys-pysrc.html">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 href="paramiko.HostKeys-class.html#load" class="summary-sig-name">load</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">filename</span>)</span><br />
+ Read a file of known SSH host keys, in the format used by openssh.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.hostkeys-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">dict(str, <a href="paramiko.PKey-class.html" class="link">PKey</a>)</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.HostKeys-class.html#lookup" class="summary-sig-name">lookup</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">hostname</span>)</span><br />
+ Find a hostkey entry for a given hostname or IP.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.hostkeys-pysrc.html">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 href="paramiko.HostKeys-class.html#save" class="summary-sig-name">save</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">filename</span>)</span><br />
+ Save host keys into a file, in the format used by openssh.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.hostkeys-pysrc.html">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 href="paramiko.HostKeys-class.html#values" class="summary-sig-name">values</a>(<span class="summary-sig-arg">self</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.hostkeys-pysrc.html">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>UserDict.DictMixin</code></b>:
+ <code>__cmp__</code>,
+ <code>__contains__</code>,
+ <code>__iter__</code>,
+ <code>__len__</code>,
+ <code>__repr__</code>,
+ <code>get</code>,
+ <code>has_key</code>,
+ <code>items</code>,
+ <code>iteritems</code>,
+ <code>iterkeys</code>,
+ <code>itervalues</code>,
+ <code>pop</code>,
+ <code>popitem</code>,
+ <code>setdefault</code>,
+ <code>update</code>
+ </p>
+ </td>
+ </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></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">Static Methods</span></td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">str</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.HostKeys-class.html#hash_host" class="summary-sig-name">hash_host</a>(<span class="summary-sig-arg">hostname</span>,
+ <span class="summary-sig-arg">salt</span>=<span class="summary-sig-default">None</span>)</span><br />
+ Return a &quot;hashed&quot; form of the hostname, as used by openssh
+ when storing hashed hostnames in the known_hosts file.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko-pysrc.html#HostKeys.hash_host">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </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">filename</span>=<span class="sig-default">None</span>)</span>
+ <br /><em class="fname">(Constructor)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.hostkeys-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Create a new HostKeys object, optionally loading keys from an openssh
+ style host-key file.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>filename</code></strong> (str) - filename to load host keys from, or <code>None</code></li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="add"></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">add</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">hostname</span>,
+ <span class="sig-arg">keytype</span>,
+ <span class="sig-arg">key</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.hostkeys-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Add a host key entry to the table. Any existing entry for a
+ <code>(hostname, keytype)</code> pair will be replaced.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>hostname</code></strong> (str) - the hostname (or IP) to add</li>
+ <li><strong class="pname"><code>keytype</code></strong> (str) - key type (<code>&quot;ssh-rsa&quot;</code> or
+ <code>&quot;ssh-dss&quot;</code>)</li>
+ <li><strong class="pname"><code>key</code></strong> (<a href="paramiko.PKey-class.html" class="link">PKey</a>) - the key to add</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="check"></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">check</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">hostname</span>,
+ <span class="sig-arg">key</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.hostkeys-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return True if the given key is associated with the given hostname in
+ this dictionary.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>hostname</code></strong> (str) - hostname (or IP) of the SSH server</li>
+ <li><strong class="pname"><code>key</code></strong> (<a href="paramiko.PKey-class.html" class="link">PKey</a>) - the key to check</li>
+ </ul></dd>
+ <dt>Returns: bool</dt>
+ <dd><code>True</code> if the key is associated with the hostname;
+ <code>False</code> if not</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="clear"></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">clear</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.hostkeys-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Remove all host keys from the dictionary.</p>
+ <dl class="fields">
+ <dt>Overrides:
+ UserDict.DictMixin.clear
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="hash_host"></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">hash_host</span>(<span class="sig-arg">hostname</span>,
+ <span class="sig-arg">salt</span>=<span class="sig-default">None</span>)</span>
+ <br /><em class="fname">Static Method</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko-pysrc.html#HostKeys.hash_host">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return a &quot;hashed&quot; form of the hostname, as used by openssh
+ when storing hashed hostnames in the known_hosts file.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>hostname</code></strong> (str) - the hostname to hash</li>
+ <li><strong class="pname"><code>salt</code></strong> (str) - optional salt to use when hashing (must be 20 bytes long)</li>
+ </ul></dd>
+ <dt>Returns: str</dt>
+ <dd>the hashed hostname</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="load"></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">load</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">filename</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.hostkeys-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>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
+ <code>os.path.expanduser(&quot;~/.ssh/known_hosts&quot;)</code>.</p>
+ <p>If this method is called multiple times, the host keys are merged, not
+ cleared. So multiple calls to <code>load</code> will just call <a
+ href="paramiko.HostKeys-class.html#add" class="link">add</a>, replacing
+ any existing entries and adding new ones.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>filename</code></strong> (str) - name of the file to read host keys from</li>
+ </ul></dd>
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'>IOError</strong></code> - if there was an error reading the file</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="lookup"></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">lookup</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">hostname</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.hostkeys-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Find a hostkey entry for a given hostname or IP. If no entry is
+ found, <code>None</code> is returned. Otherwise a dictionary of keytype
+ to key is returned. The keytype will be either
+ <code>&quot;ssh-rsa&quot;</code> or <code>&quot;ssh-dss&quot;</code>.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>hostname</code></strong> (str) - the hostname (or IP) to lookup</li>
+ </ul></dd>
+ <dt>Returns: dict(str, <a href="paramiko.PKey-class.html" class="link">PKey</a>)</dt>
+ <dd>keys associated with this host (or <code>None</code>)</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="save"></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">save</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">filename</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.hostkeys-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>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.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>filename</code></strong> (str) - name of the file to write</li>
+ </ul></dd>
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'>IOError</strong></code> - if there was an error writing the file</li>
+ </ul></dd>
+ </dl>
+<div class="fields"> <p><strong>Since:</strong>
+ 1.6.1
+ </p>
+</div></td></tr></table>
+</div>
+<a name="values"></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">values</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.hostkeys-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+
+ <dl class="fields">
+ <dt>Overrides:
+ UserDict.DictMixin.values
+ </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 Jul 6 18:30:28 2008
+ </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.Message-class.html b/docs/paramiko.Message-class.html
new file mode 100644
index 0000000..7edfd13
--- /dev/null
+++ b/docs/paramiko.Message-class.html
@@ -0,0 +1,1098 @@
+<?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.Message</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> ::
+ Class&nbsp;Message
+ </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.Message-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class Message</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko-pysrc.html#Message">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+object --+
+ |
+ <strong class="uidshort">Message</strong>
+</pre>
+
+<hr />
+<p>An SSH2 <i>Message</i> is a stream of bytes that encodes some
+ combination of strings, integers, bools, and infinite-precision integers
+ (known in python as <i>long</i>s). This class builds or breaks down such
+ a byte stream.</p>
+ <p>Normally you don't need to deal with anything this low-level, but it's
+ exposed for people implementing custom extensions, or features that
+ paramiko doesn't support yet.</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.Message-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">content</span>=<span class="summary-sig-default">None</span>)</span><br />
+ Create a new SSH2 Message.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.message-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">string</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.Message-class.html#__repr__" class="summary-sig-name">__repr__</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Returns a string representation of this object, for debugging.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.message-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">string</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.Message-class.html#__str__" class="summary-sig-name">__str__</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Return the byte stream content of this Message, as a string.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.message-pysrc.html">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 href="paramiko.Message-class.html#add" class="summary-sig-name">add</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">*seq</span>)</span><br />
+ Add a sequence of items to the stream.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.message-pysrc.html">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 href="paramiko.Message-class.html#add_boolean" class="summary-sig-name">add_boolean</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">b</span>)</span><br />
+ Add a boolean value to the stream.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.message-pysrc.html">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 href="paramiko.Message-class.html#add_byte" class="summary-sig-name">add_byte</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">b</span>)</span><br />
+ Write a single byte to the stream, without any formatting.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.message-pysrc.html">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 href="paramiko.Message-class.html#add_bytes" class="summary-sig-name">add_bytes</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">b</span>)</span><br />
+ Write bytes to the stream, without any formatting.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.message-pysrc.html">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 href="paramiko.Message-class.html#add_int" class="summary-sig-name">add_int</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">n</span>)</span><br />
+ Add an integer to the stream.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.message-pysrc.html">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 href="paramiko.Message-class.html#add_int64" class="summary-sig-name">add_int64</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">n</span>)</span><br />
+ Add a 64-bit int to the stream.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.message-pysrc.html">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 href="paramiko.Message-class.html#add_list" class="summary-sig-name">add_list</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">l</span>)</span><br />
+ Add a list of strings to the stream.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.message-pysrc.html">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 href="paramiko.Message-class.html#add_mpint" class="summary-sig-name">add_mpint</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">z</span>)</span><br />
+ Add a long int to the stream, encoded as an infinite-precision
+ integer.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.message-pysrc.html">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 href="paramiko.Message-class.html#add_string" class="summary-sig-name">add_string</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">s</span>)</span><br />
+ Add a string to the stream.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.message-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">bool</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.Message-class.html#get_boolean" class="summary-sig-name">get_boolean</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Fetch a boolean from the stream.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.message-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">string</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.Message-class.html#get_byte" class="summary-sig-name">get_byte</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Return the next byte of the Message, without decomposing it.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.message-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">string</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.Message-class.html#get_bytes" class="summary-sig-name">get_bytes</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">n</span>)</span><br />
+ Return the next <code>n</code> bytes of the Message, without
+ decomposing into an int, string, etc.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.message-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">int</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.Message-class.html#get_int" class="summary-sig-name">get_int</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Fetch an int from the stream.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.message-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">long</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.Message-class.html#get_int64" class="summary-sig-name">get_int64</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Fetch a 64-bit int from the stream.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.message-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">list of strings</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.Message-class.html#get_list" class="summary-sig-name">get_list</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Fetch a list of strings from the stream.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.message-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">long</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.Message-class.html#get_mpint" class="summary-sig-name">get_mpint</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Fetch a long int (mpint) from the stream.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.message-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">string</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.Message-class.html#get_remainder" class="summary-sig-name">get_remainder</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Return the bytes of this Message that haven't already been parsed and
+ returned.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.message-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">string</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.Message-class.html#get_so_far" class="summary-sig-name">get_so_far</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Returns the bytes of this Message that have been parsed and returned.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.message-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">string</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.Message-class.html#get_string" class="summary-sig-name">get_string</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Fetch a string from the stream.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.message-pysrc.html">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="rewind"></a><span class="summary-sig-name">rewind</span>(<span class="summary-sig-arg">self</span>)</span><br />
+ Rewind the message to the beginning as if no items had been parsed
+ out of it yet.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.message-pysrc.html">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>__getattribute__</code>,
+ <code>__hash__</code>,
+ <code>__new__</code>,
+ <code>__reduce__</code>,
+ <code>__reduce_ex__</code>,
+ <code>__setattr__</code>
+ </p>
+ </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">content</span>=<span class="sig-default">None</span>)</span>
+ <br /><em class="fname">(Constructor)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.message-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Create a new SSH2 Message.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>content</code></strong> (string) - the byte stream to use as the Message content (passed in only
+ when decomposing a Message).</li>
+ </ul></dd>
+ <dt>Overrides:
+ object.__init__
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="__repr__"></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">__repr__</span>(<span class="sig-arg">self</span>)</span>
+ <br /><em class="fname">(Representation operator)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.message-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Returns a string representation of this object, for debugging.</p>
+ <dl class="fields">
+ <dt>Returns: string</dt>
+ <dt>Overrides:
+ object.__repr__
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="__str__"></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">__str__</span>(<span class="sig-arg">self</span>)</span>
+ <br /><em class="fname">(Informal representation operator)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.message-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return the byte stream content of this Message, as a string.</p>
+ <dl class="fields">
+ <dt>Returns: string</dt>
+ <dd>the contents of this Message.</dd>
+ <dt>Overrides:
+ object.__str__
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="add"></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">add</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">*seq</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.message-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Add a sequence of items to the stream. The values are encoded based
+ on their type: str, int, bool, list, or long.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>seq</code></strong> (sequence) - the sequence of items</li>
+ </ul></dd>
+ </dl>
+<div class="fields"> <p><strong>Bug:</strong>
+ longs are encoded non-deterministically. Don't use this method.
+ </p>
+</div></td></tr></table>
+</div>
+<a name="add_boolean"></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">add_boolean</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">b</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.message-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Add a boolean value to the stream.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>b</code></strong> (bool) - boolean value to add</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="add_byte"></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">add_byte</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">b</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.message-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Write a single byte to the stream, without any formatting.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>b</code></strong> (str) - byte to add</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="add_bytes"></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">add_bytes</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">b</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.message-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Write bytes to the stream, without any formatting.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>b</code></strong> (str) - bytes to add</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="add_int"></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">add_int</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">n</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.message-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Add an integer to the stream.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>n</code></strong> (int) - integer to add</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="add_int64"></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">add_int64</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">n</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.message-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Add a 64-bit int to the stream.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>n</code></strong> (long) - long int to add</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="add_list"></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">add_list</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">l</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.message-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Add a list of strings to the stream. They are encoded identically to
+ a single string of values separated by commas. (Yes, really, that's how
+ SSH2 does it.)</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>l</code></strong> (list(str)) - list of strings to add</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="add_mpint"></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">add_mpint</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">z</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.message-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Add a long int to the stream, encoded as an infinite-precision
+ integer. This method only works on positive numbers.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>z</code></strong> (long) - long int to add</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="add_string"></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">add_string</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">s</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.message-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Add a string to the stream.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>s</code></strong> (str) - string to add</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="get_boolean"></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">get_boolean</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.message-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Fetch a boolean from the stream.</p>
+ <dl class="fields">
+ <dt>Returns: bool</dt>
+ <dd><code>True</code> or <code>False</code> (from the Message).</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="get_byte"></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">get_byte</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.message-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return the next byte of the Message, without decomposing it. This is
+ equivalent to <a href="paramiko.Message-class.html#get_bytes"
+ class="link">get_bytes(1)</a>.</p>
+ <dl class="fields">
+ <dt>Returns: string</dt>
+ <dd>the next byte of the Message, or <code>'
+ any bytes remaining.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="get_bytes"></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">get_bytes</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">n</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.message-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return the next <code>n</code> bytes of the Message, without
+ decomposing into an int, string, etc. Just the raw bytes are
+ returned.</p>
+ <dl class="fields">
+ <dt>Returns: string</dt>
+ <dd>a string of the next <code>n</code> bytes of the Message, or a
+ string of <code>n</code> zero bytes, if there aren't
+ <code>n</code> bytes remaining.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="get_int"></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">get_int</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.message-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Fetch an int from the stream.</p>
+ <dl class="fields">
+ <dt>Returns: int</dt>
+ <dd>a 32-bit unsigned integer.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="get_int64"></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">get_int64</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.message-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Fetch a 64-bit int from the stream.</p>
+ <dl class="fields">
+ <dt>Returns: long</dt>
+ <dd>a 64-bit unsigned integer.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="get_list"></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">get_list</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.message-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Fetch a list of strings from the stream. These are trivially encoded
+ as comma-separated values in a string.</p>
+ <dl class="fields">
+ <dt>Returns: list of strings</dt>
+ <dd>a list of strings.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="get_mpint"></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">get_mpint</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.message-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Fetch a long int (mpint) from the stream.</p>
+ <dl class="fields">
+ <dt>Returns: long</dt>
+ <dd>an arbitrary-length integer.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="get_remainder"></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">get_remainder</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.message-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return the bytes of this Message that haven't already been parsed and
+ returned.</p>
+ <dl class="fields">
+ <dt>Returns: string</dt>
+ <dd>a string of the bytes not parsed yet.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="get_so_far"></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">get_so_far</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.message-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Returns the bytes of this Message that have been parsed and returned.
+ The string passed into a Message's constructor can be regenerated by
+ concatenating <code>get_so_far</code> and <a
+ href="paramiko.Message-class.html#get_remainder"
+ class="link">get_remainder</a>.</p>
+ <dl class="fields">
+ <dt>Returns: string</dt>
+ <dd>a string of the bytes parsed so far.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="get_string"></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">get_string</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.message-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Fetch a string from the stream. This could be a byte string and may
+ contain unprintable characters. (It's not unheard of for a string to
+ contain another byte-stream Message.)</p>
+ <dl class="fields">
+ <dt>Returns: string</dt>
+ <dd>a string.</dd>
+ </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 Jul 6 18:30:28 2008
+ </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.MissingHostKeyPolicy-class.html b/docs/paramiko.MissingHostKeyPolicy-class.html
new file mode 100644
index 0000000..29eaf1a
--- /dev/null
+++ b/docs/paramiko.MissingHostKeyPolicy-class.html
@@ -0,0 +1,229 @@
+<?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.MissingHostKeyPolicy</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> ::
+ Class&nbsp;MissingHostKeyPolicy
+ </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.MissingHostKeyPolicy-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class MissingHostKeyPolicy</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko-pysrc.html#MissingHostKeyPolicy">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+object --+
+ |
+ <strong class="uidshort">MissingHostKeyPolicy</strong>
+</pre>
+
+<dl><dt>Known Subclasses:</dt>
+<dd>
+ <ul class="subclass-list">
+<li><a href="paramiko.AutoAddPolicy-class.html">AutoAddPolicy</a></li><li>, <a href="paramiko.RejectPolicy-class.html">RejectPolicy</a></li><li>, <a href="paramiko.WarningPolicy-class.html">WarningPolicy</a></li> </ul>
+</dd></dl>
+
+<hr />
+<p>Interface for defining the policy that <a
+ href="paramiko.SSHClient-class.html" class="link">SSHClient</a> should
+ use when the SSH server's hostname is not in either the system host keys
+ or the application's keys. Pre-made classes implement policies for
+ automatically adding the key to the application's <a
+ href="paramiko.HostKeys-class.html" class="link">HostKeys</a> object (<a
+ href="paramiko.AutoAddPolicy-class.html" class="link">AutoAddPolicy</a>),
+ and for automatically rejecting the key (<a
+ href="paramiko.RejectPolicy-class.html"
+ class="link">RejectPolicy</a>).</p>
+ <p>This function may be used to ask the user to verify the key, for
+ example.</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.MissingHostKeyPolicy-class.html#missing_host_key" class="summary-sig-name">missing_host_key</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">client</span>,
+ <span class="summary-sig-arg">hostname</span>,
+ <span class="summary-sig-arg">key</span>)</span><br />
+ Called when an <a href="paramiko.SSHClient-class.html"
+ class="link">SSHClient</a> receives a server key for a server that
+ isn't in either the system or local <a
+ href="paramiko.HostKeys-class.html" class="link">HostKeys</a> object.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.client-pysrc.html">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>__getattribute__</code>,
+ <code>__hash__</code>,
+ <code>__init__</code>,
+ <code>__new__</code>,
+ <code>__reduce__</code>,
+ <code>__reduce_ex__</code>,
+ <code>__repr__</code>,
+ <code>__setattr__</code>,
+ <code>__str__</code>
+ </p>
+ </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="missing_host_key"></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">missing_host_key</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">client</span>,
+ <span class="sig-arg">hostname</span>,
+ <span class="sig-arg">key</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.client-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Called when an <a href="paramiko.SSHClient-class.html"
+ class="link">SSHClient</a> receives a server key for a server that isn't
+ in either the system or local <a href="paramiko.HostKeys-class.html"
+ class="link">HostKeys</a> object. To accept the key, simply return. To
+ reject, raised an exception (which will be passed to the calling
+ application).</p>
+ <dl class="fields">
+ </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 Jul 6 18:30:28 2008
+ </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.PKey-class.html b/docs/paramiko.PKey-class.html
new file mode 100644
index 0000000..0e9bd2a
--- /dev/null
+++ b/docs/paramiko.PKey-class.html
@@ -0,0 +1,854 @@
+<?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.PKey</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> ::
+ Class&nbsp;PKey
+ </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.PKey-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class PKey</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko-pysrc.html#PKey">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+object --+
+ |
+ <strong class="uidshort">PKey</strong>
+</pre>
+
+<dl><dt>Known Subclasses:</dt>
+<dd>
+ <ul class="subclass-list">
+<li><a href="paramiko.AgentKey-class.html">AgentKey</a></li><li>, <a href="paramiko.DSSKey-class.html">DSSKey</a></li><li>, <a href="paramiko.RSAKey-class.html">RSAKey</a></li> </ul>
+</dd></dl>
+
+<hr />
+<p>Base class for public keys.</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">int</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.PKey-class.html#__cmp__" class="summary-sig-name">__cmp__</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">other</span>)</span><br />
+ Compare this key to another.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.pkey-pysrc.html">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 href="paramiko.PKey-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">msg</span>=<span class="summary-sig-default">None</span>,
+ <span class="summary-sig-arg">data</span>=<span class="summary-sig-default">None</span>)</span><br />
+ Create a new instance of this public key type.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.pkey-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">str</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.PKey-class.html#__str__" class="summary-sig-name">__str__</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Return a string of an SSH <a href="paramiko.Message-class.html"
+ class="link">Message</a> made up of the public part(s) of this key.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.pkey-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">bool</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.PKey-class.html#can_sign" class="summary-sig-name">can_sign</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Return <code>True</code> if this key has the private part necessary
+ for signing data.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.pkey-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">str</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.PKey-class.html#get_base64" class="summary-sig-name">get_base64</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Return a base64 string containing the public part of this key.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.pkey-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">int</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.PKey-class.html#get_bits" class="summary-sig-name">get_bits</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Return the number of significant bits in this key.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.pkey-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">str</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.PKey-class.html#get_fingerprint" class="summary-sig-name">get_fingerprint</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Return an MD5 fingerprint of the public part of this key.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.pkey-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">str</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.PKey-class.html#get_name" class="summary-sig-name">get_name</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Return the name of this private key implementation.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.pkey-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"><a href="paramiko.Message-class.html" class="link">Message</a></span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.PKey-class.html#sign_ssh_data" class="summary-sig-name">sign_ssh_data</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">randpool</span>,
+ <span class="summary-sig-arg">data</span>)</span><br />
+ Sign a blob of data with this private key, and return a <a
+ href="paramiko.Message-class.html" class="link">Message</a>
+ representing an SSH signature message.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.pkey-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">boolean</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.PKey-class.html#verify_ssh_sig" class="summary-sig-name">verify_ssh_sig</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">data</span>,
+ <span class="summary-sig-arg">msg</span>)</span><br />
+ Given a blob of data, and an SSH message representing a signature of
+ that data, verify that it was signed with this key.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.pkey-pysrc.html">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 href="paramiko.PKey-class.html#write_private_key" class="summary-sig-name">write_private_key</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">file_obj</span>,
+ <span class="summary-sig-arg">password</span>=<span class="summary-sig-default">None</span>)</span><br />
+ Write private key contents into a file (or file-like) object.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.pkey-pysrc.html">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 href="paramiko.PKey-class.html#write_private_key_file" class="summary-sig-name">write_private_key_file</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">filename</span>,
+ <span class="summary-sig-arg">password</span>=<span class="summary-sig-default">None</span>)</span><br />
+ Write private key contents into a file.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.pkey-pysrc.html">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>__getattribute__</code>,
+ <code>__hash__</code>,
+ <code>__new__</code>,
+ <code>__reduce__</code>,
+ <code>__reduce_ex__</code>,
+ <code>__repr__</code>,
+ <code>__setattr__</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"><a href="paramiko.PKey-class.html" class="link">PKey</a></span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.PKey-class.html#from_private_key" class="summary-sig-name">from_private_key</a>(<span class="summary-sig-arg">cls</span>,
+ <span class="summary-sig-arg">file_obj</span>,
+ <span class="summary-sig-arg">password</span>=<span class="summary-sig-default">None</span>)</span><br />
+ Create a key object by reading a private key from a file (or
+ file-like) object.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko-pysrc.html#PKey.from_private_key">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"><a href="paramiko.PKey-class.html" class="link">PKey</a></span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.PKey-class.html#from_private_key_file" class="summary-sig-name">from_private_key_file</a>(<span class="summary-sig-arg">cls</span>,
+ <span class="summary-sig-arg">filename</span>,
+ <span class="summary-sig-arg">password</span>=<span class="summary-sig-default">None</span>)</span><br />
+ Create a key object by reading a private key file.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko-pysrc.html#PKey.from_private_key_file">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="__cmp__"></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">__cmp__</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">other</span>)</span>
+ <br /><em class="fname">(Comparison operator)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.pkey-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Compare this key to another. Returns 0 if this key is equivalent to
+ the given key, or non-0 if they are different. Only the public parts of
+ the key are compared, so a public key will compare equal to its
+ corresponding private key.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>other</code></strong> (<a href="paramiko.PKey-class.html" class="link">PKey</a>) - key to compare to.</li>
+ </ul></dd>
+ <dt>Returns: int</dt>
+ <dd>0 if the two keys are equivalent, non-0 otherwise.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<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">msg</span>=<span class="sig-default">None</span>,
+ <span class="sig-arg">data</span>=<span class="sig-default">None</span>)</span>
+ <br /><em class="fname">(Constructor)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.pkey-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Create a new instance of this public key type. If <code>msg</code> is
+ given, the key's public part(s) will be filled in from the message. If
+ <code>data</code> is given, the key's public part(s) will be filled in
+ from the string.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>msg</code></strong> (<a href="paramiko.Message-class.html" class="link">Message</a>) - an optional SSH <a href="paramiko.Message-class.html"
+ class="link">Message</a> containing a public key of this type.</li>
+ <li><strong class="pname"><code>data</code></strong> (str) - an optional string containing a public key of this type</li>
+ </ul></dd>
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'><a href="paramiko.SSHException-class.html">SSHException</a></strong></code> - if a key cannot be created from the <code>data</code> or
+ <code>msg</code> given, or no key was passed in.</li>
+ </ul></dd>
+ <dt>Overrides:
+ object.__init__
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="__str__"></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">__str__</span>(<span class="sig-arg">self</span>)</span>
+ <br /><em class="fname">(Informal representation operator)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.pkey-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return a string of an SSH <a href="paramiko.Message-class.html"
+ class="link">Message</a> made up of the public part(s) of this key. This
+ string is suitable for passing to <a
+ href="paramiko.AgentKey-class.html#__init__" class="link">__init__</a> to
+ re-create the key object later.</p>
+ <dl class="fields">
+ <dt>Returns: str</dt>
+ <dd>string representation of an SSH key message.</dd>
+ <dt>Overrides:
+ object.__str__
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="can_sign"></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">can_sign</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.pkey-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return <code>True</code> if this key has the private part necessary
+ for signing data.</p>
+ <dl class="fields">
+ <dt>Returns: bool</dt>
+ <dd><code>True</code> if this is a private key.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="from_private_key"></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">from_private_key</span>(<span class="sig-arg">cls</span>,
+ <span class="sig-arg">file_obj</span>,
+ <span class="sig-arg">password</span>=<span class="sig-default">None</span>)</span>
+ <br /><em class="fname">Class Method</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko-pysrc.html#PKey.from_private_key">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Create a key object by reading a private key from a file (or
+ file-like) object. If the private key is encrypted and
+ <code>password</code> is not <code>None</code>, the given password will
+ be used to decrypt the key (otherwise <a
+ href="paramiko.PasswordRequiredException-class.html"
+ class="link">PasswordRequiredException</a> is thrown).</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>file_obj</code></strong> (file) - the file to read from</li>
+ <li><strong class="pname"><code>password</code></strong> (str) - an optional password to use to decrypt the key, if it's encrypted</li>
+ </ul></dd>
+ <dt>Returns: <a href="paramiko.PKey-class.html" class="link">PKey</a></dt>
+ <dd>a new key object based on the given private key</dd>
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'>IOError</strong></code> - if there was an error reading the key</li>
+ <li><code><strong class='fraise'><a href="paramiko.PasswordRequiredException-class.html">PasswordRequiredException</a></strong></code> - if the private key file is encrypted, and <code>password</code> is
+ <code>None</code></li>
+ <li><code><strong class='fraise'><a href="paramiko.SSHException-class.html">SSHException</a></strong></code> - if the key file is invalid</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="from_private_key_file"></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">from_private_key_file</span>(<span class="sig-arg">cls</span>,
+ <span class="sig-arg">filename</span>,
+ <span class="sig-arg">password</span>=<span class="sig-default">None</span>)</span>
+ <br /><em class="fname">Class Method</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko-pysrc.html#PKey.from_private_key_file">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Create a key object by reading a private key file. If the private key
+ is encrypted and <code>password</code> is not <code>None</code>, the
+ given password will be used to decrypt the key (otherwise <a
+ href="paramiko.PasswordRequiredException-class.html"
+ class="link">PasswordRequiredException</a> is thrown). Through the magic
+ of python, this factory method will exist in all subclasses of PKey (such
+ as <a href="paramiko.RSAKey-class.html" class="link">RSAKey</a> or <a
+ href="paramiko.DSSKey-class.html" class="link">DSSKey</a>), but is
+ useless on the abstract PKey class.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>filename</code></strong> (str) - name of the file to read</li>
+ <li><strong class="pname"><code>password</code></strong> (str) - an optional password to use to decrypt the key file, if it's
+ encrypted</li>
+ </ul></dd>
+ <dt>Returns: <a href="paramiko.PKey-class.html" class="link">PKey</a></dt>
+ <dd>a new key object based on the given private key</dd>
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'>IOError</strong></code> - if there was an error reading the file</li>
+ <li><code><strong class='fraise'><a href="paramiko.PasswordRequiredException-class.html">PasswordRequiredException</a></strong></code> - if the private key file is encrypted, and <code>password</code> is
+ <code>None</code></li>
+ <li><code><strong class='fraise'><a href="paramiko.SSHException-class.html">SSHException</a></strong></code> - if the key file is invalid</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="get_base64"></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">get_base64</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.pkey-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return a base64 string containing the public part of this key.
+ Nothing secret is revealed. This format is compatible with that used to
+ store public key files or recognized host keys.</p>
+ <dl class="fields">
+ <dt>Returns: str</dt>
+ <dd>a base64 string containing the public part of the key.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="get_bits"></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">get_bits</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.pkey-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return the number of significant bits in this key. This is useful for
+ judging the relative security of a key.</p>
+ <dl class="fields">
+ <dt>Returns: int</dt>
+ <dd>bits in the key.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="get_fingerprint"></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">get_fingerprint</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.pkey-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return an MD5 fingerprint of the public part of this key. Nothing
+ secret is revealed.</p>
+ <dl class="fields">
+ <dt>Returns: str</dt>
+ <dd>a 16-byte string (binary) of the MD5 fingerprint, in SSH format.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="get_name"></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">get_name</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.pkey-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return the name of this private key implementation.</p>
+ <dl class="fields">
+ <dt>Returns: str</dt>
+ <dd>name of this private key type, in SSH terminology (for example,
+ <code>&quot;ssh-rsa&quot;</code>).</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="sign_ssh_data"></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">sign_ssh_data</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">randpool</span>,
+ <span class="sig-arg">data</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.pkey-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Sign a blob of data with this private key, and return a <a
+ href="paramiko.Message-class.html" class="link">Message</a> representing
+ an SSH signature message.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>randpool</code></strong> (<code class="link">Crypto.Util.randpool.RandomPool</code>) - a secure random number generator.</li>
+ <li><strong class="pname"><code>data</code></strong> (str) - the data to sign.</li>
+ </ul></dd>
+ <dt>Returns: <a href="paramiko.Message-class.html" class="link">Message</a></dt>
+ <dd>an SSH signature message.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="verify_ssh_sig"></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">verify_ssh_sig</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">data</span>,
+ <span class="sig-arg">msg</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.pkey-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Given a blob of data, and an SSH message representing a signature of
+ that data, verify that it was signed with this key.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>data</code></strong> (str) - the data that was signed.</li>
+ <li><strong class="pname"><code>msg</code></strong> (<a href="paramiko.Message-class.html" class="link">Message</a>) - an SSH signature message</li>
+ </ul></dd>
+ <dt>Returns: boolean</dt>
+ <dd><code>True</code> if the signature verifies correctly;
+ <code>False</code> otherwise.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="write_private_key"></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">write_private_key</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">file_obj</span>,
+ <span class="sig-arg">password</span>=<span class="sig-default">None</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.pkey-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Write private key contents into a file (or file-like) object. If the
+ password is not <code>None</code>, the key is encrypted before
+ writing.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>file_obj</code></strong> (file) - the file object to write into</li>
+ <li><strong class="pname"><code>password</code></strong> (str) - an optional password to use to encrypt the key</li>
+ </ul></dd>
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'>IOError</strong></code> - if there was an error writing to the file</li>
+ <li><code><strong class='fraise'><a href="paramiko.SSHException-class.html">SSHException</a></strong></code> - if the key is invalid</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="write_private_key_file"></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">write_private_key_file</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">filename</span>,
+ <span class="sig-arg">password</span>=<span class="sig-default">None</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.pkey-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Write private key contents into a file. If the password is not
+ <code>None</code>, the key is encrypted before writing.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>filename</code></strong> (str) - name of the file to write</li>
+ <li><strong class="pname"><code>password</code></strong> (str) - an optional password to use to encrypt the key file</li>
+ </ul></dd>
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'>IOError</strong></code> - if there was an error writing the file</li>
+ <li><code><strong class='fraise'><a href="paramiko.SSHException-class.html">SSHException</a></strong></code> - if the key is invalid</li>
+ </ul></dd>
+ </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 Jul 6 18:30:29 2008
+ </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.PasswordRequiredException-class.html b/docs/paramiko.PasswordRequiredException-class.html
new file mode 100644
index 0000000..4de6bcb
--- /dev/null
+++ b/docs/paramiko.PasswordRequiredException-class.html
@@ -0,0 +1,171 @@
+<?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.PasswordRequiredException</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> ::
+ Class&nbsp;PasswordRequiredException
+ </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.PasswordRequiredException-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class PasswordRequiredException</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko-pysrc.html#PasswordRequiredException">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+ object --+
+ |
+exceptions.BaseException --+
+ |
+ exceptions.Exception --+
+ |
+ <a href="paramiko.SSHException-class.html">SSHException</a> --+
+ |
+ <a href="paramiko.AuthenticationException-class.html">AuthenticationException</a> --+
+ |
+ <strong class="uidshort">PasswordRequiredException</strong>
+</pre>
+
+<hr />
+<p>Exception raised when a password is needed to unlock a private key
+ file.</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 colspan="2" class="summary">
+ <p class="indent-wrapped-lines"><b>Inherited from <code>exceptions.Exception</code></b>:
+ <code>__init__</code>,
+ <code>__new__</code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>exceptions.BaseException</code></b>:
+ <code>__delattr__</code>,
+ <code>__getattribute__</code>,
+ <code>__getitem__</code>,
+ <code>__reduce__</code>,
+ <code>__repr__</code>,
+ <code>__setattr__</code>,
+ <code>__setstate__</code>,
+ <code>__str__</code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__hash__</code>,
+ <code>__reduce_ex__</code>
+ </p>
+ </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>exceptions.BaseException</code></b>:
+ <code>args</code>,
+ <code>message</code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__class__</code>
+ </p>
+ </td>
+ </tr>
+</table>
+<!-- ==================== 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 Jul 6 18:30:29 2008
+ </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.RSAKey-class.html b/docs/paramiko.RSAKey-class.html
new file mode 100644
index 0000000..a611e3f
--- /dev/null
+++ b/docs/paramiko.RSAKey-class.html
@@ -0,0 +1,747 @@
+<?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.RSAKey</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> ::
+ Class&nbsp;RSAKey
+ </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.RSAKey-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class RSAKey</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko-pysrc.html#RSAKey">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+object --+
+ |
+ <a href="paramiko.PKey-class.html">PKey</a> --+
+ |
+ <strong class="uidshort">RSAKey</strong>
+</pre>
+
+<hr />
+<p>Representation of an RSA key which can be used to sign and verify SSH2
+ data.</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.RSAKey-class.html#__hash__" class="summary-sig-name">__hash__</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ hash(x)</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.rsakey-pysrc.html">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 href="paramiko.RSAKey-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">msg</span>=<span class="summary-sig-default">None</span>,
+ <span class="summary-sig-arg">data</span>=<span class="summary-sig-default">None</span>,
+ <span class="summary-sig-arg">filename</span>=<span class="summary-sig-default">None</span>,
+ <span class="summary-sig-arg">password</span>=<span class="summary-sig-default">None</span>,
+ <span class="summary-sig-arg">vals</span>=<span class="summary-sig-default">None</span>,
+ <span class="summary-sig-arg">file_obj</span>=<span class="summary-sig-default">None</span>)</span><br />
+ Create a new instance of this public key type.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.rsakey-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">str</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.RSAKey-class.html#__str__" class="summary-sig-name">__str__</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Return a string of an SSH <a href="paramiko.Message-class.html"
+ class="link">Message</a> made up of the public part(s) of this key.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.rsakey-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">bool</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.RSAKey-class.html#can_sign" class="summary-sig-name">can_sign</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Return <code>True</code> if this key has the private part necessary
+ for signing data.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.rsakey-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">int</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.RSAKey-class.html#get_bits" class="summary-sig-name">get_bits</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Return the number of significant bits in this key.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.rsakey-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">str</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.RSAKey-class.html#get_name" class="summary-sig-name">get_name</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Return the name of this private key implementation.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.rsakey-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"><a href="paramiko.Message-class.html" class="link">Message</a></span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.RSAKey-class.html#sign_ssh_data" class="summary-sig-name">sign_ssh_data</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">rpool</span>,
+ <span class="summary-sig-arg">data</span>)</span><br />
+ Sign a blob of data with this private key, and return a <a
+ href="paramiko.Message-class.html" class="link">Message</a>
+ representing an SSH signature message.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.rsakey-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">boolean</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.RSAKey-class.html#verify_ssh_sig" class="summary-sig-name">verify_ssh_sig</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">data</span>,
+ <span class="summary-sig-arg">msg</span>)</span><br />
+ Given a blob of data, and an SSH message representing a signature of
+ that data, verify that it was signed with this key.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.rsakey-pysrc.html">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 href="paramiko.RSAKey-class.html#write_private_key" class="summary-sig-name">write_private_key</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">file_obj</span>,
+ <span class="summary-sig-arg">password</span>=<span class="summary-sig-default">None</span>)</span><br />
+ Write private key contents into a file (or file-like) object.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.rsakey-pysrc.html">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 href="paramiko.RSAKey-class.html#write_private_key_file" class="summary-sig-name">write_private_key_file</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">filename</span>,
+ <span class="summary-sig-arg">password</span>=<span class="summary-sig-default">None</span>)</span><br />
+ Write private key contents into a file.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.rsakey-pysrc.html">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><a href="paramiko.PKey-class.html">PKey</a></code></b>:
+ <code><a href="paramiko.PKey-class.html#__cmp__">__cmp__</a></code>,
+ <code><a href="paramiko.PKey-class.html#get_base64">get_base64</a></code>,
+ <code><a href="paramiko.PKey-class.html#get_fingerprint">get_fingerprint</a></code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__delattr__</code>,
+ <code>__getattribute__</code>,
+ <code>__new__</code>,
+ <code>__reduce__</code>,
+ <code>__reduce_ex__</code>,
+ <code>__repr__</code>,
+ <code>__setattr__</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 colspan="2" class="summary">
+ <p class="indent-wrapped-lines"><b>Inherited from <code><a href="paramiko.PKey-class.html">PKey</a></code></b>:
+ <code><a href="paramiko.PKey-class.html#from_private_key">from_private_key</a></code>,
+ <code><a href="paramiko.PKey-class.html#from_private_key_file">from_private_key_file</a></code>
+ </p>
+ </td>
+ </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></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">Static Methods</span></td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"><a href="paramiko.RSAKey-class.html" class="link">RSAKey</a></span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.RSAKey-class.html#generate" class="summary-sig-name">generate</a>(<span class="summary-sig-arg">bits</span>,
+ <span class="summary-sig-arg">progress_func</span>=<span class="summary-sig-default">None</span>)</span><br />
+ Generate a new private RSA key.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko-pysrc.html#RSAKey.generate">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="__hash__"></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">__hash__</span>(<span class="sig-arg">self</span>)</span>
+ <br /><em class="fname">(Hashing function)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.rsakey-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>hash(x)</p>
+ <dl class="fields">
+ <dt>Overrides:
+ object.__hash__
+ <dd><em class="note">(inherited documentation)</em></dd>
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<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">msg</span>=<span class="sig-default">None</span>,
+ <span class="sig-arg">data</span>=<span class="sig-default">None</span>,
+ <span class="sig-arg">filename</span>=<span class="sig-default">None</span>,
+ <span class="sig-arg">password</span>=<span class="sig-default">None</span>,
+ <span class="sig-arg">vals</span>=<span class="sig-default">None</span>,
+ <span class="sig-arg">file_obj</span>=<span class="sig-default">None</span>)</span>
+ <br /><em class="fname">(Constructor)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.rsakey-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Create a new instance of this public key type. If <code>msg</code> is
+ given, the key's public part(s) will be filled in from the message. If
+ <code>data</code> is given, the key's public part(s) will be filled in
+ from the string.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>msg</code></strong> - an optional SSH <a href="paramiko.Message-class.html"
+ class="link">Message</a> containing a public key of this type.</li>
+ <li><strong class="pname"><code>data</code></strong> - an optional string containing a public key of this type</li>
+ </ul></dd>
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'><a href="paramiko.SSHException-class.html">SSHException</a></strong></code> - if a key cannot be created from the <code>data</code> or
+ <code>msg</code> given, or no key was passed in.</li>
+ </ul></dd>
+ <dt>Overrides:
+ object.__init__
+ <dd><em class="note">(inherited documentation)</em></dd>
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="__str__"></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">__str__</span>(<span class="sig-arg">self</span>)</span>
+ <br /><em class="fname">(Informal representation operator)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.rsakey-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return a string of an SSH <a href="paramiko.Message-class.html"
+ class="link">Message</a> made up of the public part(s) of this key. This
+ string is suitable for passing to <a
+ href="paramiko.AgentKey-class.html#__init__" class="link">__init__</a> to
+ re-create the key object later.</p>
+ <dl class="fields">
+ <dt>Returns: str</dt>
+ <dd>string representation of an SSH key message.</dd>
+ <dt>Overrides:
+ object.__str__
+ <dd><em class="note">(inherited documentation)</em></dd>
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="can_sign"></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">can_sign</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.rsakey-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return <code>True</code> if this key has the private part necessary
+ for signing data.</p>
+ <dl class="fields">
+ <dt>Returns: bool</dt>
+ <dd><code>True</code> if this is a private key.</dd>
+ <dt>Overrides:
+ <a href="paramiko.PKey-class.html#can_sign">PKey.can_sign</a>
+ <dd><em class="note">(inherited documentation)</em></dd>
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="generate"></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">generate</span>(<span class="sig-arg">bits</span>,
+ <span class="sig-arg">progress_func</span>=<span class="sig-default">None</span>)</span>
+ <br /><em class="fname">Static Method</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko-pysrc.html#RSAKey.generate">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Generate a new private RSA key. This factory function can be used to
+ generate a new host key or authentication key.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>bits</code></strong> (int) - number of bits the generated key should be.</li>
+ <li><strong class="pname"><code>progress_func</code></strong> (function) - an optional function to call at key points in key generation
+ (used by <code>pyCrypto.PublicKey</code>).</li>
+ </ul></dd>
+ <dt>Returns: <a href="paramiko.RSAKey-class.html" class="link">RSAKey</a></dt>
+ <dd>new private key</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="get_bits"></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">get_bits</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.rsakey-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return the number of significant bits in this key. This is useful for
+ judging the relative security of a key.</p>
+ <dl class="fields">
+ <dt>Returns: int</dt>
+ <dd>bits in the key.</dd>
+ <dt>Overrides:
+ <a href="paramiko.PKey-class.html#get_bits">PKey.get_bits</a>
+ <dd><em class="note">(inherited documentation)</em></dd>
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="get_name"></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">get_name</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.rsakey-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return the name of this private key implementation.</p>
+ <dl class="fields">
+ <dt>Returns: str</dt>
+ <dd>name of this private key type, in SSH terminology (for example,
+ <code>&quot;ssh-rsa&quot;</code>).</dd>
+ <dt>Overrides:
+ <a href="paramiko.PKey-class.html#get_name">PKey.get_name</a>
+ <dd><em class="note">(inherited documentation)</em></dd>
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="sign_ssh_data"></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">sign_ssh_data</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">rpool</span>,
+ <span class="sig-arg">data</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.rsakey-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Sign a blob of data with this private key, and return a <a
+ href="paramiko.Message-class.html" class="link">Message</a> representing
+ an SSH signature message.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>randpool</code></strong> - a secure random number generator.</li>
+ <li><strong class="pname"><code>data</code></strong> - the data to sign.</li>
+ </ul></dd>
+ <dt>Returns: <a href="paramiko.Message-class.html" class="link">Message</a></dt>
+ <dd>an SSH signature message.</dd>
+ <dt>Overrides:
+ <a href="paramiko.PKey-class.html#sign_ssh_data">PKey.sign_ssh_data</a>
+ <dd><em class="note">(inherited documentation)</em></dd>
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="verify_ssh_sig"></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">verify_ssh_sig</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">data</span>,
+ <span class="sig-arg">msg</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.rsakey-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Given a blob of data, and an SSH message representing a signature of
+ that data, verify that it was signed with this key.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>data</code></strong> - the data that was signed.</li>
+ <li><strong class="pname"><code>msg</code></strong> - an SSH signature message</li>
+ </ul></dd>
+ <dt>Returns: boolean</dt>
+ <dd><code>True</code> if the signature verifies correctly;
+ <code>False</code> otherwise.</dd>
+ <dt>Overrides:
+ <a href="paramiko.PKey-class.html#verify_ssh_sig">PKey.verify_ssh_sig</a>
+ <dd><em class="note">(inherited documentation)</em></dd>
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="write_private_key"></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">write_private_key</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">file_obj</span>,
+ <span class="sig-arg">password</span>=<span class="sig-default">None</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.rsakey-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Write private key contents into a file (or file-like) object. If the
+ password is not <code>None</code>, the key is encrypted before
+ writing.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>file_obj</code></strong> - the file object to write into</li>
+ <li><strong class="pname"><code>password</code></strong> - an optional password to use to encrypt the key</li>
+ </ul></dd>
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'>IOError</strong></code> - if there was an error writing to the file</li>
+ <li><code><strong class='fraise'><a href="paramiko.SSHException-class.html">SSHException</a></strong></code> - if the key is invalid</li>
+ </ul></dd>
+ <dt>Overrides:
+ <a href="paramiko.PKey-class.html#write_private_key">PKey.write_private_key</a>
+ <dd><em class="note">(inherited documentation)</em></dd>
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="write_private_key_file"></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">write_private_key_file</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">filename</span>,
+ <span class="sig-arg">password</span>=<span class="sig-default">None</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.rsakey-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Write private key contents into a file. If the password is not
+ <code>None</code>, the key is encrypted before writing.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>filename</code></strong> - name of the file to write</li>
+ <li><strong class="pname"><code>password</code></strong> - an optional password to use to encrypt the key file</li>
+ </ul></dd>
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'>IOError</strong></code> - if there was an error writing the file</li>
+ <li><code><strong class='fraise'><a href="paramiko.SSHException-class.html">SSHException</a></strong></code> - if the key is invalid</li>
+ </ul></dd>
+ <dt>Overrides:
+ <a href="paramiko.PKey-class.html#write_private_key_file">PKey.write_private_key_file</a>
+ <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 Jul 6 18:30:29 2008
+ </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.RejectPolicy-class.html b/docs/paramiko.RejectPolicy-class.html
new file mode 100644
index 0000000..8d38bec
--- /dev/null
+++ b/docs/paramiko.RejectPolicy-class.html
@@ -0,0 +1,220 @@
+<?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.RejectPolicy</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> ::
+ Class&nbsp;RejectPolicy
+ </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.RejectPolicy-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class RejectPolicy</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko-pysrc.html#RejectPolicy">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+ object --+
+ |
+<a href="paramiko.MissingHostKeyPolicy-class.html">MissingHostKeyPolicy</a> --+
+ |
+ <strong class="uidshort">RejectPolicy</strong>
+</pre>
+
+<hr />
+<p>Policy for automatically rejecting the unknown hostname &amp; key.
+ This is used by <a href="paramiko.SSHClient-class.html"
+ class="link">SSHClient</a>.</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.RejectPolicy-class.html#missing_host_key" class="summary-sig-name">missing_host_key</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">client</span>,
+ <span class="summary-sig-arg">hostname</span>,
+ <span class="summary-sig-arg">key</span>)</span><br />
+ Called when an <a href="paramiko.SSHClient-class.html"
+ class="link">SSHClient</a> receives a server key for a server that
+ isn't in either the system or local <a
+ href="paramiko.HostKeys-class.html" class="link">HostKeys</a> object.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.client-pysrc.html">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>__getattribute__</code>,
+ <code>__hash__</code>,
+ <code>__init__</code>,
+ <code>__new__</code>,
+ <code>__reduce__</code>,
+ <code>__reduce_ex__</code>,
+ <code>__repr__</code>,
+ <code>__setattr__</code>,
+ <code>__str__</code>
+ </p>
+ </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="missing_host_key"></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">missing_host_key</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">client</span>,
+ <span class="sig-arg">hostname</span>,
+ <span class="sig-arg">key</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.client-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Called when an <a href="paramiko.SSHClient-class.html"
+ class="link">SSHClient</a> receives a server key for a server that isn't
+ in either the system or local <a href="paramiko.HostKeys-class.html"
+ class="link">HostKeys</a> object. To accept the key, simply return. To
+ reject, raised an exception (which will be passed to the calling
+ application).</p>
+ <dl class="fields">
+ <dt>Overrides:
+ <a href="paramiko.MissingHostKeyPolicy-class.html#missing_host_key">MissingHostKeyPolicy.missing_host_key</a>
+ <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 Jul 6 18:30:29 2008
+ </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.SFTP-class.html b/docs/paramiko.SFTP-class.html
new file mode 100644
index 0000000..3a7f52d
--- /dev/null
+++ b/docs/paramiko.SFTP-class.html
@@ -0,0 +1,199 @@
+<?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.SFTP</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> ::
+ Class&nbsp;SFTP
+ </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.SFTP-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class SFTP</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko-pysrc.html#SFTP">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+object --+
+ |
+ BaseSFTP --+
+ |
+ <a href="paramiko.SFTPClient-class.html">SFTPClient</a> --+
+ |
+ <strong class="uidshort">SFTP</strong>
+</pre>
+
+<hr />
+<p>an alias for <a href="paramiko.SFTPClient-class.html"
+ class="link">SFTPClient</a> for backwards compatability</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 colspan="2" class="summary">
+ <p class="indent-wrapped-lines"><b>Inherited from <code><a href="paramiko.SFTPClient-class.html">SFTPClient</a></code></b>:
+ <code><a href="paramiko.SFTPClient-class.html#__init__">__init__</a></code>,
+ <code><a href="paramiko.SFTPClient-class.html#chdir">chdir</a></code>,
+ <code><a href="paramiko.SFTPClient-class.html#chmod">chmod</a></code>,
+ <code><a href="paramiko.SFTPClient-class.html#chown">chown</a></code>,
+ <code><a href="paramiko.SFTPClient-class.html#close">close</a></code>,
+ <code><a href="paramiko.SFTPClient-class.html#file">file</a></code>,
+ <code><a href="paramiko.SFTPClient-class.html#get">get</a></code>,
+ <code><a href="paramiko.SFTPClient-class.html#get_channel">get_channel</a></code>,
+ <code><a href="paramiko.SFTPClient-class.html#getcwd">getcwd</a></code>,
+ <code><a href="paramiko.SFTPClient-class.html#listdir">listdir</a></code>,
+ <code><a href="paramiko.SFTPClient-class.html#listdir_attr">listdir_attr</a></code>,
+ <code><a href="paramiko.SFTPClient-class.html#lstat">lstat</a></code>,
+ <code><a href="paramiko.SFTPClient-class.html#mkdir">mkdir</a></code>,
+ <code><a href="paramiko.SFTPClient-class.html#normalize">normalize</a></code>,
+ <code><a href="paramiko.SFTPClient-class.html#open">open</a></code>,
+ <code><a href="paramiko.SFTPClient-class.html#put">put</a></code>,
+ <code><a href="paramiko.SFTPClient-class.html#readlink">readlink</a></code>,
+ <code><a href="paramiko.SFTPClient-class.html#remove">remove</a></code>,
+ <code><a href="paramiko.SFTPClient-class.html#rename">rename</a></code>,
+ <code><a href="paramiko.SFTPClient-class.html#rmdir">rmdir</a></code>,
+ <code><a href="paramiko.SFTPClient-class.html#stat">stat</a></code>,
+ <code><a href="paramiko.SFTPClient-class.html#symlink">symlink</a></code>,
+ <code><a href="paramiko.SFTPClient-class.html#truncate">truncate</a></code>,
+ <code><a href="paramiko.SFTPClient-class.html#unlink">unlink</a></code>,
+ <code><a href="paramiko.SFTPClient-class.html#utime">utime</a></code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__delattr__</code>,
+ <code>__getattribute__</code>,
+ <code>__hash__</code>,
+ <code>__new__</code>,
+ <code>__reduce__</code>,
+ <code>__reduce_ex__</code>,
+ <code>__repr__</code>,
+ <code>__setattr__</code>,
+ <code>__str__</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 colspan="2" class="summary">
+ <p class="indent-wrapped-lines"><b>Inherited from <code><a href="paramiko.SFTPClient-class.html">SFTPClient</a></code></b>:
+ <code><a href="paramiko.SFTPClient-class.html#from_transport">from_transport</a></code>
+ </p>
+ </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>
+<!-- ==================== 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 Jul 6 18:30:29 2008
+ </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.SFTPAttributes-class.html b/docs/paramiko.SFTPAttributes-class.html
new file mode 100644
index 0000000..568b910
--- /dev/null
+++ b/docs/paramiko.SFTPAttributes-class.html
@@ -0,0 +1,415 @@
+<?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.SFTPAttributes</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> ::
+ Class&nbsp;SFTPAttributes
+ </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.SFTPAttributes-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class SFTPAttributes</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko-pysrc.html#SFTPAttributes">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+object --+
+ |
+ <strong class="uidshort">SFTPAttributes</strong>
+</pre>
+
+<hr />
+<p>Representation of the attributes of a file (or proxied file) for SFTP
+ in client or server mode. It attemps to mirror the object returned by
+ <code>os.stat</code> as closely as possible, so it may have the following
+ fields, with the same meanings as those returned by an
+ <code>os.stat</code> object:</p>
+ <ul>
+ <li>
+ st_size
+ </li>
+ <li>
+ st_uid
+ </li>
+ <li>
+ st_gid
+ </li>
+ <li>
+ st_mode
+ </li>
+ <li>
+ st_atime
+ </li>
+ <li>
+ st_mtime
+ </li>
+ </ul>
+ <p>Because SFTP allows flags to have other arbitrary named attributes,
+ these are stored in a dict named <code>attr</code>. Occasionally, the
+ filename is also stored, in <code>filename</code>.</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.SFTPAttributes-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Create a new (empty) SFTPAttributes object.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_attr-pysrc.html">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 href="paramiko.SFTPAttributes-class.html#__repr__" class="summary-sig-name">__repr__</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ repr(x)</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_attr-pysrc.html">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 href="paramiko.SFTPAttributes-class.html#__str__" class="summary-sig-name">__str__</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ create a unix-style long description of the file (like ls -l)</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_attr-pysrc.html">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>__getattribute__</code>,
+ <code>__hash__</code>,
+ <code>__new__</code>,
+ <code>__reduce__</code>,
+ <code>__reduce_ex__</code>,
+ <code>__setattr__</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"><a href="paramiko.SFTPAttributes-class.html"
+ class="link">SFTPAttributes</a></span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.SFTPAttributes-class.html#from_stat" class="summary-sig-name">from_stat</a>(<span class="summary-sig-arg">cls</span>,
+ <span class="summary-sig-arg">obj</span>,
+ <span class="summary-sig-arg">filename</span>=<span class="summary-sig-default">None</span>)</span><br />
+ Create an SFTPAttributes object from an existing <code>stat</code>
+ object (an object returned by <code>os.stat</code>).</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko-pysrc.html#SFTPAttributes.from_stat">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS VARIABLES ==================== -->
+<a name="section-ClassVariables"></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 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="FLAG_AMTIME"></a><span class="summary-name">FLAG_AMTIME</span> = <code title="8">8</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="FLAG_EXTENDED"></a><span class="summary-name">FLAG_EXTENDED</span> = <code title="2147483648">2147483648</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="FLAG_PERMISSIONS"></a><span class="summary-name">FLAG_PERMISSIONS</span> = <code title="4">4</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="FLAG_SIZE"></a><span class="summary-name">FLAG_SIZE</span> = <code title="1">1</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="FLAG_UIDGID"></a><span class="summary-name">FLAG_UIDGID</span> = <code title="2">2</code>
+ </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>
+ <br /><em class="fname">(Constructor)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_attr-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Create a new (empty) SFTPAttributes object. All fields will be
+ empty.</p>
+ <dl class="fields">
+ <dt>Overrides:
+ object.__init__
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="__repr__"></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">__repr__</span>(<span class="sig-arg">self</span>)</span>
+ <br /><em class="fname">(Representation operator)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_attr-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>repr(x)</p>
+ <dl class="fields">
+ <dt>Overrides:
+ object.__repr__
+ <dd><em class="note">(inherited documentation)</em></dd>
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="__str__"></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">__str__</span>(<span class="sig-arg">self</span>)</span>
+ <br /><em class="fname">(Informal representation operator)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_attr-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>create a unix-style long description of the file (like ls -l)</p>
+ <dl class="fields">
+ <dt>Overrides:
+ object.__str__
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="from_stat"></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">from_stat</span>(<span class="sig-arg">cls</span>,
+ <span class="sig-arg">obj</span>,
+ <span class="sig-arg">filename</span>=<span class="sig-default">None</span>)</span>
+ <br /><em class="fname">Class Method</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko-pysrc.html#SFTPAttributes.from_stat">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Create an SFTPAttributes object from an existing <code>stat</code>
+ object (an object returned by <code>os.stat</code>).</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>obj</code></strong> (object) - an object returned by <code>os.stat</code> (or equivalent).</li>
+ <li><strong class="pname"><code>filename</code></strong> (str) - the filename associated with this file.</li>
+ </ul></dd>
+ <dt>Returns: <a href="paramiko.SFTPAttributes-class.html"
+ class="link">SFTPAttributes</a></dt>
+ <dd>new <a href="paramiko.SFTPAttributes-class.html"
+ class="link">SFTPAttributes</a> object with the same attribute
+ fields.</dd>
+ </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 Jul 6 18:30:29 2008
+ </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.SFTPClient-class.html b/docs/paramiko.SFTPClient-class.html
new file mode 100644
index 0000000..41043ac
--- /dev/null
+++ b/docs/paramiko.SFTPClient-class.html
@@ -0,0 +1,1528 @@
+<?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.SFTPClient</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> ::
+ Class&nbsp;SFTPClient
+ </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.SFTPClient-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class SFTPClient</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko-pysrc.html#SFTPClient">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+object --+
+ |
+ BaseSFTP --+
+ |
+ <strong class="uidshort">SFTPClient</strong>
+</pre>
+
+<dl><dt>Known Subclasses:</dt>
+<dd>
+ <ul class="subclass-list">
+<li><a href="paramiko.SFTP-class.html">SFTP</a></li> </ul>
+</dd></dl>
+
+<hr />
+<p>SFTP client object. <code>SFTPClient</code> is used to open an sftp
+ session across an open ssh <a href="paramiko.Transport-class.html"
+ class="link">Transport</a> and do remote file operations.</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.SFTPClient-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">sock</span>)</span><br />
+ Create an SFTP client from an existing <a
+ href="paramiko.Channel-class.html" class="link">Channel</a>.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_client-pysrc.html">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 href="paramiko.SFTPClient-class.html#chdir" class="summary-sig-name">chdir</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">path</span>)</span><br />
+ Change the &quot;current directory&quot; of this SFTP session.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_client-pysrc.html">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 href="paramiko.SFTPClient-class.html#chmod" class="summary-sig-name">chmod</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">path</span>,
+ <span class="summary-sig-arg">mode</span>)</span><br />
+ Change the mode (permissions) of a file.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_client-pysrc.html">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 href="paramiko.SFTPClient-class.html#chown" class="summary-sig-name">chown</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">path</span>,
+ <span class="summary-sig-arg">uid</span>,
+ <span class="summary-sig-arg">gid</span>)</span><br />
+ Change the owner (<code>uid</code>) and group (<code>gid</code>) of a
+ file.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_client-pysrc.html">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 href="paramiko.SFTPClient-class.html#close" class="summary-sig-name">close</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Close the SFTP session and its underlying channel.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_client-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">SFTPFile</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#file" class="summary-sig-name">file</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">filename</span>,
+ <span class="summary-sig-arg">mode</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string">r</code><code class="variable-quote">'</code></span>,
+ <span class="summary-sig-arg">bufsize</span>=<span class="summary-sig-default">-1</span>)</span><br />
+ Open a file on the remote server.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_client-pysrc.html">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 href="paramiko.SFTPClient-class.html#get" class="summary-sig-name">get</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">remotepath</span>,
+ <span class="summary-sig-arg">localpath</span>,
+ <span class="summary-sig-arg">callback</span>=<span class="summary-sig-default">None</span>)</span><br />
+ Copy a remote file (<code>remotepath</code>) from the SFTP server to
+ the local host as <code>localpath</code>.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_client-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"><a href="paramiko.Channel-class.html" class="link">Channel</a></span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#get_channel" class="summary-sig-name">get_channel</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Return the underlying <a href="paramiko.Channel-class.html"
+ class="link">Channel</a> object for this SFTP session.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_client-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">str</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#getcwd" class="summary-sig-name">getcwd</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Return the &quot;current working directory&quot; for this SFTP
+ session, as emulated by paramiko.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_client-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">list of str</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#listdir" class="summary-sig-name">listdir</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">path</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string">.</code><code class="variable-quote">'</code></span>)</span><br />
+ Return a list containing the names of the entries in the given
+ <code>path</code>.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_client-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">list of <a href="paramiko.SFTPAttributes-class.html"
+ class="link">SFTPAttributes</a></span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#listdir_attr" class="summary-sig-name">listdir_attr</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">path</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string">.</code><code class="variable-quote">'</code></span>)</span><br />
+ Return a list containing <a href="paramiko.SFTPAttributes-class.html"
+ class="link">SFTPAttributes</a> objects corresponding to files in the
+ given <code>path</code>.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_client-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">SFTPAttributes</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#lstat" class="summary-sig-name">lstat</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">path</span>)</span><br />
+ Retrieve information about a file on the remote system, without
+ following symbolic links (shortcuts).</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_client-pysrc.html">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 href="paramiko.SFTPClient-class.html#mkdir" class="summary-sig-name">mkdir</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">path</span>,
+ <span class="summary-sig-arg">mode</span>=<span class="summary-sig-default">511</span>)</span><br />
+ Create a folder (directory) named <code>path</code> with numeric mode
+ <code>mode</code>.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_client-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">str</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#normalize" class="summary-sig-name">normalize</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">path</span>)</span><br />
+ Return the normalized path (on the server) of a given path.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_client-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">SFTPFile</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#open" class="summary-sig-name">open</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">filename</span>,
+ <span class="summary-sig-arg">mode</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string">r</code><code class="variable-quote">'</code></span>,
+ <span class="summary-sig-arg">bufsize</span>=<span class="summary-sig-default">-1</span>)</span><br />
+ Open a file on the remote server.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_client-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">SFTPAttributes</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#put" class="summary-sig-name">put</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">localpath</span>,
+ <span class="summary-sig-arg">remotepath</span>,
+ <span class="summary-sig-arg">callback</span>=<span class="summary-sig-default">None</span>)</span><br />
+ Copy a local file (<code>localpath</code>) to the SFTP server as
+ <code>remotepath</code>.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_client-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">str</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#readlink" class="summary-sig-name">readlink</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">path</span>)</span><br />
+ Return the target of a symbolic link (shortcut).</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_client-pysrc.html">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 href="paramiko.SFTPClient-class.html#remove" class="summary-sig-name">remove</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">path</span>)</span><br />
+ Remove the file at the given path.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_client-pysrc.html">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 href="paramiko.SFTPClient-class.html#rename" class="summary-sig-name">rename</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">oldpath</span>,
+ <span class="summary-sig-arg">newpath</span>)</span><br />
+ Rename a file or folder from <code>oldpath</code> to
+ <code>newpath</code>.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_client-pysrc.html">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 href="paramiko.SFTPClient-class.html#rmdir" class="summary-sig-name">rmdir</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">path</span>)</span><br />
+ Remove the folder named <code>path</code>.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_client-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">SFTPAttributes</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#stat" class="summary-sig-name">stat</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">path</span>)</span><br />
+ Retrieve information about a file on the remote system.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_client-pysrc.html">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 href="paramiko.SFTPClient-class.html#symlink" class="summary-sig-name">symlink</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">source</span>,
+ <span class="summary-sig-arg">dest</span>)</span><br />
+ Create a symbolic link (shortcut) of the <code>source</code> path at
+ <code>destination</code>.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_client-pysrc.html">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 href="paramiko.SFTPClient-class.html#truncate" class="summary-sig-name">truncate</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">path</span>,
+ <span class="summary-sig-arg">size</span>)</span><br />
+ Change the size of the file specified by <code>path</code>.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_client-pysrc.html">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 href="paramiko.SFTPClient-class.html#unlink" class="summary-sig-name">unlink</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">path</span>)</span><br />
+ Remove the file at the given path.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_client-pysrc.html">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 href="paramiko.SFTPClient-class.html#utime" class="summary-sig-name">utime</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">path</span>,
+ <span class="summary-sig-arg">times</span>)</span><br />
+ Set the access and modified times of the file specified by
+ <code>path</code>.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_client-pysrc.html">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>__getattribute__</code>,
+ <code>__hash__</code>,
+ <code>__new__</code>,
+ <code>__reduce__</code>,
+ <code>__reduce_ex__</code>,
+ <code>__repr__</code>,
+ <code>__setattr__</code>,
+ <code>__str__</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"><a href="paramiko.SFTPClient-class.html" class="link">SFTPClient</a></span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#from_transport" class="summary-sig-name">from_transport</a>(<span class="summary-sig-arg">cls</span>,
+ <span class="summary-sig-arg">t</span>)</span><br />
+ Create an SFTP client channel from an open <a
+ href="paramiko.Transport-class.html" class="link">Transport</a>.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko-pysrc.html#SFTPClient.from_transport">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">sock</span>)</span>
+ <br /><em class="fname">(Constructor)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_client-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Create an SFTP client from an existing <a
+ href="paramiko.Channel-class.html" class="link">Channel</a>. The channel
+ should already have requested the <code>&quot;sftp&quot;</code>
+ subsystem.</p>
+ <p>An alternate way to create an SFTP client context is by using <a
+ href="paramiko.SFTPClient-class.html#from_transport"
+ class="link">from_transport</a>.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>sock</code></strong> (<a href="paramiko.Channel-class.html" class="link">Channel</a>) - an open <a href="paramiko.Channel-class.html"
+ class="link">Channel</a> using the <code>&quot;sftp&quot;</code>
+ subsystem</li>
+ </ul></dd>
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'><a href="paramiko.SSHException-class.html">SSHException</a></strong></code> - if there's an exception while negotiating sftp</li>
+ </ul></dd>
+ <dt>Overrides:
+ object.__init__
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="chdir"></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">chdir</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">path</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_client-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Change the &quot;current directory&quot; 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.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>path</code></strong> (str) - new current working directory</li>
+ </ul></dd>
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'>IOError</strong></code> - if the requested path doesn't exist on the server</li>
+ </ul></dd>
+ </dl>
+<div class="fields"> <p><strong>Since:</strong>
+ 1.4
+ </p>
+</div></td></tr></table>
+</div>
+<a name="chmod"></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">chmod</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">path</span>,
+ <span class="sig-arg">mode</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_client-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Change the mode (permissions) of a file. The permissions are
+ unix-style and identical to those used by python's <code>os.chmod</code>
+ function.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>path</code></strong> (str) - path of the file to change the permissions of</li>
+ <li><strong class="pname"><code>mode</code></strong> (int) - new permissions</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="chown"></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">chown</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">path</span>,
+ <span class="sig-arg">uid</span>,
+ <span class="sig-arg">gid</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_client-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Change the owner (<code>uid</code>) and group (<code>gid</code>) of a
+ file. As with python's <code>os.chown</code> function, you must pass
+ both arguments, so if you only want to change one, use <a
+ href="paramiko.SFTPClient-class.html#stat" class="link">stat</a> first to
+ retrieve the current owner and group.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>path</code></strong> (str) - path of the file to change the owner and group of</li>
+ <li><strong class="pname"><code>uid</code></strong> (int) - new owner's uid</li>
+ <li><strong class="pname"><code>gid</code></strong> (int) - new group id</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="close"></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">close</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_client-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Close the SFTP session and its underlying channel.</p>
+ <dl class="fields">
+ </dl>
+<div class="fields"> <p><strong>Since:</strong>
+ 1.4
+ </p>
+</div></td></tr></table>
+</div>
+<a name="file"></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">file</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">filename</span>,
+ <span class="sig-arg">mode</span>=<span class="sig-default"><code class="variable-quote">'</code><code class="variable-string">r</code><code class="variable-quote">'</code></span>,
+ <span class="sig-arg">bufsize</span>=<span class="sig-default">-1</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_client-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Open a file on the remote server. The arguments are the same as for
+ python's built-in <code>file</code> (aka <code>open</code>). A file-like
+ object is returned, which closely mimics the behavior of a normal python
+ file object.</p>
+ <p>The mode indicates how the file is to be opened: <code>'r'</code> for
+ reading, <code>'w'</code> for writing (truncating an existing file),
+ <code>'a'</code> for appending, <code>'r+'</code> for reading/writing,
+ <code>'w+'</code> for reading/writing (truncating an existing file),
+ <code>'a+'</code> for reading/appending. The python <code>'b'</code>
+ flag is ignored, since SSH treats all files as binary. The
+ <code>'U'</code> flag is supported in a compatible way.</p>
+ <p>Since 1.5.2, an <code>'x'</code> 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 <code>O_EXCL</code> flag in posix.</p>
+ <p>The file will be buffered in standard python style by default, but can
+ be altered with the <code>bufsize</code> parameter. <code>0</code> turns
+ off buffering, <code>1</code> uses line buffering, and any number greater
+ than 1 (<code>&gt;1</code>) uses that specific buffer size.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>filename</code></strong> (str) - name of the file to open</li>
+ <li><strong class="pname"><code>mode</code></strong> (str) - mode (python-style) to open in</li>
+ <li><strong class="pname"><code>bufsize</code></strong> (int) - desired buffering (-1 = default buffer size)</li>
+ </ul></dd>
+ <dt>Returns: SFTPFile</dt>
+ <dd>a file object representing the open file</dd>
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'>IOError</strong></code> - if the file could not be opened.</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="from_transport"></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">from_transport</span>(<span class="sig-arg">cls</span>,
+ <span class="sig-arg">t</span>)</span>
+ <br /><em class="fname">Class Method</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko-pysrc.html#SFTPClient.from_transport">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Create an SFTP client channel from an open <a
+ href="paramiko.Transport-class.html" class="link">Transport</a>.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>t</code></strong> (<a href="paramiko.Transport-class.html"
+ class="link">Transport</a>) - an open <a href="paramiko.Transport-class.html"
+ class="link">Transport</a> which is already authenticated</li>
+ </ul></dd>
+ <dt>Returns: <a href="paramiko.SFTPClient-class.html" class="link">SFTPClient</a></dt>
+ <dd>a new <a href="paramiko.SFTPClient-class.html"
+ class="link">SFTPClient</a> object, referring to an sftp session
+ (channel) across the transport</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="get"></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">get</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">remotepath</span>,
+ <span class="sig-arg">localpath</span>,
+ <span class="sig-arg">callback</span>=<span class="sig-default">None</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_client-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Copy a remote file (<code>remotepath</code>) from the SFTP server to
+ the local host as <code>localpath</code>. Any exception raised by
+ operations will be passed through. This method is primarily provided as
+ a convenience.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>remotepath</code></strong> (str) - the remote file to copy</li>
+ <li><strong class="pname"><code>localpath</code></strong> (str) - the destination path on the local host</li>
+ <li><strong class="pname"><code>callback</code></strong> (function(int, int)) - optional callback function that accepts the bytes transferred so
+ far and the total bytes to be transferred (since 1.7.4)</li>
+ </ul></dd>
+ </dl>
+<div class="fields"> <p><strong>Since:</strong>
+ 1.4
+ </p>
+</div></td></tr></table>
+</div>
+<a name="get_channel"></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">get_channel</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_client-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return the underlying <a href="paramiko.Channel-class.html"
+ class="link">Channel</a> object for this SFTP session. This might be
+ useful for doing things like setting a timeout on the channel.</p>
+ <dl class="fields">
+ <dt>Returns: <a href="paramiko.Channel-class.html" class="link">Channel</a></dt>
+ <dd>the SSH channel</dd>
+ </dl>
+<div class="fields"> <p><strong>Since:</strong>
+ 1.7.1
+ </p>
+</div></td></tr></table>
+</div>
+<a name="getcwd"></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">getcwd</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_client-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return the &quot;current working directory&quot; for this SFTP
+ session, as emulated by paramiko. If no directory has been set with <a
+ href="paramiko.SFTPClient-class.html#chdir" class="link">chdir</a>, this
+ method will return <code>None</code>.</p>
+ <dl class="fields">
+ <dt>Returns: str</dt>
+ <dd>the current working directory on the server, or <code>None</code></dd>
+ </dl>
+<div class="fields"> <p><strong>Since:</strong>
+ 1.4
+ </p>
+</div></td></tr></table>
+</div>
+<a name="listdir"></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">listdir</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">path</span>=<span class="sig-default"><code class="variable-quote">'</code><code class="variable-string">.</code><code class="variable-quote">'</code></span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_client-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return a list containing the names of the entries in the given
+ <code>path</code>. The list is in arbitrary order. It does not include
+ the special entries <code>'.'</code> and <code>'..'</code> even if they
+ are present in the folder. This method is meant to mirror
+ <code>os.listdir</code> as closely as possible. For a list of full <a
+ href="paramiko.SFTPAttributes-class.html" class="link">SFTPAttributes</a>
+ objects, see <a href="paramiko.SFTPClient-class.html#listdir_attr"
+ class="link">listdir_attr</a>.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>path</code></strong> (str) - path to list (defaults to <code>'.'</code>)</li>
+ </ul></dd>
+ <dt>Returns: list of str</dt>
+ <dd>list of filenames</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="listdir_attr"></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">listdir_attr</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">path</span>=<span class="sig-default"><code class="variable-quote">'</code><code class="variable-string">.</code><code class="variable-quote">'</code></span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_client-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return a list containing <a href="paramiko.SFTPAttributes-class.html"
+ class="link">SFTPAttributes</a> objects corresponding to files in the
+ given <code>path</code>. The list is in arbitrary order. It does not
+ include the special entries <code>'.'</code> and <code>'..'</code> even
+ if they are present in the folder.</p>
+ <p>The returned <a href="paramiko.SFTPAttributes-class.html"
+ class="link">SFTPAttributes</a> objects will each have an additional
+ field: <code>longname</code>, which may contain a formatted string of the
+ file's attributes, in unix format. The content of this string will
+ probably depend on the SFTP server implementation.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>path</code></strong> (str) - path to list (defaults to <code>'.'</code>)</li>
+ </ul></dd>
+ <dt>Returns: list of <a href="paramiko.SFTPAttributes-class.html"
+ class="link">SFTPAttributes</a></dt>
+ <dd>list of attributes</dd>
+ </dl>
+<div class="fields"> <p><strong>Since:</strong>
+ 1.2
+ </p>
+</div></td></tr></table>
+</div>
+<a name="lstat"></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">lstat</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">path</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_client-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Retrieve information about a file on the remote system, without
+ following symbolic links (shortcuts). This otherwise behaves exactly the
+ same as <a href="paramiko.SFTPClient-class.html#stat"
+ class="link">stat</a>.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>path</code></strong> (str) - the filename to stat</li>
+ </ul></dd>
+ <dt>Returns: SFTPAttributes</dt>
+ <dd>an object containing attributes about the given file</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="mkdir"></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">mkdir</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">path</span>,
+ <span class="sig-arg">mode</span>=<span class="sig-default">511</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_client-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Create a folder (directory) named <code>path</code> with numeric mode
+ <code>mode</code>. The default mode is 0777 (octal). On some systems,
+ mode is ignored. Where it is used, the current umask value is first
+ masked out.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>path</code></strong> (str) - name of the folder to create</li>
+ <li><strong class="pname"><code>mode</code></strong> (int) - permissions (posix-style) for the newly-created folder</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="normalize"></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">normalize</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">path</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_client-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return the normalized path (on the server) of a given path. This can
+ be used to quickly resolve symbolic links or determine what the server is
+ considering to be the &quot;current folder&quot; (by passing
+ <code>'.'</code> as <code>path</code>).</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>path</code></strong> (str) - path to be normalized</li>
+ </ul></dd>
+ <dt>Returns: str</dt>
+ <dd>normalized form of the given path</dd>
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'>IOError</strong></code> - if the path can't be resolved on the server</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="open"></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">open</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">filename</span>,
+ <span class="sig-arg">mode</span>=<span class="sig-default"><code class="variable-quote">'</code><code class="variable-string">r</code><code class="variable-quote">'</code></span>,
+ <span class="sig-arg">bufsize</span>=<span class="sig-default">-1</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_client-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Open a file on the remote server. The arguments are the same as for
+ python's built-in <code>file</code> (aka <code>open</code>). A file-like
+ object is returned, which closely mimics the behavior of a normal python
+ file object.</p>
+ <p>The mode indicates how the file is to be opened: <code>'r'</code> for
+ reading, <code>'w'</code> for writing (truncating an existing file),
+ <code>'a'</code> for appending, <code>'r+'</code> for reading/writing,
+ <code>'w+'</code> for reading/writing (truncating an existing file),
+ <code>'a+'</code> for reading/appending. The python <code>'b'</code>
+ flag is ignored, since SSH treats all files as binary. The
+ <code>'U'</code> flag is supported in a compatible way.</p>
+ <p>Since 1.5.2, an <code>'x'</code> 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 <code>O_EXCL</code> flag in posix.</p>
+ <p>The file will be buffered in standard python style by default, but can
+ be altered with the <code>bufsize</code> parameter. <code>0</code> turns
+ off buffering, <code>1</code> uses line buffering, and any number greater
+ than 1 (<code>&gt;1</code>) uses that specific buffer size.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>filename</code></strong> (str) - name of the file to open</li>
+ <li><strong class="pname"><code>mode</code></strong> (str) - mode (python-style) to open in</li>
+ <li><strong class="pname"><code>bufsize</code></strong> (int) - desired buffering (-1 = default buffer size)</li>
+ </ul></dd>
+ <dt>Returns: SFTPFile</dt>
+ <dd>a file object representing the open file</dd>
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'>IOError</strong></code> - if the file could not be opened.</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="put"></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">put</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">localpath</span>,
+ <span class="sig-arg">remotepath</span>,
+ <span class="sig-arg">callback</span>=<span class="sig-default">None</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_client-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Copy a local file (<code>localpath</code>) to the SFTP server as
+ <code>remotepath</code>. Any exception raised by operations will be
+ passed through. This method is primarily provided as a convenience.</p>
+ <p>The SFTP operations use pipelining for speed.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>localpath</code></strong> (str) - the local file to copy</li>
+ <li><strong class="pname"><code>remotepath</code></strong> (str) - the destination path on the SFTP server</li>
+ <li><strong class="pname"><code>callback</code></strong> (function(int, int)) - optional callback function that accepts the bytes transferred so
+ far and the total bytes to be transferred (since 1.7.4)</li>
+ </ul></dd>
+ <dt>Returns: SFTPAttributes</dt>
+ <dd>an object containing attributes about the given file (since
+ 1.7.4)</dd>
+ </dl>
+<div class="fields"> <p><strong>Since:</strong>
+ 1.4
+ </p>
+</div></td></tr></table>
+</div>
+<a name="readlink"></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">readlink</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">path</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_client-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return the target of a symbolic link (shortcut). You can use <a
+ href="paramiko.SFTPClient-class.html#symlink" class="link">symlink</a> to
+ create these. The result may be either an absolute or relative
+ pathname.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>path</code></strong> (str) - path of the symbolic link file</li>
+ </ul></dd>
+ <dt>Returns: str</dt>
+ <dd>target path</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="remove"></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">remove</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">path</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_client-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Remove the file at the given path. This only works on files; for
+ removing folders (directories), use <a
+ href="paramiko.SFTPClient-class.html#rmdir" class="link">rmdir</a>.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>path</code></strong> (str) - path (absolute or relative) of the file to remove</li>
+ </ul></dd>
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'>IOError</strong></code> - if the path refers to a folder (directory)</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="rename"></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">rename</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">oldpath</span>,
+ <span class="sig-arg">newpath</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_client-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Rename a file or folder from <code>oldpath</code> to
+ <code>newpath</code>.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>oldpath</code></strong> (str) - existing name of the file or folder</li>
+ <li><strong class="pname"><code>newpath</code></strong> (str) - new name for the file or folder</li>
+ </ul></dd>
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'>IOError</strong></code> - if <code>newpath</code> is a folder, or something else goes wrong</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="rmdir"></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">rmdir</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">path</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_client-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Remove the folder named <code>path</code>.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>path</code></strong> (str) - name of the folder to remove</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="stat"></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">stat</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">path</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_client-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Retrieve information about a file on the remote system. The return
+ value is an object whose attributes correspond to the attributes of
+ python's <code>stat</code> structure as returned by <code>os.stat</code>,
+ except that it contains fewer fields. An SFTP server may return as much
+ or as little info as it wants, so the results may vary from server to
+ server.</p>
+ <p>Unlike a python <code>stat</code> object, the result may not be
+ accessed as a tuple. This is mostly due to the author's slack
+ factor.</p>
+ <p>The fields supported are: <code>st_mode</code>, <code>st_size</code>,
+ <code>st_uid</code>, <code>st_gid</code>, <code>st_atime</code>, and
+ <code>st_mtime</code>.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>path</code></strong> (str) - the filename to stat</li>
+ </ul></dd>
+ <dt>Returns: SFTPAttributes</dt>
+ <dd>an object containing attributes about the given file</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="symlink"></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">symlink</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">source</span>,
+ <span class="sig-arg">dest</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_client-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Create a symbolic link (shortcut) of the <code>source</code> path at
+ <code>destination</code>.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>source</code></strong> (str) - path of the original file</li>
+ <li><strong class="pname"><code>dest</code></strong> (str) - path of the newly created symlink</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="truncate"></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">truncate</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">path</span>,
+ <span class="sig-arg">size</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_client-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Change the size of the file specified by <code>path</code>. This
+ usually extends or shrinks the size of the file, just like the
+ <code>truncate()</code> method on python file objects.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>path</code></strong> (str) - path of the file to modify</li>
+ <li><strong class="pname"><code>size</code></strong> (int or long) - the new size of the file</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="unlink"></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">unlink</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">path</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_client-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Remove the file at the given path. This only works on files; for
+ removing folders (directories), use <a
+ href="paramiko.SFTPClient-class.html#rmdir" class="link">rmdir</a>.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>path</code></strong> (str) - path (absolute or relative) of the file to remove</li>
+ </ul></dd>
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'>IOError</strong></code> - if the path refers to a folder (directory)</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="utime"></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">utime</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">path</span>,
+ <span class="sig-arg">times</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_client-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Set the access and modified times of the file specified by
+ <code>path</code>. If <code>times</code> is <code>None</code>, then the
+ file's access and modified times are set to the current time. Otherwise,
+ <code>times</code> must be a 2-tuple of numbers, of the form
+ <code>(atime, mtime)</code>, which is used to set the access and modified
+ times, respectively. This bizarre API is mimicked from python for the
+ sake of consistency -- I apologize.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>path</code></strong> (str) - path of the file to modify</li>
+ <li><strong class="pname"><code>times</code></strong> (tuple(int)) - <code>None</code> or a tuple of (access time, modified time) in
+ standard internet epoch time (seconds since 01 January 1970 GMT)</li>
+ </ul></dd>
+ </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 Jul 6 18:30:29 2008
+ </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.SFTPError-class.html b/docs/paramiko.SFTPError-class.html
new file mode 100644
index 0000000..0c1d9f1
--- /dev/null
+++ b/docs/paramiko.SFTPError-class.html
@@ -0,0 +1,164 @@
+<?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.SFTPError</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> ::
+ Class&nbsp;SFTPError
+ </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.SFTPError-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class SFTPError</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko-pysrc.html#SFTPError">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+ object --+
+ |
+exceptions.BaseException --+
+ |
+ exceptions.Exception --+
+ |
+ <strong class="uidshort">SFTPError</strong>
+</pre>
+
+<hr />
+<!-- ==================== 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 colspan="2" class="summary">
+ <p class="indent-wrapped-lines"><b>Inherited from <code>exceptions.Exception</code></b>:
+ <code>__init__</code>,
+ <code>__new__</code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>exceptions.BaseException</code></b>:
+ <code>__delattr__</code>,
+ <code>__getattribute__</code>,
+ <code>__getitem__</code>,
+ <code>__reduce__</code>,
+ <code>__repr__</code>,
+ <code>__setattr__</code>,
+ <code>__setstate__</code>,
+ <code>__str__</code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__hash__</code>,
+ <code>__reduce_ex__</code>
+ </p>
+ </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>exceptions.BaseException</code></b>:
+ <code>args</code>,
+ <code>message</code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__class__</code>
+ </p>
+ </td>
+ </tr>
+</table>
+<!-- ==================== 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 Jul 6 18:30:29 2008
+ </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.SFTPFile-class.html b/docs/paramiko.SFTPFile-class.html
new file mode 100644
index 0000000..d15b74d
--- /dev/null
+++ b/docs/paramiko.SFTPFile-class.html
@@ -0,0 +1,1008 @@
+<?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.SFTPFile</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> ::
+ Class&nbsp;SFTPFile
+ </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.SFTPFile-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class SFTPFile</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko-pysrc.html#SFTPFile">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+ object --+
+ |
+<a href="paramiko.BufferedFile-class.html">BufferedFile</a> --+
+ |
+ <strong class="uidshort">SFTPFile</strong>
+</pre>
+
+<hr />
+<p>Proxy object for a file on the remote server, in client mode SFTP.</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.SFTPFile-class.html#__del__" class="summary-sig-name">__del__</a>(<span class="summary-sig-arg">self</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_file-pysrc.html">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 href="paramiko.SFTPFile-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">sftp</span>,
+ <span class="summary-sig-arg">handle</span>,
+ <span class="summary-sig-arg">mode</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string">r</code><code class="variable-quote">'</code></span>,
+ <span class="summary-sig-arg">bufsize</span>=<span class="summary-sig-default">-1</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.sftp_file-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">str</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.SFTPFile-class.html#check" class="summary-sig-name">check</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">hash_algorithm</span>,
+ <span class="summary-sig-arg">offset</span>=<span class="summary-sig-default">0</span>,
+ <span class="summary-sig-arg">length</span>=<span class="summary-sig-default">0</span>,
+ <span class="summary-sig-arg">block_size</span>=<span class="summary-sig-default">0</span>)</span><br />
+ Ask the server for a hash of a section of this file.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_file-pysrc.html">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 href="paramiko.SFTPFile-class.html#chmod" class="summary-sig-name">chmod</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">mode</span>)</span><br />
+ Change the mode (permissions) of this file.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_file-pysrc.html">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 href="paramiko.SFTPFile-class.html#chown" class="summary-sig-name">chown</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">uid</span>,
+ <span class="summary-sig-arg">gid</span>)</span><br />
+ Change the owner (<code>uid</code>) and group (<code>gid</code>) of
+ this file.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_file-pysrc.html">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 href="paramiko.SFTPFile-class.html#close" class="summary-sig-name">close</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Close the file.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_file-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">float</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.SFTPFile-class.html#gettimeout" class="summary-sig-name">gettimeout</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Returns the timeout in seconds (as a float) associated with the
+ socket or ssh <a href="paramiko.Channel-class.html"
+ class="link">Channel</a> used for this file.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_file-pysrc.html">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 href="paramiko.SFTPFile-class.html#prefetch" class="summary-sig-name">prefetch</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Pre-fetch the remaining contents of this file in anticipation of
+ future <a href="paramiko.BufferedFile-class.html#read"
+ class="link">read</a> calls.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_file-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">list(str)</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.SFTPFile-class.html#readv" class="summary-sig-name">readv</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">chunks</span>)</span><br />
+ Read a set of blocks from the file by (offset, length).</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_file-pysrc.html">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 href="paramiko.SFTPFile-class.html#seek" class="summary-sig-name">seek</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">offset</span>,
+ <span class="summary-sig-arg">whence</span>=<span class="summary-sig-default">0</span>)</span><br />
+ Set the file's current position, like stdio's <code>fseek</code>.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_file-pysrc.html">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 href="paramiko.SFTPFile-class.html#set_pipelined" class="summary-sig-name">set_pipelined</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">pipelined</span>=<span class="summary-sig-default">True</span>)</span><br />
+ Turn on/off the pipelining of write operations to this file.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_file-pysrc.html">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 href="paramiko.SFTPFile-class.html#setblocking" class="summary-sig-name">setblocking</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">blocking</span>)</span><br />
+ Set blocking or non-blocking mode on the underiying socket or ssh <a
+ href="paramiko.Channel-class.html" class="link">Channel</a>.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_file-pysrc.html">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 href="paramiko.SFTPFile-class.html#settimeout" class="summary-sig-name">settimeout</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">timeout</span>)</span><br />
+ Set a timeout on read/write operations on the underlying socket or
+ ssh <a href="paramiko.Channel-class.html" class="link">Channel</a>.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_file-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">SFTPAttributes</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.SFTPFile-class.html#stat" class="summary-sig-name">stat</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Retrieve information about this file from the remote system.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_file-pysrc.html">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 href="paramiko.SFTPFile-class.html#truncate" class="summary-sig-name">truncate</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">size</span>)</span><br />
+ Change the size of this file.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_file-pysrc.html">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 href="paramiko.SFTPFile-class.html#utime" class="summary-sig-name">utime</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">times</span>)</span><br />
+ Set the access and modified times of this file.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_file-pysrc.html">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><a href="paramiko.BufferedFile-class.html">BufferedFile</a></code></b>:
+ <code><a href="paramiko.BufferedFile-class.html#__iter__">__iter__</a></code>,
+ <code><a href="paramiko.BufferedFile-class.html#flush">flush</a></code>,
+ <code><a href="paramiko.BufferedFile-class.html#next">next</a></code>,
+ <code><a href="paramiko.BufferedFile-class.html#read">read</a></code>,
+ <code><a href="paramiko.BufferedFile-class.html#readline">readline</a></code>,
+ <code><a href="paramiko.BufferedFile-class.html#readlines">readlines</a></code>,
+ <code><a href="paramiko.BufferedFile-class.html#tell">tell</a></code>,
+ <code><a href="paramiko.BufferedFile-class.html#write">write</a></code>,
+ <code><a href="paramiko.BufferedFile-class.html#writelines">writelines</a></code>,
+ <code><a href="paramiko.BufferedFile-class.html#xreadlines">xreadlines</a></code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__delattr__</code>,
+ <code>__getattribute__</code>,
+ <code>__hash__</code>,
+ <code>__new__</code>,
+ <code>__reduce__</code>,
+ <code>__reduce_ex__</code>,
+ <code>__repr__</code>,
+ <code>__setattr__</code>,
+ <code>__str__</code>
+ </p>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS VARIABLES ==================== -->
+<a name="section-ClassVariables"></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 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="MAX_REQUEST_SIZE"></a><span class="summary-name">MAX_REQUEST_SIZE</span> = <code title="32768">32768</code>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2" class="summary">
+ <p class="indent-wrapped-lines"><b>Inherited from <code><a href="paramiko.BufferedFile-class.html">BufferedFile</a></code></b>:
+ <code><a href="paramiko.BufferedFile-class.html#FLAG_APPEND">FLAG_APPEND</a></code>,
+ <code><a href="paramiko.BufferedFile-class.html#FLAG_BINARY">FLAG_BINARY</a></code>,
+ <code><a href="paramiko.BufferedFile-class.html#FLAG_BUFFERED">FLAG_BUFFERED</a></code>,
+ <code><a href="paramiko.BufferedFile-class.html#FLAG_LINE_BUFFERED">FLAG_LINE_BUFFERED</a></code>,
+ <code><a href="paramiko.BufferedFile-class.html#FLAG_READ">FLAG_READ</a></code>,
+ <code><a href="paramiko.BufferedFile-class.html#FLAG_UNIVERSAL_NEWLINE">FLAG_UNIVERSAL_NEWLINE</a></code>,
+ <code><a href="paramiko.BufferedFile-class.html#FLAG_WRITE">FLAG_WRITE</a></code>,
+ <code><a href="paramiko.BufferedFile-class.html#SEEK_CUR">SEEK_CUR</a></code>,
+ <code><a href="paramiko.BufferedFile-class.html#SEEK_END">SEEK_END</a></code>,
+ <code><a href="paramiko.BufferedFile-class.html#SEEK_SET">SEEK_SET</a></code>
+ </p>
+ </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="__del__"></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">__del__</span>(<span class="sig-arg">self</span>)</span>
+ <br /><em class="fname">(Destructor)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_file-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+
+ <dl class="fields">
+ <dt>Overrides:
+ <a href="paramiko.BufferedFile-class.html#__del__">BufferedFile.__del__</a>
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<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">sftp</span>,
+ <span class="sig-arg">handle</span>,
+ <span class="sig-arg">mode</span>=<span class="sig-default"><code class="variable-quote">'</code><code class="variable-string">r</code><code class="variable-quote">'</code></span>,
+ <span class="sig-arg">bufsize</span>=<span class="sig-default">-1</span>)</span>
+ <br /><em class="fname">(Constructor)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_file-pysrc.html">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>
+<a name="check"></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">check</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">hash_algorithm</span>,
+ <span class="sig-arg">offset</span>=<span class="sig-default">0</span>,
+ <span class="sig-arg">length</span>=<span class="sig-default">0</span>,
+ <span class="sig-arg">block_size</span>=<span class="sig-default">0</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_file-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Ask the server for a hash of a section of this file. This can be used
+ to verify a successful upload or download, or for various rsync-like
+ operations.</p>
+ <p>The file is hashed from <code>offset</code>, for <code>length</code>
+ bytes. If <code>length</code> is 0, the remainder of the file is hashed.
+ Thus, if both <code>offset</code> and <code>length</code> are zero, the
+ entire file is hashed.</p>
+ <p>Normally, <code>block_size</code> will be 0 (the default), and this
+ method will return a byte string representing the requested hash (for
+ example, a string of length 16 for MD5, or 20 for SHA-1). If a non-zero
+ <code>block_size</code> is given, each chunk of the file (from
+ <code>offset</code> to <code>offset + length</code>) of
+ <code>block_size</code> bytes is computed as a separate hash. The hash
+ results are all concatenated and returned as a single string.</p>
+ <p>For example, <code>check('sha1', 0, 1024, 512)</code> will return a
+ string of length 40. The first 20 bytes will be the SHA-1 of the first
+ 512 bytes of the file, and the last 20 bytes will be the SHA-1 of the
+ next 512 bytes.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>hash_algorithm</code></strong> (str) - the name of the hash algorithm to use (normally
+ <code>&quot;sha1&quot;</code> or <code>&quot;md5&quot;</code>)</li>
+ <li><strong class="pname"><code>offset</code></strong> (int or long) - offset into the file to begin hashing (0 means to start from the
+ beginning)</li>
+ <li><strong class="pname"><code>length</code></strong> (int or long) - number of bytes to hash (0 means continue to the end of the file)</li>
+ <li><strong class="pname"><code>block_size</code></strong> (int) - number of bytes to hash per result (must not be less than 256; 0
+ means to compute only one hash of the entire segment)</li>
+ </ul></dd>
+ <dt>Returns: str</dt>
+ <dd>string of bytes representing the hash of each block, concatenated
+ together</dd>
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'>IOError</strong></code> - if the server doesn't support the &quot;check-file&quot; extension,
+ or possibly doesn't support the hash algorithm requested</li>
+ </ul></dd>
+ </dl>
+<div class="fields"> <p><strong>Note:</strong>
+ Many (most?) servers don't support this extension yet.
+ </p>
+ <p><strong>Since:</strong>
+ 1.4
+ </p>
+</div></td></tr></table>
+</div>
+<a name="chmod"></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">chmod</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">mode</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_file-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Change the mode (permissions) of this file. The permissions are
+ unix-style and identical to those used by python's <code>os.chmod</code>
+ function.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>mode</code></strong> (int) - new permissions</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="chown"></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">chown</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">uid</span>,
+ <span class="sig-arg">gid</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_file-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Change the owner (<code>uid</code>) and group (<code>gid</code>) of
+ this file. As with python's <code>os.chown</code> function, you must
+ pass both arguments, so if you only want to change one, use <a
+ href="paramiko.SFTPFile-class.html#stat" class="link">stat</a> first to
+ retrieve the current owner and group.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>uid</code></strong> (int) - new owner's uid</li>
+ <li><strong class="pname"><code>gid</code></strong> (int) - new group id</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="close"></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">close</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_file-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Close the file. Future read and write operations will fail.</p>
+ <dl class="fields">
+ <dt>Overrides:
+ <a href="paramiko.BufferedFile-class.html#close">BufferedFile.close</a>
+ <dd><em class="note">(inherited documentation)</em></dd>
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="gettimeout"></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">gettimeout</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_file-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Returns the timeout in seconds (as a float) associated with the socket
+ or ssh <a href="paramiko.Channel-class.html" class="link">Channel</a>
+ used for this file.</p>
+ <dl class="fields">
+ <dt>Returns: float</dt>
+ </dl>
+<div class="fields"> <p><strong>See Also:</strong>
+ <a href="paramiko.Channel-class.html#gettimeout"
+ class="link">Channel.gettimeout</a>
+ </p>
+</div></td></tr></table>
+</div>
+<a name="prefetch"></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">prefetch</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_file-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Pre-fetch the remaining contents of this file in anticipation of
+ future <a href="paramiko.BufferedFile-class.html#read"
+ class="link">read</a> calls. If reading the entire file, pre-fetching
+ can dramatically improve the download speed by avoiding roundtrip
+ latency. The file's contents are incrementally buffered in a background
+ thread.</p>
+ <p>The prefetched data is stored in a buffer until read via the <a
+ href="paramiko.BufferedFile-class.html#read" class="link">read</a>
+ method. Once data has been read, it's removed from the buffer. The data
+ may be read in a random order (using <a
+ href="paramiko.SFTPFile-class.html#seek" class="link">seek</a>); chunks
+ of the buffer that haven't been read will continue to be buffered.</p>
+ <dl class="fields">
+ </dl>
+<div class="fields"> <p><strong>Since:</strong>
+ 1.5.1
+ </p>
+</div></td></tr></table>
+</div>
+<a name="readv"></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">readv</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">chunks</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_file-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Read a set of blocks from the file by (offset, length). This is more
+ efficient than doing a series of <a
+ href="paramiko.SFTPFile-class.html#seek" class="link">seek</a> and <a
+ href="paramiko.BufferedFile-class.html#read" class="link">read</a> calls,
+ since the prefetch machinery is used to retrieve all the requested blocks
+ at once.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>chunks</code></strong> (list(tuple(long, int))) - a list of (offset, length) tuples indicating which sections of
+ the file to read</li>
+ </ul></dd>
+ <dt>Returns: list(str)</dt>
+ <dd>a list of blocks read, in the same order as in
+ <code>chunks</code></dd>
+ </dl>
+<div class="fields"> <p><strong>Since:</strong>
+ 1.5.4
+ </p>
+</div></td></tr></table>
+</div>
+<a name="seek"></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">seek</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">offset</span>,
+ <span class="sig-arg">whence</span>=<span class="sig-default">0</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_file-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Set the file's current position, like stdio's <code>fseek</code>. Not
+ all file objects support seeking.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>offset</code></strong> - position to move to within the file, relative to
+ <code>whence</code>.</li>
+ <li><strong class="pname"><code>whence</code></strong> - type of movement: 0 = absolute; 1 = relative to the current
+ position; 2 = relative to the end of the file.</li>
+ </ul></dd>
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'>IOError</strong></code> - if the file doesn't support random access.</li>
+ </ul></dd>
+ <dt>Overrides:
+ <a href="paramiko.BufferedFile-class.html#seek">BufferedFile.seek</a>
+ <dd><em class="note">(inherited documentation)</em></dd>
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="set_pipelined"></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">set_pipelined</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">pipelined</span>=<span class="sig-default">True</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_file-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Turn on/off the pipelining of write operations to this file. When
+ pipelining is on, paramiko won't wait for the server response after each
+ write operation. Instead, they're collected as they come in. At the
+ first non-write operation (including <a
+ href="paramiko.SFTPFile-class.html#close" class="link">close</a>), all
+ remaining server responses are collected. This means that if there was
+ an error with one of your later writes, an exception might be thrown from
+ within <a href="paramiko.SFTPFile-class.html#close"
+ class="link">close</a> instead of <a
+ href="paramiko.BufferedFile-class.html#write" class="link">write</a>.</p>
+ <p>By default, files are <i>not</i> pipelined.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>pipelined</code></strong> (bool) - <code>True</code> if pipelining should be turned on for this
+ file; <code>False</code> otherwise</li>
+ </ul></dd>
+ </dl>
+<div class="fields"> <p><strong>Since:</strong>
+ 1.5
+ </p>
+</div></td></tr></table>
+</div>
+<a name="setblocking"></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">setblocking</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">blocking</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_file-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Set blocking or non-blocking mode on the underiying socket or ssh <a
+ href="paramiko.Channel-class.html" class="link">Channel</a>.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>blocking</code></strong> (int) - 0 to set non-blocking mode; non-0 to set blocking mode.</li>
+ </ul></dd>
+ </dl>
+<div class="fields"> <p><strong>See Also:</strong>
+ <a href="paramiko.Channel-class.html#setblocking"
+ class="link">Channel.setblocking</a>
+ </p>
+</div></td></tr></table>
+</div>
+<a name="settimeout"></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">settimeout</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">timeout</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_file-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Set a timeout on read/write operations on the underlying socket or ssh
+ <a href="paramiko.Channel-class.html" class="link">Channel</a>.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>timeout</code></strong> (float) - seconds to wait for a pending read/write operation before raising
+ <code>socket.timeout</code>, or <code>None</code> for no timeout</li>
+ </ul></dd>
+ </dl>
+<div class="fields"> <p><strong>See Also:</strong>
+ <a href="paramiko.Channel-class.html#settimeout"
+ class="link">Channel.settimeout</a>
+ </p>
+</div></td></tr></table>
+</div>
+<a name="stat"></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">stat</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_file-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Retrieve information about this file from the remote system. This is
+ exactly like <a href="paramiko.SFTPClient-class.html#stat"
+ class="link">SFTP.stat</a>, except that it operates on an already-open
+ file.</p>
+ <dl class="fields">
+ <dt>Returns: SFTPAttributes</dt>
+ <dd>an object containing attributes about this file.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="truncate"></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">truncate</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">size</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_file-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Change the size of this file. This usually extends or shrinks the
+ size of the file, just like the <code>truncate()</code> method on python
+ file objects.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>size</code></strong> (int or long) - the new size of the file</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="utime"></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">utime</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">times</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_file-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Set the access and modified times of this file. If <code>times</code>
+ is <code>None</code>, then the file's access and modified times are set
+ to the current time. Otherwise, <code>times</code> must be a 2-tuple of
+ numbers, of the form <code>(atime, mtime)</code>, which is used to set
+ the access and modified times, respectively. This bizarre API is
+ mimicked from python for the sake of consistency -- I apologize.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>times</code></strong> (tuple(int)) - <code>None</code> or a tuple of (access time, modified time) in
+ standard internet epoch time (seconds since 01 January 1970 GMT)</li>
+ </ul></dd>
+ </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 Jul 6 18:30:29 2008
+ </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.SFTPHandle-class.html b/docs/paramiko.SFTPHandle-class.html
new file mode 100644
index 0000000..63a4491
--- /dev/null
+++ b/docs/paramiko.SFTPHandle-class.html
@@ -0,0 +1,473 @@
+<?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.SFTPHandle</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> ::
+ Class&nbsp;SFTPHandle
+ </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.SFTPHandle-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class SFTPHandle</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko-pysrc.html#SFTPHandle">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+object --+
+ |
+ <strong class="uidshort">SFTPHandle</strong>
+</pre>
+
+<hr />
+<p>Abstract object representing a handle to an open file (or folder) in
+ an SFTP server implementation. Each handle has a string representation
+ used by the client to refer to the underlying file.</p>
+ <p>Server implementations can (and should) subclass SFTPHandle to
+ implement features of a file handle, like <a
+ href="paramiko.SFTPHandle-class.html#stat" class="link">stat</a> or <a
+ href="paramiko.SFTPHandle-class.html#chattr" class="link">chattr</a>.</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.SFTPHandle-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">flags</span>=<span class="summary-sig-default">0</span>)</span><br />
+ Create a new file handle representing a local file being served over
+ SFTP.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_handle-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">int</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.SFTPHandle-class.html#chattr" class="summary-sig-name">chattr</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">attr</span>)</span><br />
+ Change the attributes of this file.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_handle-pysrc.html">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 href="paramiko.SFTPHandle-class.html#close" class="summary-sig-name">close</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ When a client closes a file, this method is called on the handle.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_handle-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">str</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.SFTPHandle-class.html#read" class="summary-sig-name">read</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">offset</span>,
+ <span class="summary-sig-arg">length</span>)</span><br />
+ Read up to <code>length</code> bytes from this file, starting at
+ position <code>offset</code>.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_handle-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"><a href="paramiko.SFTPAttributes-class.html"
+ class="link">SFTPAttributes</a> <i>or error code</i></span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.SFTPHandle-class.html#stat" class="summary-sig-name">stat</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Return an <a href="paramiko.SFTPAttributes-class.html"
+ class="link">SFTPAttributes</a> object referring to this open file,
+ or an error code.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_handle-pysrc.html">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 href="paramiko.SFTPHandle-class.html#write" class="summary-sig-name">write</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">offset</span>,
+ <span class="summary-sig-arg">data</span>)</span><br />
+ Write <code>data</code> into this file at position
+ <code>offset</code>.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_handle-pysrc.html">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>__getattribute__</code>,
+ <code>__hash__</code>,
+ <code>__new__</code>,
+ <code>__reduce__</code>,
+ <code>__reduce_ex__</code>,
+ <code>__repr__</code>,
+ <code>__setattr__</code>,
+ <code>__str__</code>
+ </p>
+ </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">flags</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.sftp_handle-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Create a new file handle representing a local file being served over
+ SFTP. If <code>flags</code> is passed in, it's used to determine if the
+ file is open in append mode.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>flags</code></strong> (int) - optional flags as passed to <a
+ href="paramiko.SFTPServerInterface-class.html#open"
+ class="link">SFTPServerInterface.open</a></li>
+ </ul></dd>
+ <dt>Overrides:
+ object.__init__
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="chattr"></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">chattr</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">attr</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_handle-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Change the attributes of this file. The <code>attr</code> object will
+ contain only those fields provided by the client in its request, so you
+ should check for the presence of fields before using them.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>attr</code></strong> (<a href="paramiko.SFTPAttributes-class.html"
+ class="link">SFTPAttributes</a>) - the attributes to change on this file.</li>
+ </ul></dd>
+ <dt>Returns: int</dt>
+ <dd>an error code like SFTP_OK.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="close"></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">close</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_handle-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>When a client closes a file, this method is called on the handle.
+ Normally you would use this method to close the underlying OS level file
+ object(s).</p>
+ <p>The default implementation checks for attributes on <code>self</code>
+ named <code>readfile</code> and/or <code>writefile</code>, and if either
+ or both are present, their <code>close()</code> methods are called. This
+ means that if you are using the default implementations of <a
+ href="paramiko.SFTPHandle-class.html#read" class="link">read</a> and <a
+ href="paramiko.SFTPHandle-class.html#write" class="link">write</a>, this
+ method's default implementation should be fine also.</p>
+ <dl class="fields">
+ </dl>
+</td></tr></table>
+</div>
+<a name="read"></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">read</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">offset</span>,
+ <span class="sig-arg">length</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_handle-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Read up to <code>length</code> bytes from this file, starting at
+ position <code>offset</code>. The offset may be a python long, since
+ SFTP allows it to be 64 bits.</p>
+ <p>If the end of the file has been reached, this method may return an
+ empty string to signify EOF, or it may also return SFTP_EOF.</p>
+ <p>The default implementation checks for an attribute on
+ <code>self</code> named <code>readfile</code>, and if present, performs
+ the read operation on the python file-like object found there. (This is
+ meant as a time saver for the common case where you are wrapping a python
+ file object.)</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>offset</code></strong> (int or long) - position in the file to start reading from.</li>
+ <li><strong class="pname"><code>length</code></strong> (int) - number of bytes to attempt to read.</li>
+ </ul></dd>
+ <dt>Returns: str</dt>
+ <dd>data read from the file, or an SFTP error code.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="stat"></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">stat</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_handle-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return an <a href="paramiko.SFTPAttributes-class.html"
+ class="link">SFTPAttributes</a> object referring to this open file, or an
+ error code. This is equivalent to <a
+ href="paramiko.SFTPServerInterface-class.html#stat"
+ class="link">SFTPServerInterface.stat</a>, except it's called on an open
+ file instead of a path.</p>
+ <dl class="fields">
+ <dt>Returns: <a href="paramiko.SFTPAttributes-class.html"
+ class="link">SFTPAttributes</a> <i>or error code</i></dt>
+ <dd>an attributes object for the given file, or an SFTP error code
+ (like SFTP_PERMISSION_DENIED).</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="write"></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">write</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">offset</span>,
+ <span class="sig-arg">data</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_handle-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Write <code>data</code> into this file at position
+ <code>offset</code>. Extending the file past its original end is
+ expected. Unlike python's normal <code>write()</code> methods, this
+ method cannot do a partial write: it must write all of <code>data</code>
+ or else return an error.</p>
+ <p>The default implementation checks for an attribute on
+ <code>self</code> named <code>writefile</code>, and if present, performs
+ the write operation on the python file-like object found there. The
+ attribute is named differently from <code>readfile</code> to make it easy
+ to implement read-only (or write-only) files, but if both attributes are
+ present, they should refer to the same file.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>offset</code></strong> (int or long) - position in the file to start reading from.</li>
+ <li><strong class="pname"><code>data</code></strong> (str) - data to write into the file.</li>
+ </ul></dd>
+ <dt>Returns:</dt>
+ <dd>an SFTP error code like SFTP_OK.</dd>
+ </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 Jul 6 18:30:29 2008
+ </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.SFTPServer-class.html b/docs/paramiko.SFTPServer-class.html
new file mode 100644
index 0000000..514d31e
--- /dev/null
+++ b/docs/paramiko.SFTPServer-class.html
@@ -0,0 +1,468 @@
+<?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.SFTPServer</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> ::
+ Class&nbsp;SFTPServer
+ </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.SFTPServer-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class SFTPServer</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko-pysrc.html#SFTPServer">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+ object --+
+ |
+ BaseSFTP --+
+ |
+ object --+ |
+ | |
+threading._Verbose --+ |
+ | |
+ threading.Thread --+ |
+ | |
+ <a href="paramiko.SubsystemHandler-class.html">SubsystemHandler</a> --+
+ |
+ <strong class="uidshort">SFTPServer</strong>
+</pre>
+
+<hr />
+<p>Server-side SFTP subsystem support. Since this is a <a
+ href="paramiko.SubsystemHandler-class.html"
+ class="link">SubsystemHandler</a>, it can be (and is meant to be) set as
+ the handler for <code>&quot;sftp&quot;</code> requests. Use <a
+ href="paramiko.Transport-class.html#set_subsystem_handler"
+ class="link">Transport.set_subsystem_handler</a> to activate this
+ class.</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.SFTPServer-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">channel</span>,
+ <span class="summary-sig-arg">name</span>,
+ <span class="summary-sig-arg">server</span>,
+ <span class="summary-sig-arg">sftp_si</span>=<span class="summary-sig-default">&lt;class 'paramiko.SFTPServerInterface'&gt;</span>,
+ <span class="summary-sig-arg">*largs</span>,
+ <span class="summary-sig-arg">**kwargs</span>)</span><br />
+ The constructor for SFTPServer is meant to be called from within the
+ <a href="paramiko.Transport-class.html" class="link">Transport</a> as
+ a subsystem handler.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_server-pysrc.html">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 href="paramiko.SFTPServer-class.html#finish_subsystem" class="summary-sig-name">finish_subsystem</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Perform any cleanup at the end of a subsystem.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_server-pysrc.html">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 href="paramiko.SFTPServer-class.html#start_subsystem" class="summary-sig-name">start_subsystem</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">name</span>,
+ <span class="summary-sig-arg">transport</span>,
+ <span class="summary-sig-arg">channel</span>)</span><br />
+ Process an ssh subsystem in server mode.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_server-pysrc.html">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><a href="paramiko.SubsystemHandler-class.html">SubsystemHandler</a></code></b>:
+ <code><a href="paramiko.SubsystemHandler-class.html#get_server">get_server</a></code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>threading.Thread</code></b>:
+ <code>__repr__</code>,
+ <code>getName</code>,
+ <code>isAlive</code>,
+ <code>isDaemon</code>,
+ <code>join</code>,
+ <code>run</code>,
+ <code>setDaemon</code>,
+ <code>setName</code>,
+ <code>start</code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__delattr__</code>,
+ <code>__getattribute__</code>,
+ <code>__hash__</code>,
+ <code>__new__</code>,
+ <code>__reduce__</code>,
+ <code>__reduce_ex__</code>,
+ <code>__setattr__</code>,
+ <code>__str__</code>
+ </p>
+ </td>
+ </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></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">Static Methods</span></td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">int</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.SFTPServer-class.html#convert_errno" class="summary-sig-name">convert_errno</a>(<span class="summary-sig-arg">e</span>)</span><br />
+ Convert an errno value (as from an <code>OSError</code> or
+ <code>IOError</code>) into a standard SFTP result code.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko-pysrc.html#SFTPServer.convert_errno">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 href="paramiko.SFTPServer-class.html#set_file_attr" class="summary-sig-name">set_file_attr</a>(<span class="summary-sig-arg">filename</span>,
+ <span class="summary-sig-arg">attr</span>)</span><br />
+ Change a file's attributes on the local filesystem.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko-pysrc.html#SFTPServer.set_file_attr">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">channel</span>,
+ <span class="sig-arg">name</span>,
+ <span class="sig-arg">server</span>,
+ <span class="sig-arg">sftp_si</span>=<span class="sig-default">&lt;class 'paramiko.SFTPServerInterface'&gt;</span>,
+ <span class="sig-arg">*largs</span>,
+ <span class="sig-arg">**kwargs</span>)</span>
+ <br /><em class="fname">(Constructor)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_server-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>The constructor for SFTPServer is meant to be called from within the
+ <a href="paramiko.Transport-class.html" class="link">Transport</a> as a
+ subsystem handler. <code>server</code> and any additional parameters or
+ keyword parameters are passed from the original call to <a
+ href="paramiko.Transport-class.html#set_subsystem_handler"
+ class="link">Transport.set_subsystem_handler</a>.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>channel</code></strong> (<a href="paramiko.Channel-class.html" class="link">Channel</a>) - channel passed from the <a href="paramiko.Transport-class.html"
+ class="link">Transport</a>.</li>
+ <li><strong class="pname"><code>name</code></strong> (str) - name of the requested subsystem.</li>
+ <li><strong class="pname"><code>server</code></strong> (<a href="paramiko.ServerInterface-class.html"
+ class="link">ServerInterface</a>) - the server object associated with this channel and subsystem</li>
+ <li><strong class="pname"><code>sftp_si</code></strong> (class) - a subclass of <a href="paramiko.SFTPServerInterface-class.html"
+ class="link">SFTPServerInterface</a> to use for handling
+ individual requests.</li>
+ </ul></dd>
+ <dt>Overrides:
+ object.__init__
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="convert_errno"></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">convert_errno</span>(<span class="sig-arg">e</span>)</span>
+ <br /><em class="fname">Static Method</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko-pysrc.html#SFTPServer.convert_errno">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Convert an errno value (as from an <code>OSError</code> or
+ <code>IOError</code>) into a standard SFTP result code. This is a
+ convenience function for trapping exceptions in server code and returning
+ an appropriate result.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>e</code></strong> (int) - an errno code, as from <code>OSError.errno</code>.</li>
+ </ul></dd>
+ <dt>Returns: int</dt>
+ <dd>an SFTP error code like SFTP_NO_SUCH_FILE.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="finish_subsystem"></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">finish_subsystem</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_server-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Perform any cleanup at the end of a subsystem. The default
+ implementation just closes the channel.</p>
+ <dl class="fields">
+ <dt>Overrides:
+ <a href="paramiko.SubsystemHandler-class.html#finish_subsystem">SubsystemHandler.finish_subsystem</a>
+ <dd><em class="note">(inherited documentation)</em></dd>
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="set_file_attr"></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">set_file_attr</span>(<span class="sig-arg">filename</span>,
+ <span class="sig-arg">attr</span>)</span>
+ <br /><em class="fname">Static Method</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko-pysrc.html#SFTPServer.set_file_attr">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Change a file's attributes on the local filesystem. The contents of
+ <code>attr</code> are used to change the permissions, owner, group
+ ownership, and/or modification &amp; access time of the file, depending
+ on which attributes are present in <code>attr</code>.</p>
+ <p>This is meant to be a handy helper function for translating SFTP file
+ requests into local file operations.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>filename</code></strong> (str) - name of the file to alter (should usually be an absolute path).</li>
+ <li><strong class="pname"><code>attr</code></strong> (<a href="paramiko.SFTPAttributes-class.html"
+ class="link">SFTPAttributes</a>) - attributes to change.</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="start_subsystem"></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">start_subsystem</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">name</span>,
+ <span class="sig-arg">transport</span>,
+ <span class="sig-arg">channel</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_server-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Process an ssh subsystem in server mode. This method is called on a
+ new object (and in a new thread) for each subsystem request. It is
+ assumed that all subsystem logic will take place here, and when the
+ subsystem is finished, this method will return. After this method
+ returns, the channel is closed.</p>
+ <p>The combination of <code>transport</code> and <code>channel</code> are
+ unique; this handler corresponds to exactly one <a
+ href="paramiko.Channel-class.html" class="link">Channel</a> on one <a
+ href="paramiko.Transport-class.html" class="link">Transport</a>.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>name</code></strong> - name of the requested subsystem.</li>
+ <li><strong class="pname"><code>transport</code></strong> - the server-mode <a href="paramiko.Transport-class.html"
+ class="link">Transport</a>.</li>
+ <li><strong class="pname"><code>channel</code></strong> - the channel associated with this subsystem request.</li>
+ </ul></dd>
+ <dt>Overrides:
+ <a href="paramiko.SubsystemHandler-class.html#start_subsystem">SubsystemHandler.start_subsystem</a>
+ <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 Jul 6 18:30:29 2008
+ </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.SFTPServerInterface-class.html b/docs/paramiko.SFTPServerInterface-class.html
new file mode 100644
index 0000000..df785ad
--- /dev/null
+++ b/docs/paramiko.SFTPServerInterface-class.html
@@ -0,0 +1,976 @@
+<?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.SFTPServerInterface</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> ::
+ Class&nbsp;SFTPServerInterface
+ </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.SFTPServerInterface-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class SFTPServerInterface</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko-pysrc.html#SFTPServerInterface">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+object --+
+ |
+ <strong class="uidshort">SFTPServerInterface</strong>
+</pre>
+
+<hr />
+<p>This class defines an interface for controlling the behavior of
+ paramiko when using the <a href="paramiko.SFTPServer-class.html"
+ class="link">SFTPServer</a> subsystem to provide an SFTP server.</p>
+ <p>Methods on this class are called from the SFTP session's thread, so
+ you can block as long as necessary without affecting other sessions (even
+ other SFTP sessions). However, raising an exception will usually cause
+ the SFTP session to abruptly end, so you will usually want to catch
+ exceptions and return an appropriate error code.</p>
+ <p>All paths are in string form instead of unicode because not all SFTP
+ clients &amp; servers obey the requirement that paths be encoded in
+ UTF-8.</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.SFTPServerInterface-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">server</span>,
+ <span class="summary-sig-arg">*largs</span>,
+ <span class="summary-sig-arg">**kwargs</span>)</span><br />
+ Create a new SFTPServerInterface object.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_si-pysrc.html">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 href="paramiko.SFTPServerInterface-class.html#canonicalize" class="summary-sig-name">canonicalize</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">path</span>)</span><br />
+ Return the canonical form of a path on the server.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_si-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">int</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.SFTPServerInterface-class.html#chattr" class="summary-sig-name">chattr</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">path</span>,
+ <span class="summary-sig-arg">attr</span>)</span><br />
+ Change the attributes of a file.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_si-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">list of <a href="paramiko.SFTPAttributes-class.html"
+ class="link">SFTPAttributes</a> <i>or error code</i></span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.SFTPServerInterface-class.html#list_folder" class="summary-sig-name">list_folder</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">path</span>)</span><br />
+ Return a list of files within a given folder.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_si-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"><a href="paramiko.SFTPAttributes-class.html"
+ class="link">SFTPAttributes</a> <i>or error code</i></span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.SFTPServerInterface-class.html#lstat" class="summary-sig-name">lstat</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">path</span>)</span><br />
+ Return an <a href="paramiko.SFTPAttributes-class.html"
+ class="link">SFTPAttributes</a> object for a path on the server, or
+ an error code.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_si-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">int</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.SFTPServerInterface-class.html#mkdir" class="summary-sig-name">mkdir</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">path</span>,
+ <span class="summary-sig-arg">attr</span>)</span><br />
+ Create a new directory with the given attributes.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_si-pysrc.html">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 href="paramiko.SFTPServerInterface-class.html#open" class="summary-sig-name">open</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">path</span>,
+ <span class="summary-sig-arg">flags</span>,
+ <span class="summary-sig-arg">attr</span>)</span><br />
+ Open a file on the server and create a handle for future operations
+ on that file.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_si-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">str <i>or error code</i></span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.SFTPServerInterface-class.html#readlink" class="summary-sig-name">readlink</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">path</span>)</span><br />
+ Return the target of a symbolic link (or shortcut) on the server.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_si-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">int</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.SFTPServerInterface-class.html#remove" class="summary-sig-name">remove</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">path</span>)</span><br />
+ Delete a file, if possible.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_si-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">int</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.SFTPServerInterface-class.html#rename" class="summary-sig-name">rename</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">oldpath</span>,
+ <span class="summary-sig-arg">newpath</span>)</span><br />
+ Rename (or move) a file.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_si-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">int</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.SFTPServerInterface-class.html#rmdir" class="summary-sig-name">rmdir</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">path</span>)</span><br />
+ Remove a directory if it exists.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_si-pysrc.html">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 href="paramiko.SFTPServerInterface-class.html#session_ended" class="summary-sig-name">session_ended</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ The SFTP server session has just ended, either cleanly or via an
+ exception.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_si-pysrc.html">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 href="paramiko.SFTPServerInterface-class.html#session_started" class="summary-sig-name">session_started</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ The SFTP server session has just started.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_si-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"><a href="paramiko.SFTPAttributes-class.html"
+ class="link">SFTPAttributes</a> <i>or error code</i></span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.SFTPServerInterface-class.html#stat" class="summary-sig-name">stat</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">path</span>)</span><br />
+ Return an <a href="paramiko.SFTPAttributes-class.html"
+ class="link">SFTPAttributes</a> object for a path on the server, or
+ an error code.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_si-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">int</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.SFTPServerInterface-class.html#symlink" class="summary-sig-name">symlink</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">target_path</span>,
+ <span class="summary-sig-arg">path</span>)</span><br />
+ Create a symbolic link on the server, as new pathname
+ <code>path</code>, with <code>target_path</code> as the target of the
+ link.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.sftp_si-pysrc.html">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>__getattribute__</code>,
+ <code>__hash__</code>,
+ <code>__new__</code>,
+ <code>__reduce__</code>,
+ <code>__reduce_ex__</code>,
+ <code>__repr__</code>,
+ <code>__setattr__</code>,
+ <code>__str__</code>
+ </p>
+ </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">server</span>,
+ <span class="sig-arg">*largs</span>,
+ <span class="sig-arg">**kwargs</span>)</span>
+ <br /><em class="fname">(Constructor)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_si-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Create a new SFTPServerInterface object. This method does nothing by
+ default and is meant to be overridden by subclasses.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>server</code></strong> (<a href="paramiko.ServerInterface-class.html"
+ class="link">ServerInterface</a>) - the server object associated with this channel and SFTP subsystem</li>
+ </ul></dd>
+ <dt>Overrides:
+ object.__init__
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="canonicalize"></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">canonicalize</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">path</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_si-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return the canonical form of a path on the server. For example, if
+ the server's home folder is <code>/home/foo</code>, the path
+ <code>&quot;../betty&quot;</code> would be canonicalized to
+ <code>&quot;/home/betty&quot;</code>. Note the obvious security issues:
+ if you're serving files only from a specific folder, you probably don't
+ want this method to reveal path names outside that folder.</p>
+ <p>You may find the python methods in <code>os.path</code> useful,
+ especially <code>os.path.normpath</code> and
+ <code>os.path.realpath</code>.</p>
+ <p>The default implementation returns <code>os.path.normpath('/' +
+ path)</code>.</p>
+ <dl class="fields">
+ </dl>
+</td></tr></table>
+</div>
+<a name="chattr"></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">chattr</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">path</span>,
+ <span class="sig-arg">attr</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_si-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Change the attributes of a file. The <code>attr</code> object will
+ contain only those fields provided by the client in its request, so you
+ should check for the presence of fields before using them.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>path</code></strong> (str) - requested path (relative or absolute) of the file to change.</li>
+ <li><strong class="pname"><code>attr</code></strong> (<a href="paramiko.SFTPAttributes-class.html"
+ class="link">SFTPAttributes</a>) - requested attributes to change on the file.</li>
+ </ul></dd>
+ <dt>Returns: int</dt>
+ <dd>an error code like SFTP_OK.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="list_folder"></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">list_folder</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">path</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_si-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return a list of files within a given folder. The <code>path</code>
+ will use posix notation (<code>&quot;/&quot;</code> separates folder
+ names) and may be an absolute or relative path.</p>
+ <p>The list of files is expected to be a list of <a
+ href="paramiko.SFTPAttributes-class.html" class="link">SFTPAttributes</a>
+ objects, which are similar in structure to the objects returned by
+ <code>os.stat</code>. In addition, each object should have its
+ <code>filename</code> field filled in, since this is important to a
+ directory listing and not normally present in <code>os.stat</code>
+ results. The method <a
+ href="paramiko.SFTPAttributes-class.html#from_stat"
+ class="link">SFTPAttributes.from_stat</a> will usually do what you
+ want.</p>
+ <p>In case of an error, you should return one of the <code>SFTP_*</code>
+ error codes, such as SFTP_PERMISSION_DENIED.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>path</code></strong> (str) - the requested path (relative or absolute) to be listed.</li>
+ </ul></dd>
+ <dt>Returns: list of <a href="paramiko.SFTPAttributes-class.html"
+ class="link">SFTPAttributes</a> <i>or error code</i></dt>
+ <dd>a list of the files in the given folder, using <a
+ href="paramiko.SFTPAttributes-class.html"
+ class="link">SFTPAttributes</a> objects.</dd>
+ </dl>
+<div class="fields"> <p><strong>Note:</strong>
+ You should normalize the given <code>path</code> first (see the
+ <code>os.path</code> module) and check appropriate permissions
+ before returning the list of files. Be careful of malicious
+ clients attempting to use relative paths to escape restricted
+ folders, if you're doing a direct translation from the SFTP server
+ path to your local filesystem.
+ </p>
+</div></td></tr></table>
+</div>
+<a name="lstat"></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">lstat</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">path</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_si-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return an <a href="paramiko.SFTPAttributes-class.html"
+ class="link">SFTPAttributes</a> object for a path on the server, or an
+ error code. If your server supports symbolic links (also known as
+ &quot;aliases&quot;), you should <i>not</i> follow them -- instead, you
+ should return data on the symlink or alias itself. (<a
+ href="paramiko.SFTPServerInterface-class.html#stat" class="link">stat</a>
+ is the corresponding call that follows symlinks/aliases.)</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>path</code></strong> (str) - the requested path (relative or absolute) to fetch file
+ statistics for.</li>
+ </ul></dd>
+ <dt>Returns: <a href="paramiko.SFTPAttributes-class.html"
+ class="link">SFTPAttributes</a> <i>or error code</i></dt>
+ <dd>an attributes object for the given file, or an SFTP error code
+ (like SFTP_PERMISSION_DENIED).</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="mkdir"></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">mkdir</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">path</span>,
+ <span class="sig-arg">attr</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_si-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Create a new directory with the given attributes. The
+ <code>attr</code> object may be considered a &quot;hint&quot; and
+ ignored.</p>
+ <p>The <code>attr</code> object will contain only those fields provided
+ by the client in its request, so you should use <code>hasattr</code> to
+ check for the presense of fields before using them. In some cases, the
+ <code>attr</code> object may be completely empty.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>path</code></strong> (str) - requested path (relative or absolute) of the new folder.</li>
+ <li><strong class="pname"><code>attr</code></strong> (<a href="paramiko.SFTPAttributes-class.html"
+ class="link">SFTPAttributes</a>) - requested attributes of the new folder.</li>
+ </ul></dd>
+ <dt>Returns: int</dt>
+ <dd>an SFTP error code like SFTP_OK.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="open"></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">open</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">path</span>,
+ <span class="sig-arg">flags</span>,
+ <span class="sig-arg">attr</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_si-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Open a file on the server and create a handle for future operations on
+ that file. On success, a new object subclassed from <a
+ href="paramiko.SFTPHandle-class.html" class="link">SFTPHandle</a> should
+ be returned. This handle will be used for future operations on the file
+ (read, write, etc). On failure, an error code such as
+ SFTP_PERMISSION_DENIED should be returned.</p>
+ <p><code>flags</code> contains the requested mode for opening (read-only,
+ write-append, etc) as a bitset of flags from the <code>os</code>
+ module:</p>
+ <ul>
+ <li>
+ <code>os.O_RDONLY</code>
+ </li>
+ <li>
+ <code>os.O_WRONLY</code>
+ </li>
+ <li>
+ <code>os.O_RDWR</code>
+ </li>
+ <li>
+ <code>os.O_APPEND</code>
+ </li>
+ <li>
+ <code>os.O_CREAT</code>
+ </li>
+ <li>
+ <code>os.O_TRUNC</code>
+ </li>
+ <li>
+ <code>os.O_EXCL</code>
+ </li>
+ </ul>
+ <p>(One of <code>os.O_RDONLY</code>, <code>os.O_WRONLY</code>, or
+ <code>os.O_RDWR</code> will always be set.)</p>
+ <p>The <code>attr</code> object contains requested attributes of the file
+ if it has to be created. Some or all attribute fields may be missing if
+ the client didn't specify them.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>path</code></strong> (str) - the requested path (relative or absolute) of the file to be
+ opened.</li>
+ <li><strong class="pname"><code>flags</code></strong> (int) - flags or'd together from the <code>os</code> module indicating
+ the requested mode for opening the file.</li>
+ <li><strong class="pname"><code>attr</code></strong> (<a href="paramiko.SFTPAttributes-class.html"
+ class="link">SFTPAttributes</a>) - requested attributes of the file if it is newly created.</li>
+ </ul></dd>
+ <dt>Returns:</dt>
+ <dd>a new <a href="paramiko.SFTPHandle-class.html"
+ class="link">SFTPHandle</a> <i>or error code</i>. @rtype <a
+ href="paramiko.SFTPHandle-class.html" class="link">SFTPHandle</a></dd>
+ </dl>
+<div class="fields"> <p><strong>Note:</strong>
+ The SFTP protocol defines all files to be in &quot;binary&quot;
+ mode. There is no equivalent to python's &quot;text&quot; mode.
+ </p>
+</div></td></tr></table>
+</div>
+<a name="readlink"></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">readlink</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">path</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_si-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return the target of a symbolic link (or shortcut) on the server. If
+ the specified path doesn't refer to a symbolic link, an error should be
+ returned.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>path</code></strong> (str) - path (relative or absolute) of the symbolic link.</li>
+ </ul></dd>
+ <dt>Returns: str <i>or error code</i></dt>
+ <dd>the target path of the symbolic link, or an error code like
+ SFTP_NO_SUCH_FILE.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="remove"></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">remove</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">path</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_si-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Delete a file, if possible.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>path</code></strong> (str) - the requested path (relative or absolute) of the file to delete.</li>
+ </ul></dd>
+ <dt>Returns: int</dt>
+ <dd>an SFTP error code like SFTP_OK.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="rename"></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">rename</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">oldpath</span>,
+ <span class="sig-arg">newpath</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_si-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Rename (or move) a file. The SFTP specification implies that this
+ method can be used to move an existing file into a different folder, and
+ since there's no other (easy) way to move files via SFTP, it's probably a
+ good idea to implement &quot;move&quot; in this method too, even for
+ files that cross disk partition boundaries, if at all possible.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>oldpath</code></strong> (str) - the requested path (relative or absolute) of the existing file.</li>
+ <li><strong class="pname"><code>newpath</code></strong> (str) - the requested new path of the file.</li>
+ </ul></dd>
+ <dt>Returns: int</dt>
+ <dd>an SFTP error code like SFTP_OK.</dd>
+ </dl>
+<div class="fields"> <p><strong>Note:</strong>
+ You should return an error if a file with the same name as
+ <code>newpath</code> already exists. (The rename operation should
+ be non-desctructive.)
+ </p>
+</div></td></tr></table>
+</div>
+<a name="rmdir"></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">rmdir</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">path</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_si-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Remove a directory if it exists. The <code>path</code> should refer
+ to an existing, empty folder -- otherwise this method should return an
+ error.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>path</code></strong> (str) - requested path (relative or absolute) of the folder to remove.</li>
+ </ul></dd>
+ <dt>Returns: int</dt>
+ <dd>an SFTP error code like SFTP_OK.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="session_ended"></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">session_ended</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_si-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>The SFTP server session has just ended, either cleanly or via an
+ exception. This method is meant to be overridden to perform any
+ necessary cleanup before this <code>SFTPServerInterface</code> object is
+ destroyed.</p>
+ <dl class="fields">
+ </dl>
+</td></tr></table>
+</div>
+<a name="session_started"></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">session_started</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_si-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>The SFTP server session has just started. This method is meant to be
+ overridden to perform any necessary setup before handling callbacks from
+ SFTP operations.</p>
+ <dl class="fields">
+ </dl>
+</td></tr></table>
+</div>
+<a name="stat"></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">stat</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">path</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_si-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return an <a href="paramiko.SFTPAttributes-class.html"
+ class="link">SFTPAttributes</a> object for a path on the server, or an
+ error code. If your server supports symbolic links (also known as
+ &quot;aliases&quot;), you should follow them. (<a
+ href="paramiko.SFTPServerInterface-class.html#lstat"
+ class="link">lstat</a> is the corresponding call that doesn't follow
+ symlinks/aliases.)</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>path</code></strong> (str) - the requested path (relative or absolute) to fetch file
+ statistics for.</li>
+ </ul></dd>
+ <dt>Returns: <a href="paramiko.SFTPAttributes-class.html"
+ class="link">SFTPAttributes</a> <i>or error code</i></dt>
+ <dd>an attributes object for the given file, or an SFTP error code
+ (like SFTP_PERMISSION_DENIED).</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="symlink"></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">symlink</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">target_path</span>,
+ <span class="sig-arg">path</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.sftp_si-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Create a symbolic link on the server, as new pathname
+ <code>path</code>, with <code>target_path</code> as the target of the
+ link.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>target_path</code></strong> (str) - path (relative or absolute) of the target for this new symbolic
+ link.</li>
+ <li><strong class="pname"><code>path</code></strong> (str) - path (relative or absolute) of the symbolic link to create.</li>
+ </ul></dd>
+ <dt>Returns: int</dt>
+ <dd>an error code like <code>SFTP_OK</code>.</dd>
+ </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 Jul 6 18:30:29 2008
+ </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.SSHClient-class.html b/docs/paramiko.SSHClient-class.html
new file mode 100644
index 0000000..4e3ec8e
--- /dev/null
+++ b/docs/paramiko.SSHClient-class.html
@@ -0,0 +1,839 @@
+<?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.SSHClient</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> ::
+ Class&nbsp;SSHClient
+ </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.SSHClient-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class SSHClient</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko-pysrc.html#SSHClient">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+object --+
+ |
+ <strong class="uidshort">SSHClient</strong>
+</pre>
+
+<hr />
+<p>A high-level representation of a session with an SSH server. This
+ class wraps <a href="paramiko.Transport-class.html"
+ class="link">Transport</a>, <a href="paramiko.Channel-class.html"
+ class="link">Channel</a>, and <a href="paramiko.SFTPClient-class.html"
+ class="link">SFTPClient</a> to take care of most aspects of
+ authenticating and opening channels. A typical use case is:</p>
+<pre class="literalblock">
+ client = SSHClient()
+ client.load_system_host_keys()
+ client.connect('ssh.example.com')
+ stdin, stdout, stderr = client.exec_command('ls -l')
+</pre>
+ <p>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).</p>
+
+<hr />
+<div class="fields"> <p><strong>Since:</strong>
+ 1.6
+ </p>
+</div><!-- ==================== 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.SSHClient-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Create a new SSHClient.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.client-pysrc.html">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="close"></a><span class="summary-sig-name">close</span>(<span class="summary-sig-arg">self</span>)</span><br />
+ Close this SSHClient and its underlying <a
+ href="paramiko.Transport-class.html" class="link">Transport</a>.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.client-pysrc.html">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 href="paramiko.SSHClient-class.html#connect" class="summary-sig-name">connect</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">hostname</span>,
+ <span class="summary-sig-arg">port</span>=<span class="summary-sig-default">22</span>,
+ <span class="summary-sig-arg">username</span>=<span class="summary-sig-default">None</span>,
+ <span class="summary-sig-arg">password</span>=<span class="summary-sig-default">None</span>,
+ <span class="summary-sig-arg">pkey</span>=<span class="summary-sig-default">None</span>,
+ <span class="summary-sig-arg">key_filename</span>=<span class="summary-sig-default">None</span>,
+ <span class="summary-sig-arg">timeout</span>=<span class="summary-sig-default">None</span>,
+ <span class="summary-sig-arg">allow_agent</span>=<span class="summary-sig-default">True</span>,
+ <span class="summary-sig-arg">look_for_keys</span>=<span class="summary-sig-default">True</span>)</span><br />
+ Connect to an SSH server and authenticate to it.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.client-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">tuple(ChannelFile, ChannelFile, ChannelFile)</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.SSHClient-class.html#exec_command" class="summary-sig-name">exec_command</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">command</span>,
+ <span class="summary-sig-arg">bufsize</span>=<span class="summary-sig-default">-1</span>)</span><br />
+ Execute a command on the SSH server.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.client-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"><a href="paramiko.HostKeys-class.html" class="link">HostKeys</a></span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.SSHClient-class.html#get_host_keys" class="summary-sig-name">get_host_keys</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Get the local <a href="paramiko.HostKeys-class.html"
+ class="link">HostKeys</a> object.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.client-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"><a href="paramiko.Transport-class.html" class="link">Transport</a></span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.SSHClient-class.html#get_transport" class="summary-sig-name">get_transport</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Return the underlying <a href="paramiko.Transport-class.html"
+ class="link">Transport</a> object for this SSH connection.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.client-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"><a href="paramiko.Channel-class.html" class="link">Channel</a></span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.SSHClient-class.html#invoke_shell" class="summary-sig-name">invoke_shell</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">term</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string">vt100</code><code class="variable-quote">'</code></span>,
+ <span class="summary-sig-arg">width</span>=<span class="summary-sig-default">80</span>,
+ <span class="summary-sig-arg">height</span>=<span class="summary-sig-default">24</span>)</span><br />
+ Start an interactive shell session on the SSH server.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.client-pysrc.html">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 href="paramiko.SSHClient-class.html#load_host_keys" class="summary-sig-name">load_host_keys</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">filename</span>)</span><br />
+ Load host keys from a local host-key file.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.client-pysrc.html">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 href="paramiko.SSHClient-class.html#load_system_host_keys" class="summary-sig-name">load_system_host_keys</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">filename</span>=<span class="summary-sig-default">None</span>)</span><br />
+ Load host keys from a system (read-only) file.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.client-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"><a href="paramiko.SFTPClient-class.html" class="link">SFTPClient</a></span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.SSHClient-class.html#open_sftp" class="summary-sig-name">open_sftp</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Open an SFTP session on the SSH server.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.client-pysrc.html">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 href="paramiko.SSHClient-class.html#save_host_keys" class="summary-sig-name">save_host_keys</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">filename</span>)</span><br />
+ Save the host keys back to a file.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.client-pysrc.html">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 href="paramiko.SSHClient-class.html#set_log_channel" class="summary-sig-name">set_log_channel</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">name</span>)</span><br />
+ Set the channel for logging.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.client-pysrc.html">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 href="paramiko.SSHClient-class.html#set_missing_host_key_policy" class="summary-sig-name">set_missing_host_key_policy</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">policy</span>)</span><br />
+ Set the policy to use when connecting to a server that doesn't have a
+ host key in either the system or local <a
+ href="paramiko.HostKeys-class.html" class="link">HostKeys</a>
+ objects.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.client-pysrc.html">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>__getattribute__</code>,
+ <code>__hash__</code>,
+ <code>__new__</code>,
+ <code>__reduce__</code>,
+ <code>__reduce_ex__</code>,
+ <code>__repr__</code>,
+ <code>__setattr__</code>,
+ <code>__str__</code>
+ </p>
+ </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>
+ <br /><em class="fname">(Constructor)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.client-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Create a new SSHClient.</p>
+ <dl class="fields">
+ <dt>Overrides:
+ object.__init__
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="connect"></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">connect</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">hostname</span>,
+ <span class="sig-arg">port</span>=<span class="sig-default">22</span>,
+ <span class="sig-arg">username</span>=<span class="sig-default">None</span>,
+ <span class="sig-arg">password</span>=<span class="sig-default">None</span>,
+ <span class="sig-arg">pkey</span>=<span class="sig-default">None</span>,
+ <span class="sig-arg">key_filename</span>=<span class="sig-default">None</span>,
+ <span class="sig-arg">timeout</span>=<span class="sig-default">None</span>,
+ <span class="sig-arg">allow_agent</span>=<span class="sig-default">True</span>,
+ <span class="sig-arg">look_for_keys</span>=<span class="sig-default">True</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.client-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Connect to an SSH server and authenticate to it. The server's host
+ key is checked against the system host keys (see <a
+ href="paramiko.SSHClient-class.html#load_system_host_keys"
+ class="link">load_system_host_keys</a>) and any local host keys (<a
+ href="paramiko.SSHClient-class.html#load_host_keys"
+ class="link">load_host_keys</a>). If the server's hostname is not found
+ in either set of host keys, the missing host key policy is used (see <a
+ href="paramiko.SSHClient-class.html#set_missing_host_key_policy"
+ class="link">set_missing_host_key_policy</a>). The default policy is to
+ reject the key and raise an <a href="paramiko.SSHException-class.html"
+ class="link">SSHException</a>.</p>
+ <p>Authentication is attempted in the following order of priority:</p>
+ <ul>
+ <li>
+ The <code>pkey</code> or <code>key_filename</code> passed in (if any)
+ </li>
+ <li>
+ Any key we can find through an SSH agent
+ </li>
+ <li>
+ Any &quot;id_rsa&quot; or &quot;id_dsa&quot; key discoverable in
+ <code>~/.ssh/</code>
+ </li>
+ <li>
+ Plain username/password auth, if a password was given
+ </li>
+ </ul>
+ <p>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.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>hostname</code></strong> (str) - the server to connect to</li>
+ <li><strong class="pname"><code>port</code></strong> (int) - the server port to connect to</li>
+ <li><strong class="pname"><code>username</code></strong> (str) - the username to authenticate as (defaults to the current local
+ username)</li>
+ <li><strong class="pname"><code>password</code></strong> (str) - a password to use for authentication or for unlocking a private
+ key</li>
+ <li><strong class="pname"><code>pkey</code></strong> (<a href="paramiko.PKey-class.html" class="link">PKey</a>) - an optional private key to use for authentication</li>
+ <li><strong class="pname"><code>key_filename</code></strong> (str or list(str)) - the filename, or list of filenames, of optional private key(s) to
+ try for authentication</li>
+ <li><strong class="pname"><code>timeout</code></strong> (float) - an optional timeout (in seconds) for the TCP connect</li>
+ <li><strong class="pname"><code>allow_agent</code></strong> (bool) - set to False to disable connecting to the SSH agent</li>
+ <li><strong class="pname"><code>look_for_keys</code></strong> (bool) - set to False to disable searching for discoverable private key
+ files in <code>~/.ssh/</code></li>
+ </ul></dd>
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'><a href="paramiko.BadHostKeyException-class.html">BadHostKeyException</a></strong></code> - if the server's host key could not be verified</li>
+ <li><code><strong class='fraise'><a href="paramiko.AuthenticationException-class.html">AuthenticationException</a></strong></code> - if authentication failed</li>
+ <li><code><strong class='fraise'><a href="paramiko.SSHException-class.html">SSHException</a></strong></code> - if there was any other error connecting or establishing an SSH
+ session</li>
+ <li><code><strong class='fraise'>socket.error</strong></code> - if a socket error occurred while connecting</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="exec_command"></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">exec_command</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">command</span>,
+ <span class="sig-arg">bufsize</span>=<span class="sig-default">-1</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.client-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Execute a command on the SSH server. A new <a
+ href="paramiko.Channel-class.html" class="link">Channel</a> is opened and
+ the requested command is executed. The command's input and output
+ streams are returned as python <code>file</code>-like objects
+ representing stdin, stdout, and stderr.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>command</code></strong> (str) - the command to execute</li>
+ <li><strong class="pname"><code>bufsize</code></strong> (int) - interpreted the same way as by the built-in <code>file()</code>
+ function in python</li>
+ </ul></dd>
+ <dt>Returns: tuple(ChannelFile, ChannelFile, ChannelFile)</dt>
+ <dd>the stdin, stdout, and stderr of the executing command</dd>
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'><a href="paramiko.SSHException-class.html">SSHException</a></strong></code> - if the server fails to execute the command</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="get_host_keys"></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">get_host_keys</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.client-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Get the local <a href="paramiko.HostKeys-class.html"
+ class="link">HostKeys</a> object. This can be used to examine the local
+ host keys or change them.</p>
+ <dl class="fields">
+ <dt>Returns: <a href="paramiko.HostKeys-class.html" class="link">HostKeys</a></dt>
+ <dd>the local host keys</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="get_transport"></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">get_transport</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.client-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return the underlying <a href="paramiko.Transport-class.html"
+ class="link">Transport</a> object for this SSH connection. This can be
+ used to perform lower-level tasks, like opening specific kinds of
+ channels.</p>
+ <dl class="fields">
+ <dt>Returns: <a href="paramiko.Transport-class.html" class="link">Transport</a></dt>
+ <dd>the Transport for this connection</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="invoke_shell"></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">invoke_shell</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">term</span>=<span class="sig-default"><code class="variable-quote">'</code><code class="variable-string">vt100</code><code class="variable-quote">'</code></span>,
+ <span class="sig-arg">width</span>=<span class="sig-default">80</span>,
+ <span class="sig-arg">height</span>=<span class="sig-default">24</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.client-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Start an interactive shell session on the SSH server. A new <a
+ href="paramiko.Channel-class.html" class="link">Channel</a> is opened and
+ connected to a pseudo-terminal using the requested terminal type and
+ size.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>term</code></strong> (str) - the terminal type to emulate (for example,
+ <code>&quot;vt100&quot;</code>)</li>
+ <li><strong class="pname"><code>width</code></strong> (int) - the width (in characters) of the terminal window</li>
+ <li><strong class="pname"><code>height</code></strong> (int) - the height (in characters) of the terminal window</li>
+ </ul></dd>
+ <dt>Returns: <a href="paramiko.Channel-class.html" class="link">Channel</a></dt>
+ <dd>a new channel connected to the remote shell</dd>
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'><a href="paramiko.SSHException-class.html">SSHException</a></strong></code> - if the server fails to invoke a shell</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="load_host_keys"></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">load_host_keys</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">filename</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.client-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Load host keys from a local host-key file. Host keys read with this
+ method will be checked <i>after</i> keys loaded via <a
+ href="paramiko.SSHClient-class.html#load_system_host_keys"
+ class="link">load_system_host_keys</a>, but will be saved back by <a
+ href="paramiko.SSHClient-class.html#save_host_keys"
+ class="link">save_host_keys</a> (so they can be modified). The missing
+ host key policy <a href="paramiko.AutoAddPolicy-class.html"
+ class="link">AutoAddPolicy</a> adds keys to this set and saves them, when
+ connecting to a previously-unknown server.</p>
+ <p>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.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>filename</code></strong> (str) - the filename to read</li>
+ </ul></dd>
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'>IOError</strong></code> - if the filename could not be read</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="load_system_host_keys"></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">load_system_host_keys</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">filename</span>=<span class="sig-default">None</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.client-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Load host keys from a system (read-only) file. Host keys read with
+ this method will not be saved back by <a
+ href="paramiko.SSHClient-class.html#save_host_keys"
+ class="link">save_host_keys</a>.</p>
+ <p>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).</p>
+ <p>If <code>filename</code> is left as <code>None</code>, an attempt will
+ be made to read keys from the user's local &quot;known hosts&quot; file,
+ as used by OpenSSH, and no exception will be raised if the file can't be
+ read. This is probably only useful on posix.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>filename</code></strong> (str) - the filename to read, or <code>None</code></li>
+ </ul></dd>
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'>IOError</strong></code> - if a filename was provided and the file could not be read</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="open_sftp"></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">open_sftp</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.client-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Open an SFTP session on the SSH server.</p>
+ <dl class="fields">
+ <dt>Returns: <a href="paramiko.SFTPClient-class.html" class="link">SFTPClient</a></dt>
+ <dd>a new SFTP session object</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="save_host_keys"></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">save_host_keys</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">filename</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.client-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Save the host keys back to a file. Only the host keys loaded with <a
+ href="paramiko.SSHClient-class.html#load_host_keys"
+ class="link">load_host_keys</a> (plus any added directly) will be saved
+ -- not any host keys loaded with <a
+ href="paramiko.SSHClient-class.html#load_system_host_keys"
+ class="link">load_system_host_keys</a>.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>filename</code></strong> (str) - the filename to save to</li>
+ </ul></dd>
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'>IOError</strong></code> - if the file could not be written</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="set_log_channel"></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">set_log_channel</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">name</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.client-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Set the channel for logging. The default is
+ <code>&quot;paramiko.transport&quot;</code> but it can be set to anything
+ you want.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>name</code></strong> (str) - new channel name for logging</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="set_missing_host_key_policy"></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">set_missing_host_key_policy</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">policy</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.client-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Set the policy to use when connecting to a server that doesn't have a
+ host key in either the system or local <a
+ href="paramiko.HostKeys-class.html" class="link">HostKeys</a> objects.
+ The default policy is to reject all unknown servers (using <a
+ href="paramiko.RejectPolicy-class.html" class="link">RejectPolicy</a>).
+ You may substitute <a href="paramiko.AutoAddPolicy-class.html"
+ class="link">AutoAddPolicy</a> or write your own policy class.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>policy</code></strong> (<a href="paramiko.MissingHostKeyPolicy-class.html"
+ class="link">MissingHostKeyPolicy</a>) - the policy to use when receiving a host key from a
+ previously-unknown server</li>
+ </ul></dd>
+ </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 Jul 6 18:30:29 2008
+ </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.SSHConfig-class.html b/docs/paramiko.SSHConfig-class.html
new file mode 100644
index 0000000..b568e27
--- /dev/null
+++ b/docs/paramiko.SSHConfig-class.html
@@ -0,0 +1,306 @@
+<?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.SSHConfig</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> ::
+ Class&nbsp;SSHConfig
+ </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.SSHConfig-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class SSHConfig</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko-pysrc.html#SSHConfig">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+object --+
+ |
+ <strong class="uidshort">SSHConfig</strong>
+</pre>
+
+<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
+ 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>
+
+<hr />
+<div class="fields"> <p><strong>Since:</strong>
+ 1.6
+ </p>
+</div><!-- ==================== 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.SSHConfig-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Create a new OpenSSH config object.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.config-pysrc.html">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 href="paramiko.SSHConfig-class.html#lookup" class="summary-sig-name">lookup</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">hostname</span>)</span><br />
+ Return a dict of config options for a given hostname.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.config-pysrc.html">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 href="paramiko.SSHConfig-class.html#parse" class="summary-sig-name">parse</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">file_obj</span>)</span><br />
+ Read an OpenSSH config from the given file object.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.config-pysrc.html">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>__getattribute__</code>,
+ <code>__hash__</code>,
+ <code>__new__</code>,
+ <code>__reduce__</code>,
+ <code>__reduce_ex__</code>,
+ <code>__repr__</code>,
+ <code>__setattr__</code>,
+ <code>__str__</code>
+ </p>
+ </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>
+ <br /><em class="fname">(Constructor)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.config-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Create a new OpenSSH config object.</p>
+ <dl class="fields">
+ <dt>Overrides:
+ object.__init__
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="lookup"></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">lookup</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">hostname</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.config-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return a dict of config options for a given hostname.</p>
+ <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
+ *.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
+ other processing is done to the keys or values.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>hostname</code></strong> (str) - the hostname to lookup</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="parse"></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">parse</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">file_obj</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.config-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Read an OpenSSH config from the given file object.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>file_obj</code></strong> (file) - a file-like object to read the config file from</li>
+ </ul></dd>
+ </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 Jul 6 18:30:29 2008
+ </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.SSHException-class.html b/docs/paramiko.SSHException-class.html
new file mode 100644
index 0000000..75c6138
--- /dev/null
+++ b/docs/paramiko.SSHException-class.html
@@ -0,0 +1,173 @@
+<?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.SSHException</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> ::
+ Class&nbsp;SSHException
+ </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.SSHException-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class SSHException</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko-pysrc.html#SSHException">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+ object --+
+ |
+exceptions.BaseException --+
+ |
+ exceptions.Exception --+
+ |
+ <strong class="uidshort">SSHException</strong>
+</pre>
+
+<dl><dt>Known Subclasses:</dt>
+<dd>
+ <ul class="subclass-list">
+<li><a href="paramiko.AuthenticationException-class.html">AuthenticationException</a></li><li>, <a href="paramiko.BadHostKeyException-class.html">BadHostKeyException</a></li><li>, <a href="paramiko.ChannelException-class.html">ChannelException</a></li> </ul>
+</dd></dl>
+
+<hr />
+<p>Exception raised by failures in SSH2 protocol negotiation or logic
+ errors.</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 colspan="2" class="summary">
+ <p class="indent-wrapped-lines"><b>Inherited from <code>exceptions.Exception</code></b>:
+ <code>__init__</code>,
+ <code>__new__</code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>exceptions.BaseException</code></b>:
+ <code>__delattr__</code>,
+ <code>__getattribute__</code>,
+ <code>__getitem__</code>,
+ <code>__reduce__</code>,
+ <code>__repr__</code>,
+ <code>__setattr__</code>,
+ <code>__setstate__</code>,
+ <code>__str__</code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__hash__</code>,
+ <code>__reduce_ex__</code>
+ </p>
+ </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>exceptions.BaseException</code></b>:
+ <code>args</code>,
+ <code>message</code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__class__</code>
+ </p>
+ </td>
+ </tr>
+</table>
+<!-- ==================== 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 Jul 6 18:30:29 2008
+ </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.SecurityOptions-class.html b/docs/paramiko.SecurityOptions-class.html
new file mode 100644
index 0000000..adfff52
--- /dev/null
+++ b/docs/paramiko.SecurityOptions-class.html
@@ -0,0 +1,394 @@
+<?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.SecurityOptions</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> ::
+ Class&nbsp;SecurityOptions
+ </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.SecurityOptions-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class SecurityOptions</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko-pysrc.html#SecurityOptions">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+object --+
+ |
+ <strong class="uidshort">SecurityOptions</strong>
+</pre>
+
+<hr />
+<p>Simple object containing the security preferences of an ssh transport.
+ These are tuples of acceptable ciphers, digests, key types, and key
+ exchange algorithms, listed in order of preference.</p>
+ <p>Changing the contents and/or order of these fields affects the
+ underlying <a href="paramiko.Transport-class.html"
+ class="link">Transport</a> (but only if you change them before starting
+ the session). If you try to add an algorithm that paramiko doesn't
+ recognize, <code>ValueError</code> will be raised. If you try to assign
+ something besides a tuple to one of the fields, <code>TypeError</code>
+ will be raised.</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.SecurityOptions-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">transport</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.transport-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">str</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.SecurityOptions-class.html#__repr__" class="summary-sig-name">__repr__</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Returns a string representation of this object, for debugging.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.transport-pysrc.html">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>__getattribute__</code>,
+ <code>__hash__</code>,
+ <code>__new__</code>,
+ <code>__reduce__</code>,
+ <code>__reduce_ex__</code>,
+ <code>__setattr__</code>,
+ <code>__str__</code>
+ </p>
+ </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 width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
+ <a href="paramiko.SecurityOptions-class.html#ciphers" class="summary-name">ciphers</a><br />
+ Symmetric encryption ciphers
+ </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.SecurityOptions-class.html#compression" class="summary-name">compression</a><br />
+ Compression algorithms
+ </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.SecurityOptions-class.html#digests" class="summary-name">digests</a><br />
+ Digest (one-way hash) algorithms
+ </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.SecurityOptions-class.html#kex" class="summary-name">kex</a><br />
+ Key exchange algorithms
+ </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.SecurityOptions-class.html#key_types" class="summary-name">key_types</a><br />
+ Public-key algorithms
+ </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">transport</span>)</span>
+ <br /><em class="fname">(Constructor)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.transport-pysrc.html">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>
+<a name="__repr__"></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">__repr__</span>(<span class="sig-arg">self</span>)</span>
+ <br /><em class="fname">(Representation operator)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Returns a string representation of this object, for debugging.</p>
+ <dl class="fields">
+ <dt>Returns: str</dt>
+ <dt>Overrides:
+ object.__repr__
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== PROPERTY DETAILS ==================== -->
+<a name="section-PropertyDetails"></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">Property Details</span></td>
+</tr>
+</table>
+<a name="ciphers"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">ciphers</h3>
+ <p>Symmetric encryption ciphers</p>
+ <dl class="fields">
+ <dt>Get Method:</dt>
+ <dd class="value"><span class="summary-sig"><a href="paramiko.SecurityOptions-class.html#_get_ciphers" class="summary-sig-name" onclick="show_private();">_get_ciphers</a>(<span class="summary-sig-arg">self</span>)</span>
+ </dd>
+ <dt>Set Method:</dt>
+ <dd class="value"><span class="summary-sig"><a href="paramiko.SecurityOptions-class.html#_set_ciphers" class="summary-sig-name" onclick="show_private();">_set_ciphers</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">x</span>)</span>
+ </dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="compression"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">compression</h3>
+ <p>Compression algorithms</p>
+ <dl class="fields">
+ <dt>Get Method:</dt>
+ <dd class="value"><span class="summary-sig"><a href="paramiko.SecurityOptions-class.html#_get_compression" class="summary-sig-name" onclick="show_private();">_get_compression</a>(<span class="summary-sig-arg">self</span>)</span>
+ </dd>
+ <dt>Set Method:</dt>
+ <dd class="value"><span class="summary-sig"><a href="paramiko.SecurityOptions-class.html#_set_compression" class="summary-sig-name" onclick="show_private();">_set_compression</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">x</span>)</span>
+ </dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="digests"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">digests</h3>
+ <p>Digest (one-way hash) algorithms</p>
+ <dl class="fields">
+ <dt>Get Method:</dt>
+ <dd class="value"><span class="summary-sig"><a href="paramiko.SecurityOptions-class.html#_get_digests" class="summary-sig-name" onclick="show_private();">_get_digests</a>(<span class="summary-sig-arg">self</span>)</span>
+ </dd>
+ <dt>Set Method:</dt>
+ <dd class="value"><span class="summary-sig"><a href="paramiko.SecurityOptions-class.html#_set_digests" class="summary-sig-name" onclick="show_private();">_set_digests</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">x</span>)</span>
+ </dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="kex"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">kex</h3>
+ <p>Key exchange algorithms</p>
+ <dl class="fields">
+ <dt>Get Method:</dt>
+ <dd class="value"><span class="summary-sig"><a href="paramiko.SecurityOptions-class.html#_get_kex" class="summary-sig-name" onclick="show_private();">_get_kex</a>(<span class="summary-sig-arg">self</span>)</span>
+ </dd>
+ <dt>Set Method:</dt>
+ <dd class="value"><span class="summary-sig"><a href="paramiko.SecurityOptions-class.html#_set_kex" class="summary-sig-name" onclick="show_private();">_set_kex</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">x</span>)</span>
+ </dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="key_types"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">key_types</h3>
+ <p>Public-key algorithms</p>
+ <dl class="fields">
+ <dt>Get Method:</dt>
+ <dd class="value"><span class="summary-sig"><a href="paramiko.SecurityOptions-class.html#_get_key_types" class="summary-sig-name" onclick="show_private();">_get_key_types</a>(<span class="summary-sig-arg">self</span>)</span>
+ </dd>
+ <dt>Set Method:</dt>
+ <dd class="value"><span class="summary-sig"><a href="paramiko.SecurityOptions-class.html#_set_key_types" class="summary-sig-name" onclick="show_private();">_set_key_types</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">x</span>)</span>
+ </dd>
+ </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 Jul 6 18:30:29 2008
+ </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.ServerInterface-class.html b/docs/paramiko.ServerInterface-class.html
new file mode 100644
index 0000000..06d75de
--- /dev/null
+++ b/docs/paramiko.ServerInterface-class.html
@@ -0,0 +1,1244 @@
+<?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.ServerInterface</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> ::
+ Class&nbsp;ServerInterface
+ </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.ServerInterface-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class ServerInterface</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko-pysrc.html#ServerInterface">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+object --+
+ |
+ <strong class="uidshort">ServerInterface</strong>
+</pre>
+
+<hr />
+<p>This class defines an interface for controlling the behavior of
+ paramiko in server mode.</p>
+ <p>Methods on this class are called from paramiko's primary thread, so
+ you shouldn't do too much work in them. (Certainly nothing that blocks
+ or sleeps.)</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.ServerInterface-class.html#cancel_port_forward_request" class="summary-sig-name">cancel_port_forward_request</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">address</span>,
+ <span class="summary-sig-arg">port</span>)</span><br />
+ The client would like to cancel a previous port-forwarding request.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.server-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">int or InteractiveQuery</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.ServerInterface-class.html#check_auth_interactive" class="summary-sig-name">check_auth_interactive</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">username</span>,
+ <span class="summary-sig-arg">submethods</span>)</span><br />
+ Begin an interactive authentication challenge, if supported.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.server-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">int or InteractiveQuery</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.ServerInterface-class.html#check_auth_interactive_response" class="summary-sig-name">check_auth_interactive_response</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">responses</span>)</span><br />
+ Continue or finish an interactive authentication challenge, if
+ supported.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.server-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">int</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.ServerInterface-class.html#check_auth_none" class="summary-sig-name">check_auth_none</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">username</span>)</span><br />
+ Determine if a client may open channels with no (further)
+ authentication.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.server-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">int</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.ServerInterface-class.html#check_auth_password" class="summary-sig-name">check_auth_password</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">username</span>,
+ <span class="summary-sig-arg">password</span>)</span><br />
+ Determine if a given username and password supplied by the client is
+ acceptable for use in authentication.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.server-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">int</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.ServerInterface-class.html#check_auth_publickey" class="summary-sig-name">check_auth_publickey</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">username</span>,
+ <span class="summary-sig-arg">key</span>)</span><br />
+ Determine if a given key supplied by the client is acceptable for use
+ in authentication.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.server-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">int</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.ServerInterface-class.html#check_channel_direct_tcpip_request" class="summary-sig-name">check_channel_direct_tcpip_request</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">chanid</span>,
+ <span class="summary-sig-arg">origin</span>,
+ <span class="summary-sig-arg">destination</span>)</span><br />
+ Determine if a local port forwarding channel will be granted, and
+ return <code>OPEN_SUCCEEDED</code> or an error code.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.server-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">bool</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.ServerInterface-class.html#check_channel_exec_request" class="summary-sig-name">check_channel_exec_request</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">channel</span>,
+ <span class="summary-sig-arg">command</span>)</span><br />
+ Determine if a shell command will be executed for the client.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.server-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">bool</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.ServerInterface-class.html#check_channel_pty_request" class="summary-sig-name">check_channel_pty_request</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">channel</span>,
+ <span class="summary-sig-arg">term</span>,
+ <span class="summary-sig-arg">width</span>,
+ <span class="summary-sig-arg">height</span>,
+ <span class="summary-sig-arg">pixelwidth</span>,
+ <span class="summary-sig-arg">pixelheight</span>,
+ <span class="summary-sig-arg">modes</span>)</span><br />
+ Determine if a pseudo-terminal of the given dimensions (usually
+ requested for shell access) can be provided on the given channel.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.server-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">int</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.ServerInterface-class.html#check_channel_request" class="summary-sig-name">check_channel_request</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">kind</span>,
+ <span class="summary-sig-arg">chanid</span>)</span><br />
+ Determine if a channel request of a given type will be granted, and
+ return <code>OPEN_SUCCEEDED</code> or an error code.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.server-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">bool</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.ServerInterface-class.html#check_channel_shell_request" class="summary-sig-name">check_channel_shell_request</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">channel</span>)</span><br />
+ Determine if a shell will be provided to the client on the given
+ channel.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.server-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">bool</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.ServerInterface-class.html#check_channel_subsystem_request" class="summary-sig-name">check_channel_subsystem_request</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">channel</span>,
+ <span class="summary-sig-arg">name</span>)</span><br />
+ Determine if a requested subsystem will be provided to the client on
+ the given channel.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.server-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">bool</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.ServerInterface-class.html#check_channel_window_change_request" class="summary-sig-name">check_channel_window_change_request</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">channel</span>,
+ <span class="summary-sig-arg">width</span>,
+ <span class="summary-sig-arg">height</span>,
+ <span class="summary-sig-arg">pixelwidth</span>,
+ <span class="summary-sig-arg">pixelheight</span>)</span><br />
+ Determine if the pseudo-terminal on the given channel can be resized.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.server-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">bool</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.ServerInterface-class.html#check_channel_x11_request" class="summary-sig-name">check_channel_x11_request</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">channel</span>,
+ <span class="summary-sig-arg">single_connection</span>,
+ <span class="summary-sig-arg">auth_protocol</span>,
+ <span class="summary-sig-arg">auth_cookie</span>,
+ <span class="summary-sig-arg">screen_number</span>)</span><br />
+ Determine if the client will be provided with an X11 session.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.server-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">bool</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.ServerInterface-class.html#check_global_request" class="summary-sig-name">check_global_request</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">kind</span>,
+ <span class="summary-sig-arg">msg</span>)</span><br />
+ Handle a global request of the given <code>kind</code>.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.server-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">int</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.ServerInterface-class.html#check_port_forward_request" class="summary-sig-name">check_port_forward_request</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">address</span>,
+ <span class="summary-sig-arg">port</span>)</span><br />
+ Handle a request for port forwarding.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.server-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">str</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.ServerInterface-class.html#get_allowed_auths" class="summary-sig-name">get_allowed_auths</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">username</span>)</span><br />
+ Return a list of authentication methods supported by the server.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.server-pysrc.html">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>__getattribute__</code>,
+ <code>__hash__</code>,
+ <code>__init__</code>,
+ <code>__new__</code>,
+ <code>__reduce__</code>,
+ <code>__reduce_ex__</code>,
+ <code>__repr__</code>,
+ <code>__setattr__</code>,
+ <code>__str__</code>
+ </p>
+ </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="cancel_port_forward_request"></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">cancel_port_forward_request</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">address</span>,
+ <span class="sig-arg">port</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.server-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>The client would like to cancel a previous port-forwarding request. If
+ the given address and port is being forwarded across this ssh connection,
+ the port should be closed.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>address</code></strong> (str) - the forwarded address</li>
+ <li><strong class="pname"><code>port</code></strong> (int) - the forwarded port</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="check_auth_interactive"></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">check_auth_interactive</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">username</span>,
+ <span class="sig-arg">submethods</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.server-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Begin an interactive authentication challenge, if supported. You
+ should override this method in server mode if you want to support the
+ <code>&quot;keyboard-interactive&quot;</code> auth type, which requires
+ you to send a series of questions for the client to answer.</p>
+ <p>Return AUTH_FAILED if this auth method isn't supported. Otherwise,
+ you should return an InteractiveQuery object containing the prompts and
+ instructions for the user. The response will be sent via a call to <a
+ href="paramiko.ServerInterface-class.html#check_auth_interactive_response"
+ class="link">check_auth_interactive_response</a>.</p>
+ <p>The default implementation always returns AUTH_FAILED.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>username</code></strong> (str) - the username of the authenticating client</li>
+ <li><strong class="pname"><code>submethods</code></strong> (str) - a comma-separated list of methods preferred by the client
+ (usually empty)</li>
+ </ul></dd>
+ <dt>Returns: int or InteractiveQuery</dt>
+ <dd>AUTH_FAILED if this auth method isn't supported; otherwise an
+ object containing queries for the user</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="check_auth_interactive_response"></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">check_auth_interactive_response</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">responses</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.server-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Continue or finish an interactive authentication challenge, if
+ supported. You should override this method in server mode if you want to
+ support the <code>&quot;keyboard-interactive&quot;</code> auth type.</p>
+ <p>Return AUTH_FAILED if the responses are not accepted, AUTH_SUCCESSFUL
+ if the responses are accepted and complete the authentication, or
+ AUTH_PARTIALLY_SUCCESSFUL if your authentication is stateful, and this
+ set of responses is accepted for authentication, but more authentication
+ is required. (In this latter case, <a
+ href="paramiko.ServerInterface-class.html#get_allowed_auths"
+ class="link">get_allowed_auths</a> will be called to report to the client
+ what options it has for continuing the authentication.)</p>
+ <p>If you wish to continue interactive authentication with more
+ questions, you may return an InteractiveQuery object, which should cause
+ the client to respond with more answers, calling this method again. This
+ cycle can continue indefinitely.</p>
+ <p>The default implementation always returns AUTH_FAILED.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>responses</code></strong> (list(str)) - list of responses from the client</li>
+ </ul></dd>
+ <dt>Returns: int or InteractiveQuery</dt>
+ <dd>AUTH_FAILED if the authentication fails; AUTH_SUCCESSFUL if it
+ succeeds; AUTH_PARTIALLY_SUCCESSFUL if the interactive auth is
+ successful, but authentication must continue; otherwise an object
+ containing queries for the user</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="check_auth_none"></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">check_auth_none</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">username</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.server-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Determine if a client may open channels with no (further)
+ authentication.</p>
+ <p>Return AUTH_FAILED if the client must authenticate, or AUTH_SUCCESSFUL
+ if it's okay for the client to not authenticate.</p>
+ <p>The default implementation always returns AUTH_FAILED.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>username</code></strong> (str) - the username of the client.</li>
+ </ul></dd>
+ <dt>Returns: int</dt>
+ <dd>AUTH_FAILED if the authentication fails; AUTH_SUCCESSFUL if it
+ succeeds.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="check_auth_password"></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">check_auth_password</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">username</span>,
+ <span class="sig-arg">password</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.server-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Determine if a given username and password supplied by the client is
+ acceptable for use in authentication.</p>
+ <p>Return AUTH_FAILED if the password is not accepted, AUTH_SUCCESSFUL if
+ the password is accepted and completes the authentication, or
+ AUTH_PARTIALLY_SUCCESSFUL if your authentication is stateful, and this
+ key is accepted for authentication, but more authentication is required.
+ (In this latter case, <a
+ href="paramiko.ServerInterface-class.html#get_allowed_auths"
+ class="link">get_allowed_auths</a> will be called to report to the client
+ what options it has for continuing the authentication.)</p>
+ <p>The default implementation always returns AUTH_FAILED.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>username</code></strong> (str) - the username of the authenticating client.</li>
+ <li><strong class="pname"><code>password</code></strong> (str) - the password given by the client.</li>
+ </ul></dd>
+ <dt>Returns: int</dt>
+ <dd>AUTH_FAILED if the authentication fails; AUTH_SUCCESSFUL if it
+ succeeds; AUTH_PARTIALLY_SUCCESSFUL if the password auth is
+ successful, but authentication must continue.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="check_auth_publickey"></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">check_auth_publickey</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">username</span>,
+ <span class="sig-arg">key</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.server-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Determine if a given key supplied by the client is acceptable for use
+ in authentication. You should override this method in server mode to
+ check the username and key and decide if you would accept a signature
+ made using this key.</p>
+ <p>Return AUTH_FAILED if the key is not accepted, AUTH_SUCCESSFUL if the
+ key is accepted and completes the authentication, or
+ AUTH_PARTIALLY_SUCCESSFUL if your authentication is stateful, and this
+ password is accepted for authentication, but more authentication is
+ required. (In this latter case, <a
+ href="paramiko.ServerInterface-class.html#get_allowed_auths"
+ class="link">get_allowed_auths</a> will be called to report to the client
+ what options it has for continuing the authentication.)</p>
+ <p>Note that you don't have to actually verify any key signtature here.
+ If you're willing to accept the key, paramiko will do the work of
+ verifying the client's signature.</p>
+ <p>The default implementation always returns AUTH_FAILED.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>username</code></strong> (str) - the username of the authenticating client</li>
+ <li><strong class="pname"><code>key</code></strong> (<a href="paramiko.PKey-class.html" class="link">PKey</a>) - the key object provided by the client</li>
+ </ul></dd>
+ <dt>Returns: int</dt>
+ <dd>AUTH_FAILED if the client can't authenticate with this key;
+ AUTH_SUCCESSFUL if it can; AUTH_PARTIALLY_SUCCESSFUL if it can
+ authenticate with this key but must continue with authentication</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="check_channel_direct_tcpip_request"></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">check_channel_direct_tcpip_request</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">chanid</span>,
+ <span class="sig-arg">origin</span>,
+ <span class="sig-arg">destination</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.server-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Determine if a local port forwarding channel will be granted, and
+ return <code>OPEN_SUCCEEDED</code> or an error code. This method is
+ called in server mode when the client requests a channel, after
+ authentication is complete.</p>
+ <p>The <code>chanid</code> parameter is a small number that uniquely
+ identifies the channel within a <a href="paramiko.Transport-class.html"
+ class="link">Transport</a>. A <a href="paramiko.Channel-class.html"
+ class="link">Channel</a> object is not created unless this method returns
+ <code>OPEN_SUCCEEDED</code> -- once a <a
+ href="paramiko.Channel-class.html" class="link">Channel</a> object is
+ created, you can call <a href="paramiko.Channel-class.html#get_id"
+ class="link">Channel.get_id</a> to retrieve the channel ID.</p>
+ <p>The origin and destination parameters are (ip_address, port) tuples
+ that correspond to both ends of the TCP connection in the forwarding
+ tunnel.</p>
+ <p>The return value should either be <code>OPEN_SUCCEEDED</code> (or
+ <code>0</code>) to allow the channel request, or one of the following
+ error codes to reject it:</p>
+ <ul>
+ <li>
+ <code>OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED</code>
+ </li>
+ <li>
+ <code>OPEN_FAILED_CONNECT_FAILED</code>
+ </li>
+ <li>
+ <code>OPEN_FAILED_UNKNOWN_CHANNEL_TYPE</code>
+ </li>
+ <li>
+ <code>OPEN_FAILED_RESOURCE_SHORTAGE</code>
+ </li>
+ </ul>
+ <p>The default implementation always returns
+ <code>OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED</code>.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>chanid</code></strong> (int) - ID of the channel</li>
+ <li><strong class="pname"><code>origin</code></strong> (tuple) - 2-tuple containing the IP address and port of the originator
+ (client side)</li>
+ <li><strong class="pname"><code>destination</code></strong> (tuple) - 2-tuple containing the IP address and port of the destination
+ (server side)</li>
+ </ul></dd>
+ <dt>Returns: int</dt>
+ <dd>a success or failure code (listed above)</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="check_channel_exec_request"></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">check_channel_exec_request</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">channel</span>,
+ <span class="sig-arg">command</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.server-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Determine if a shell command will be executed for the client. If this
+ method returns <code>True</code>, the channel should be connected to the
+ stdin, stdout, and stderr of the shell command.</p>
+ <p>The default implementation always returns <code>False</code>.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>channel</code></strong> (<a href="paramiko.Channel-class.html" class="link">Channel</a>) - the <a href="paramiko.Channel-class.html"
+ class="link">Channel</a> the request arrived on.</li>
+ <li><strong class="pname"><code>command</code></strong> (str) - the command to execute.</li>
+ </ul></dd>
+ <dt>Returns: bool</dt>
+ <dd><code>True</code> if this channel is now hooked up to the stdin,
+ stdout, and stderr of the executing command; <code>False</code>
+ if the command will not be executed.</dd>
+ </dl>
+<div class="fields"> <p><strong>Since:</strong>
+ 1.1
+ </p>
+</div></td></tr></table>
+</div>
+<a name="check_channel_pty_request"></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">check_channel_pty_request</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">channel</span>,
+ <span class="sig-arg">term</span>,
+ <span class="sig-arg">width</span>,
+ <span class="sig-arg">height</span>,
+ <span class="sig-arg">pixelwidth</span>,
+ <span class="sig-arg">pixelheight</span>,
+ <span class="sig-arg">modes</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.server-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Determine if a pseudo-terminal of the given dimensions (usually
+ requested for shell access) can be provided on the given channel.</p>
+ <p>The default implementation always returns <code>False</code>.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>channel</code></strong> (<a href="paramiko.Channel-class.html" class="link">Channel</a>) - the <a href="paramiko.Channel-class.html"
+ class="link">Channel</a> the pty request arrived on.</li>
+ <li><strong class="pname"><code>term</code></strong> (str) - type of terminal requested (for example,
+ <code>&quot;vt100&quot;</code>).</li>
+ <li><strong class="pname"><code>width</code></strong> (int) - width of screen in characters.</li>
+ <li><strong class="pname"><code>height</code></strong> (int) - height of screen in characters.</li>
+ <li><strong class="pname"><code>pixelwidth</code></strong> (int) - width of screen in pixels, if known (may be <code>0</code> if
+ unknown).</li>
+ <li><strong class="pname"><code>pixelheight</code></strong> (int) - height of screen in pixels, if known (may be <code>0</code> if
+ unknown).</li>
+ </ul></dd>
+ <dt>Returns: bool</dt>
+ <dd><code>True</code> if the psuedo-terminal has been allocated;
+ <code>False</code> otherwise.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="check_channel_request"></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">check_channel_request</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">kind</span>,
+ <span class="sig-arg">chanid</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.server-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Determine if a channel request of a given type will be granted, and
+ return <code>OPEN_SUCCEEDED</code> or an error code. This method is
+ called in server mode when the client requests a channel, after
+ authentication is complete.</p>
+ <p>If you allow channel requests (and an ssh server that didn't would be
+ useless), you should also override some of the channel request methods
+ below, which are used to determine which services will be allowed on a
+ given channel:</p>
+ <ul>
+ <li>
+ <a
+ href="paramiko.ServerInterface-class.html#check_channel_pty_request"
+ class="link">check_channel_pty_request</a>
+ </li>
+ <li>
+ <a
+ href="paramiko.ServerInterface-class.html#check_channel_shell_request"
+ class="link">check_channel_shell_request</a>
+ </li>
+ <li>
+ <a
+ href="paramiko.ServerInterface-class.html#check_channel_subsystem_request"
+ class="link">check_channel_subsystem_request</a>
+ </li>
+ <li>
+ <a
+ href="paramiko.ServerInterface-class.html#check_channel_window_change_request"
+ class="link">check_channel_window_change_request</a>
+ </li>
+ <li>
+ <a
+ href="paramiko.ServerInterface-class.html#check_channel_x11_request"
+ class="link">check_channel_x11_request</a>
+ </li>
+ </ul>
+ <p>The <code>chanid</code> parameter is a small number that uniquely
+ identifies the channel within a <a href="paramiko.Transport-class.html"
+ class="link">Transport</a>. A <a href="paramiko.Channel-class.html"
+ class="link">Channel</a> object is not created unless this method returns
+ <code>OPEN_SUCCEEDED</code> -- once a <a
+ href="paramiko.Channel-class.html" class="link">Channel</a> object is
+ created, you can call <a href="paramiko.Channel-class.html#get_id"
+ class="link">Channel.get_id</a> to retrieve the channel ID.</p>
+ <p>The return value should either be <code>OPEN_SUCCEEDED</code> (or
+ <code>0</code>) to allow the channel request, or one of the following
+ error codes to reject it:</p>
+ <ul>
+ <li>
+ <code>OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED</code>
+ </li>
+ <li>
+ <code>OPEN_FAILED_CONNECT_FAILED</code>
+ </li>
+ <li>
+ <code>OPEN_FAILED_UNKNOWN_CHANNEL_TYPE</code>
+ </li>
+ <li>
+ <code>OPEN_FAILED_RESOURCE_SHORTAGE</code>
+ </li>
+ </ul>
+ <p>The default implementation always returns
+ <code>OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED</code>.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>kind</code></strong> (str) - the kind of channel the client would like to open (usually
+ <code>&quot;session&quot;</code>).</li>
+ <li><strong class="pname"><code>chanid</code></strong> (int) - ID of the channel</li>
+ </ul></dd>
+ <dt>Returns: int</dt>
+ <dd>a success or failure code (listed above)</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="check_channel_shell_request"></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">check_channel_shell_request</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">channel</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.server-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Determine if a shell will be provided to the client on the given
+ channel. If this method returns <code>True</code>, the channel should be
+ connected to the stdin/stdout of a shell (or something that acts like a
+ shell).</p>
+ <p>The default implementation always returns <code>False</code>.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>channel</code></strong> (<a href="paramiko.Channel-class.html" class="link">Channel</a>) - the <a href="paramiko.Channel-class.html"
+ class="link">Channel</a> the request arrived on.</li>
+ </ul></dd>
+ <dt>Returns: bool</dt>
+ <dd><code>True</code> if this channel is now hooked up to a shell;
+ <code>False</code> if a shell can't or won't be provided.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="check_channel_subsystem_request"></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">check_channel_subsystem_request</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">channel</span>,
+ <span class="sig-arg">name</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.server-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Determine if a requested subsystem will be provided to the client on
+ the given channel. If this method returns <code>True</code>, all future
+ I/O through this channel will be assumed to be connected to the requested
+ subsystem. An example of a subsystem is <code>sftp</code>.</p>
+ <p>The default implementation checks for a subsystem handler assigned via
+ <a href="paramiko.Transport-class.html#set_subsystem_handler"
+ class="link">Transport.set_subsystem_handler</a>. If one has been set,
+ the handler is invoked and this method returns <code>True</code>.
+ Otherwise it returns <code>False</code>.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>channel</code></strong> (<a href="paramiko.Channel-class.html" class="link">Channel</a>) - the <a href="paramiko.Channel-class.html"
+ class="link">Channel</a> the pty request arrived on.</li>
+ <li><strong class="pname"><code>name</code></strong> (str) - name of the requested subsystem.</li>
+ </ul></dd>
+ <dt>Returns: bool</dt>
+ <dd><code>True</code> if this channel is now hooked up to the
+ requested subsystem; <code>False</code> if that subsystem can't
+ or won't be provided.</dd>
+ </dl>
+<div class="fields"> <p><strong>Note:</strong>
+ Because the default implementation uses the <a
+ href="paramiko.Transport-class.html" class="link">Transport</a> to
+ identify valid subsystems, you probably won't need to override this
+ method.
+ </p>
+</div></td></tr></table>
+</div>
+<a name="check_channel_window_change_request"></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">check_channel_window_change_request</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">channel</span>,
+ <span class="sig-arg">width</span>,
+ <span class="sig-arg">height</span>,
+ <span class="sig-arg">pixelwidth</span>,
+ <span class="sig-arg">pixelheight</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.server-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Determine if the pseudo-terminal on the given channel can be resized.
+ This only makes sense if a pty was previously allocated on it.</p>
+ <p>The default implementation always returns <code>False</code>.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>channel</code></strong> (<a href="paramiko.Channel-class.html" class="link">Channel</a>) - the <a href="paramiko.Channel-class.html"
+ class="link">Channel</a> the pty request arrived on.</li>
+ <li><strong class="pname"><code>width</code></strong> (int) - width of screen in characters.</li>
+ <li><strong class="pname"><code>height</code></strong> (int) - height of screen in characters.</li>
+ <li><strong class="pname"><code>pixelwidth</code></strong> (int) - width of screen in pixels, if known (may be <code>0</code> if
+ unknown).</li>
+ <li><strong class="pname"><code>pixelheight</code></strong> (int) - height of screen in pixels, if known (may be <code>0</code> if
+ unknown).</li>
+ </ul></dd>
+ <dt>Returns: bool</dt>
+ <dd><code>True</code> if the terminal was resized; <code>False</code>
+ if not.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="check_channel_x11_request"></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">check_channel_x11_request</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">channel</span>,
+ <span class="sig-arg">single_connection</span>,
+ <span class="sig-arg">auth_protocol</span>,
+ <span class="sig-arg">auth_cookie</span>,
+ <span class="sig-arg">screen_number</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.server-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Determine if the client will be provided with an X11 session. If this
+ method returns <code>True</code>, X11 applications should be routed
+ through new SSH channels, using <a
+ href="paramiko.Transport-class.html#open_x11_channel"
+ class="link">Transport.open_x11_channel</a>.</p>
+ <p>The default implementation always returns <code>False</code>.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>channel</code></strong> (<a href="paramiko.Channel-class.html" class="link">Channel</a>) - the <a href="paramiko.Channel-class.html"
+ class="link">Channel</a> the X11 request arrived on</li>
+ <li><strong class="pname"><code>single_connection</code></strong> (bool) - <code>True</code> if only a single X11 channel should be opened</li>
+ <li><strong class="pname"><code>auth_protocol</code></strong> (str) - the protocol used for X11 authentication</li>
+ <li><strong class="pname"><code>auth_cookie</code></strong> (str) - the cookie used to authenticate to X11</li>
+ <li><strong class="pname"><code>screen_number</code></strong> (int) - the number of the X11 screen to connect to</li>
+ </ul></dd>
+ <dt>Returns: bool</dt>
+ <dd><code>True</code> if the X11 session was opened;
+ <code>False</code> if not</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="check_global_request"></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">check_global_request</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">kind</span>,
+ <span class="sig-arg">msg</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.server-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Handle a global request of the given <code>kind</code>. This method
+ is called in server mode and client mode, whenever the remote host makes
+ a global request. If there are any arguments to the request, they will
+ be in <code>msg</code>.</p>
+ <p>There aren't any useful global requests defined, aside from port
+ forwarding, so usually this type of request is an extension to the
+ protocol.</p>
+ <p>If the request was successful and you would like to return contextual
+ data to the remote host, return a tuple. Items in the tuple will be sent
+ back with the successful result. (Note that the items in the tuple can
+ only be strings, ints, longs, or bools.)</p>
+ <p>The default implementation always returns <code>False</code>,
+ indicating that it does not support any global requests.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>kind</code></strong> (str) - the kind of global request being made.</li>
+ <li><strong class="pname"><code>msg</code></strong> (<a href="paramiko.Message-class.html" class="link">Message</a>) - any extra arguments to the request.</li>
+ </ul></dd>
+ <dt>Returns: bool</dt>
+ <dd><code>True</code> or a tuple of data if the request was granted;
+ <code>False</code> otherwise.</dd>
+ </dl>
+<div class="fields"> <p><strong>Note:</strong>
+ Port forwarding requests are handled separately, in <a
+ href="paramiko.ServerInterface-class.html#check_port_forward_request"
+ class="link">check_port_forward_request</a>.
+ </p>
+</div></td></tr></table>
+</div>
+<a name="check_port_forward_request"></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">check_port_forward_request</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">address</span>,
+ <span class="sig-arg">port</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.server-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Handle a request for port forwarding. The client is asking that
+ connections to the given address and port be forwarded back across this
+ ssh connection. An address of <code>&quot;0.0.0.0&quot;</code> indicates
+ a global address (any address associated with this server) and a port of
+ <code>0</code> indicates that no specific port is requested (usually the
+ OS will pick a port).</p>
+ <p>The default implementation always returns <code>False</code>,
+ rejecting the port forwarding request. If the request is accepted, you
+ should return the port opened for listening.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>address</code></strong> (str) - the requested address</li>
+ <li><strong class="pname"><code>port</code></strong> (int) - the requested port</li>
+ </ul></dd>
+ <dt>Returns: int</dt>
+ <dd>the port number that was opened for listening, or
+ <code>False</code> to reject</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="get_allowed_auths"></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">get_allowed_auths</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">username</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.server-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return a list of authentication methods supported by the server. This
+ list is sent to clients attempting to authenticate, to inform them of
+ authentication methods that might be successful.</p>
+ <p>The &quot;list&quot; is actually a string of comma-separated names of
+ types of authentication. Possible values are
+ <code>&quot;password&quot;</code>, <code>&quot;publickey&quot;</code>,
+ and <code>&quot;none&quot;</code>.</p>
+ <p>The default implementation always returns
+ <code>&quot;password&quot;</code>.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>username</code></strong> (str) - the username requesting authentication.</li>
+ </ul></dd>
+ <dt>Returns: str</dt>
+ <dd>a comma-separated list of authentication types</dd>
+ </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 Jul 6 18:30:30 2008
+ </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.SubsystemHandler-class.html b/docs/paramiko.SubsystemHandler-class.html
new file mode 100644
index 0000000..407b7f4
--- /dev/null
+++ b/docs/paramiko.SubsystemHandler-class.html
@@ -0,0 +1,384 @@
+<?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.SubsystemHandler</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> ::
+ Class&nbsp;SubsystemHandler
+ </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.SubsystemHandler-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class SubsystemHandler</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko-pysrc.html#SubsystemHandler">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+ object --+
+ |
+threading._Verbose --+
+ |
+ threading.Thread --+
+ |
+ <strong class="uidshort">SubsystemHandler</strong>
+</pre>
+
+<dl><dt>Known Subclasses:</dt>
+<dd>
+ <ul class="subclass-list">
+<li><a href="paramiko.SFTPServer-class.html">SFTPServer</a></li> </ul>
+</dd></dl>
+
+<hr />
+<p>Handler for a subsytem in server mode. If you create a subclass of
+ this class and pass it to <a
+ href="paramiko.Transport-class.html#set_subsystem_handler"
+ class="link">Transport.set_subsystem_handler</a>, an object of this class
+ will be created for each request for this subsystem. Each new object
+ will be executed within its own new thread by calling <a
+ href="paramiko.SubsystemHandler-class.html#start_subsystem"
+ class="link">start_subsystem</a>. When that method completes, the channel
+ is closed.</p>
+ <p>For example, if you made a subclass <code>MP3Handler</code> and
+ registered it as the handler for subsystem <code>&quot;mp3&quot;</code>,
+ then whenever a client has successfully authenticated and requests
+ subsytem <code>&quot;mp3&quot;</code>, an object of class
+ <code>MP3Handler</code> will be created, and <a
+ href="paramiko.SubsystemHandler-class.html#start_subsystem"
+ class="link">start_subsystem</a> will be called on it from a new
+ thread.</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.SubsystemHandler-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">channel</span>,
+ <span class="summary-sig-arg">name</span>,
+ <span class="summary-sig-arg">server</span>)</span><br />
+ Create a new handler for a channel.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.server-pysrc.html">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 href="paramiko.SubsystemHandler-class.html#finish_subsystem" class="summary-sig-name">finish_subsystem</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Perform any cleanup at the end of a subsystem.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.server-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"><a href="paramiko.ServerInterface-class.html"
+ class="link">ServerInterface</a></span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a name="get_server"></a><span class="summary-sig-name">get_server</span>(<span class="summary-sig-arg">self</span>)</span><br />
+ Return the <a href="paramiko.ServerInterface-class.html"
+ class="link">ServerInterface</a> object associated with this channel
+ and subsystem.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.server-pysrc.html">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 href="paramiko.SubsystemHandler-class.html#start_subsystem" class="summary-sig-name">start_subsystem</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">name</span>,
+ <span class="summary-sig-arg">transport</span>,
+ <span class="summary-sig-arg">channel</span>)</span><br />
+ Process an ssh subsystem in server mode.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.server-pysrc.html">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>threading.Thread</code></b>:
+ <code>__repr__</code>,
+ <code>getName</code>,
+ <code>isAlive</code>,
+ <code>isDaemon</code>,
+ <code>join</code>,
+ <code>run</code>,
+ <code>setDaemon</code>,
+ <code>setName</code>,
+ <code>start</code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__delattr__</code>,
+ <code>__getattribute__</code>,
+ <code>__hash__</code>,
+ <code>__new__</code>,
+ <code>__reduce__</code>,
+ <code>__reduce_ex__</code>,
+ <code>__setattr__</code>,
+ <code>__str__</code>
+ </p>
+ </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">channel</span>,
+ <span class="sig-arg">name</span>,
+ <span class="sig-arg">server</span>)</span>
+ <br /><em class="fname">(Constructor)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.server-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Create a new handler for a channel. This is used by <a
+ href="paramiko.ServerInterface-class.html"
+ class="link">ServerInterface</a> to start up a new handler when a channel
+ requests this subsystem. You don't need to override this method, but if
+ you do, be sure to pass the <code>channel</code> and <code>name</code>
+ parameters through to the original <code>__init__</code> method here.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>channel</code></strong> (<a href="paramiko.Channel-class.html" class="link">Channel</a>) - the channel associated with this subsystem request.</li>
+ <li><strong class="pname"><code>name</code></strong> (str) - name of the requested subsystem.</li>
+ <li><strong class="pname"><code>server</code></strong> (<a href="paramiko.ServerInterface-class.html"
+ class="link">ServerInterface</a>) - the server object for the session that started this subsystem</li>
+ </ul></dd>
+ <dt>Overrides:
+ object.__init__
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="finish_subsystem"></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">finish_subsystem</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.server-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Perform any cleanup at the end of a subsystem. The default
+ implementation just closes the channel.</p>
+ <dl class="fields">
+ </dl>
+<div class="fields"> <p><strong>Since:</strong>
+ 1.1
+ </p>
+</div></td></tr></table>
+</div>
+<a name="start_subsystem"></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">start_subsystem</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">name</span>,
+ <span class="sig-arg">transport</span>,
+ <span class="sig-arg">channel</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.server-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Process an ssh subsystem in server mode. This method is called on a
+ new object (and in a new thread) for each subsystem request. It is
+ assumed that all subsystem logic will take place here, and when the
+ subsystem is finished, this method will return. After this method
+ returns, the channel is closed.</p>
+ <p>The combination of <code>transport</code> and <code>channel</code> are
+ unique; this handler corresponds to exactly one <a
+ href="paramiko.Channel-class.html" class="link">Channel</a> on one <a
+ href="paramiko.Transport-class.html" class="link">Transport</a>.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>name</code></strong> (str) - name of the requested subsystem.</li>
+ <li><strong class="pname"><code>transport</code></strong> (<a href="paramiko.Transport-class.html"
+ class="link">Transport</a>) - the server-mode <a href="paramiko.Transport-class.html"
+ class="link">Transport</a>.</li>
+ <li><strong class="pname"><code>channel</code></strong> (<a href="paramiko.Channel-class.html" class="link">Channel</a>) - the channel associated with this subsystem request.</li>
+ </ul></dd>
+ </dl>
+<div class="fields"> <p><strong>Note:</strong>
+ It is the responsibility of this method to exit if the underlying
+ <a href="paramiko.Transport-class.html" class="link">Transport</a>
+ is closed. This can be done by checking <a
+ href="paramiko.Transport-class.html#is_active"
+ class="link">Transport.is_active</a> or noticing an EOF on the <a
+ href="paramiko.Channel-class.html" class="link">Channel</a>. If
+ this method loops forever without checking for this case, your
+ python interpreter may refuse to exit because this thread will
+ still be running.
+ </p>
+</div></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 Jul 6 18:30:30 2008
+ </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.Transport-class.html b/docs/paramiko.Transport-class.html
new file mode 100644
index 0000000..98758da
--- /dev/null
+++ b/docs/paramiko.Transport-class.html
@@ -0,0 +1,2343 @@
+<?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.Transport</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> ::
+ Class&nbsp;Transport
+ </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.Transport-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class Transport</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko-pysrc.html#Transport">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+ object --+
+ |
+threading._Verbose --+
+ |
+ threading.Thread --+
+ |
+ <strong class="uidshort">Transport</strong>
+</pre>
+
+<hr />
+<p>An SSH Transport attaches to a stream (usually a socket), negotiates
+ an encrypted session, authenticates, and then creates stream tunnels,
+ called <a href="paramiko.Channel-class.html" class="link">Channel</a>s,
+ across the session. Multiple channels can be multiplexed across a single
+ session (and often are, in the case of port forwardings).</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.Transport-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">sock</span>)</span><br />
+ Create a new SSH session over an existing socket, or socket-like
+ object.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">str</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.Transport-class.html#__repr__" class="summary-sig-name">__repr__</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Returns a string representation of this object, for debugging.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"><a href="paramiko.Channel-class.html" class="link">Channel</a></span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.Transport-class.html#accept" class="summary-sig-name">accept</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">timeout</span>=<span class="summary-sig-default">None</span>)</span><br />
+ Return the next channel opened by the client over this transport, in
+ server mode.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.transport-pysrc.html">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 href="paramiko.Transport-class.html#add_server_key" class="summary-sig-name">add_server_key</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">key</span>)</span><br />
+ Add a host key to the list of keys used for server mode.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.transport-pysrc.html">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 href="paramiko.Transport-class.html#atfork" class="summary-sig-name">atfork</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Terminate this Transport without closing the session.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">list</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.Transport-class.html#auth_interactive" class="summary-sig-name">auth_interactive</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">username</span>,
+ <span class="summary-sig-arg">handler</span>,
+ <span class="summary-sig-arg">submethods</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string"></code><code class="variable-quote">'</code></span>)</span><br />
+ Authenticate to the server interactively.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">list</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.Transport-class.html#auth_none" class="summary-sig-name">auth_none</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">username</span>)</span><br />
+ Try to authenticate to the server using no authentication at all.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">list</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.Transport-class.html#auth_password" class="summary-sig-name">auth_password</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">username</span>,
+ <span class="summary-sig-arg">password</span>,
+ <span class="summary-sig-arg">event</span>=<span class="summary-sig-default">None</span>,
+ <span class="summary-sig-arg">fallback</span>=<span class="summary-sig-default">True</span>)</span><br />
+ Authenticate to the server using a password.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">list</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.Transport-class.html#auth_publickey" class="summary-sig-name">auth_publickey</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">username</span>,
+ <span class="summary-sig-arg">key</span>,
+ <span class="summary-sig-arg">event</span>=<span class="summary-sig-default">None</span>)</span><br />
+ Authenticate to the server using a private key.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.transport-pysrc.html">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 href="paramiko.Transport-class.html#cancel_port_forward" class="summary-sig-name">cancel_port_forward</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">address</span>,
+ <span class="summary-sig-arg">port</span>)</span><br />
+ Ask the server to cancel a previous port-forwarding request.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.transport-pysrc.html">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="close"></a><span class="summary-sig-name">close</span>(<span class="summary-sig-arg">self</span>)</span><br />
+ Close this session, and any open channels that are tied to it.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.transport-pysrc.html">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 href="paramiko.Transport-class.html#connect" class="summary-sig-name">connect</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">hostkey</span>=<span class="summary-sig-default">None</span>,
+ <span class="summary-sig-arg">username</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string"></code><code class="variable-quote">'</code></span>,
+ <span class="summary-sig-arg">password</span>=<span class="summary-sig-default">None</span>,
+ <span class="summary-sig-arg">pkey</span>=<span class="summary-sig-default">None</span>)</span><br />
+ Negotiate an SSH2 session, and optionally verify the server's host
+ key and authenticate using a password or private key.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">Exception</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.Transport-class.html#get_exception" class="summary-sig-name">get_exception</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Return any exception that happened during the last server request.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">bool</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.Transport-class.html#get_hexdump" class="summary-sig-name">get_hexdump</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Return <code>True</code> if the transport is currently logging hex
+ dumps of protocol traffic.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">str</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.Transport-class.html#get_log_channel" class="summary-sig-name">get_log_channel</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Return the channel name used for this transport's logging.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"><a href="paramiko.PKey-class.html" class="link">PKey</a></span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.Transport-class.html#get_remote_server_key" class="summary-sig-name">get_remote_server_key</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Return the host key of the server (in client mode).</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"><a href="paramiko.SecurityOptions-class.html"
+ class="link">SecurityOptions</a></span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.Transport-class.html#get_security_options" class="summary-sig-name">get_security_options</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Return a <a href="paramiko.SecurityOptions-class.html"
+ class="link">SecurityOptions</a> object which can be used to tweak
+ the encryption algorithms this transport will permit, and the order
+ of preference for them.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"><a href="paramiko.PKey-class.html" class="link">PKey</a></span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.Transport-class.html#get_server_key" class="summary-sig-name">get_server_key</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Return the active host key, in server mode.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">string</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.Transport-class.html#get_username" class="summary-sig-name">get_username</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Return the username this connection is authenticated for.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">tuple(str, int)</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.Transport-class.html#getpeername" class="summary-sig-name">getpeername</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Return the address of the remote side of this Transport, if possible.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"><a href="paramiko.Message-class.html" class="link">Message</a></span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.Transport-class.html#global_request" class="summary-sig-name">global_request</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">kind</span>,
+ <span class="summary-sig-arg">data</span>=<span class="summary-sig-default">None</span>,
+ <span class="summary-sig-arg">wait</span>=<span class="summary-sig-default">True</span>)</span><br />
+ Make a global request to the remote host.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">bool</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.Transport-class.html#is_active" class="summary-sig-name">is_active</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Return true if this session is active (open).</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">bool</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.Transport-class.html#is_authenticated" class="summary-sig-name">is_authenticated</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Return true if this session is active and authenticated.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"><a href="paramiko.Channel-class.html" class="link">Channel</a></span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.Transport-class.html#open_channel" class="summary-sig-name">open_channel</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">kind</span>,
+ <span class="summary-sig-arg">dest_addr</span>=<span class="summary-sig-default">None</span>,
+ <span class="summary-sig-arg">src_addr</span>=<span class="summary-sig-default">None</span>)</span><br />
+ Request a new channel to the server.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.transport-pysrc.html">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 href="paramiko.Transport-class.html#open_forwarded_tcpip_channel" class="summary-sig-name">open_forwarded_tcpip_channel</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">(src_addr, src_port)</span>,
+ <span class="summary-sig-arg">(dest_addr, dest_port)</span>)</span><br />
+ Request a new channel back to the client, of type
+ <code>&quot;forwarded-tcpip&quot;</code>.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"><a href="paramiko.Channel-class.html" class="link">Channel</a></span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.Transport-class.html#open_session" class="summary-sig-name">open_session</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Request a new channel to the server, of type
+ <code>&quot;session&quot;</code>.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"><a href="paramiko.SFTPClient-class.html" class="link">SFTPClient</a></span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.Transport-class.html#open_sftp_client" class="summary-sig-name">open_sftp_client</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Create an SFTP client channel from an open transport.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"><a href="paramiko.Channel-class.html" class="link">Channel</a></span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.Transport-class.html#open_x11_channel" class="summary-sig-name">open_x11_channel</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">src_addr</span>=<span class="summary-sig-default">None</span>)</span><br />
+ Request a new channel to the client, of type
+ <code>&quot;x11&quot;</code>.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.transport-pysrc.html">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 href="paramiko.Transport-class.html#renegotiate_keys" class="summary-sig-name">renegotiate_keys</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Force this session to switch to new keys.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">int</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.Transport-class.html#request_port_forward" class="summary-sig-name">request_port_forward</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">address</span>,
+ <span class="summary-sig-arg">port</span>,
+ <span class="summary-sig-arg">handler</span>=<span class="summary-sig-default">None</span>)</span><br />
+ Ask the server to forward TCP connections from a listening port on
+ the server, across this SSH session.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.transport-pysrc.html">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 href="paramiko.Transport-class.html#run" class="summary-sig-name">run</a>(<span class="summary-sig-arg">self</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.transport-pysrc.html">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 href="paramiko.Transport-class.html#send_ignore" class="summary-sig-name">send_ignore</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">bytes</span>=<span class="summary-sig-default">None</span>)</span><br />
+ Send a junk packet across the encrypted link.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.transport-pysrc.html">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 href="paramiko.Transport-class.html#set_hexdump" class="summary-sig-name">set_hexdump</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">hexdump</span>)</span><br />
+ Turn on/off logging a hex dump of protocol traffic at DEBUG level in
+ the logs.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.transport-pysrc.html">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 href="paramiko.Transport-class.html#set_keepalive" class="summary-sig-name">set_keepalive</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">interval</span>)</span><br />
+ Turn on/off keepalive packets (default is off).</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.transport-pysrc.html">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 href="paramiko.Transport-class.html#set_log_channel" class="summary-sig-name">set_log_channel</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">name</span>)</span><br />
+ Set the channel for this transport's logging.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.transport-pysrc.html">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 href="paramiko.Transport-class.html#set_subsystem_handler" class="summary-sig-name">set_subsystem_handler</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">name</span>,
+ <span class="summary-sig-arg">handler</span>,
+ <span class="summary-sig-arg">*larg</span>,
+ <span class="summary-sig-arg">**kwarg</span>)</span><br />
+ Set the handler class for a subsystem in server mode.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.transport-pysrc.html">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 href="paramiko.Transport-class.html#start_client" class="summary-sig-name">start_client</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">event</span>=<span class="summary-sig-default">None</span>)</span><br />
+ Negotiate a new SSH2 session as a client.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.transport-pysrc.html">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 href="paramiko.Transport-class.html#start_server" class="summary-sig-name">start_server</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">event</span>=<span class="summary-sig-default">None</span>,
+ <span class="summary-sig-arg">server</span>=<span class="summary-sig-default">None</span>)</span><br />
+ Negotiate a new SSH2 session as a server.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.transport-pysrc.html">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="stop_thread"></a><span class="summary-sig-name">stop_thread</span>(<span class="summary-sig-arg">self</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.transport-pysrc.html">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 href="paramiko.Transport-class.html#use_compression" class="summary-sig-name">use_compression</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">compress</span>=<span class="summary-sig-default">True</span>)</span><br />
+ Turn on/off compression.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.transport-pysrc.html">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>threading.Thread</code></b>:
+ <code>getName</code>,
+ <code>isAlive</code>,
+ <code>isDaemon</code>,
+ <code>join</code>,
+ <code>setDaemon</code>,
+ <code>setName</code>,
+ <code>start</code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__delattr__</code>,
+ <code>__getattribute__</code>,
+ <code>__hash__</code>,
+ <code>__new__</code>,
+ <code>__reduce__</code>,
+ <code>__reduce_ex__</code>,
+ <code>__setattr__</code>,
+ <code>__str__</code>
+ </p>
+ </td>
+ </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></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">Static Methods</span></td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">bool</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.Transport-class.html#load_server_moduli" class="summary-sig-name">load_server_moduli</a>(<span class="summary-sig-arg">filename</span>=<span class="summary-sig-default">None</span>)</span><br />
+ <i>(optional)</i> Load a file of prime moduli for use in doing
+ group-exchange key negotiation in server mode.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko-pysrc.html#Transport.load_server_moduli">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">sock</span>)</span>
+ <br /><em class="fname">(Constructor)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Create a new SSH session over an existing socket, or socket-like
+ object. This only creates the Transport object; it doesn't begin the SSH
+ session yet. Use <a href="paramiko.Transport-class.html#connect"
+ class="link">connect</a> or <a
+ href="paramiko.Transport-class.html#start_client"
+ class="link">start_client</a> to begin a client session, or <a
+ href="paramiko.Transport-class.html#start_server"
+ class="link">start_server</a> to begin a server session.</p>
+ <p>If the object is not actually a socket, it must have the following
+ methods:</p>
+ <ul>
+ <li>
+ <code>send(str)</code>: Writes from 1 to <code>len(str)</code> bytes,
+ and returns an int representing the number of bytes written. Returns
+ 0 or raises <code>EOFError</code> if the stream has been closed.
+ </li>
+ <li>
+ <code>recv(int)</code>: Reads from 1 to <code>int</code> bytes and
+ returns them as a string. Returns 0 or raises <code>EOFError</code>
+ if the stream has been closed.
+ </li>
+ <li>
+ <code>close()</code>: Closes the socket.
+ </li>
+ <li>
+ <code>settimeout(n)</code>: Sets a (float) timeout on I/O operations.
+ </li>
+ </ul>
+ <p>For ease of use, you may also pass in an address (as a tuple) or a
+ host string as the <code>sock</code> argument. (A host string is a
+ hostname with an optional port (separated by <code>&quot;:&quot;</code>)
+ which will be converted into a tuple of <code>(hostname, port)</code>.)
+ A socket will be connected to this address and used for communication.
+ Exceptions from the <code>socket</code> call may be thrown in this
+ case.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>sock</code></strong> (socket) - a socket or socket-like object to create the session over.</li>
+ </ul></dd>
+ <dt>Overrides:
+ object.__init__
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="__repr__"></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">__repr__</span>(<span class="sig-arg">self</span>)</span>
+ <br /><em class="fname">(Representation operator)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Returns a string representation of this object, for debugging.</p>
+ <dl class="fields">
+ <dt>Returns: str</dt>
+ <dt>Overrides:
+ object.__repr__
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="accept"></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">accept</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">timeout</span>=<span class="sig-default">None</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return the next channel opened by the client over this transport, in
+ server mode. If no channel is opened before the given timeout,
+ <code>None</code> is returned.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>timeout</code></strong> (int) - seconds to wait for a channel, or <code>None</code> to wait
+ forever</li>
+ </ul></dd>
+ <dt>Returns: <a href="paramiko.Channel-class.html" class="link">Channel</a></dt>
+ <dd>a new Channel opened by the client</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="add_server_key"></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">add_server_key</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">key</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Add a host key to the list of keys used for server mode. When
+ behaving as a server, the host key is used to sign certain packets during
+ the SSH2 negotiation, so that the client can trust that we are who we say
+ 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.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>key</code></strong> (<a href="paramiko.PKey-class.html" class="link">PKey</a>) - the host key to add, usually an <a
+ href="paramiko.RSAKey-class.html" class="link">RSAKey</a> or <a
+ href="paramiko.DSSKey-class.html" class="link">DSSKey</a>.</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="atfork"></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">atfork</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Terminate this Transport without closing the session. On posix
+ systems, if a Transport is open during process forking, both parent 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.</p>
+ <dl class="fields">
+ </dl>
+<div class="fields"> <p><strong>Since:</strong>
+ 1.5.3
+ </p>
+</div></td></tr></table>
+</div>
+<a name="auth_interactive"></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">auth_interactive</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">username</span>,
+ <span class="sig-arg">handler</span>,
+ <span class="sig-arg">submethods</span>=<span class="sig-default"><code class="variable-quote">'</code><code class="variable-string"></code><code class="variable-quote">'</code></span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>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.</p>
+ <p>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.</p>
+ <p>The handler is expected to be a callable that will handle calls of the
+ form: <code>handler(title, instructions, prompt_list)</code>. The
+ <code>title</code> is meant to be a dialog-window title, and the
+ <code>instructions</code> are user instructions (both are strings).
+ <code>prompt_list</code> will be a list of prompts, each prompt being a
+ tuple of <code>(str, bool)</code>. The string is the prompt and the
+ boolean indicates whether the user text should be echoed.</p>
+ <p>A sample call would thus be: <code>handler('title', 'instructions',
+ [('Password:', False)])</code>.</p>
+ <p>The handler should return a list or tuple of answers to the server's
+ questions.</p>
+ <p>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.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>username</code></strong> (string) - the username to authenticate as</li>
+ <li><strong class="pname"><code>handler</code></strong> (callable) - a handler for responding to server questions</li>
+ <li><strong class="pname"><code>submethods</code></strong> (str) - a string list of desired submethods (optional)</li>
+ </ul></dd>
+ <dt>Returns: list</dt>
+ <dd>list of auth types permissible for the next stage of
+ authentication (normally empty).</dd>
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'><a href="paramiko.BadAuthenticationType-class.html">BadAuthenticationType</a></strong></code> - if public-key authentication isn't allowed by the server for this
+ user</li>
+ <li><code><strong class='fraise'><a href="paramiko.AuthenticationException-class.html">AuthenticationException</a></strong></code> - if the authentication failed</li>
+ <li><code><strong class='fraise'><a href="paramiko.SSHException-class.html">SSHException</a></strong></code> - if there was a network error</li>
+ </ul></dd>
+ </dl>
+<div class="fields"> <p><strong>Since:</strong>
+ 1.5
+ </p>
+</div></td></tr></table>
+</div>
+<a name="auth_none"></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">auth_none</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">username</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Try to authenticate to the server using no authentication at all. This
+ will almost always fail. It may be useful for determining the list of
+ authentication types supported by the server, by catching the <a
+ href="paramiko.BadAuthenticationType-class.html"
+ class="link">BadAuthenticationType</a> exception raised.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>username</code></strong> (string) - the username to authenticate as</li>
+ </ul></dd>
+ <dt>Returns: list</dt>
+ <dd>list of auth types permissible for the next stage of
+ authentication (normally empty)</dd>
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'><a href="paramiko.BadAuthenticationType-class.html">BadAuthenticationType</a></strong></code> - if &quot;none&quot; authentication isn't allowed by the server for
+ this user</li>
+ <li><code><strong class='fraise'><a href="paramiko.SSHException-class.html">SSHException</a></strong></code> - if the authentication failed due to a network error</li>
+ </ul></dd>
+ </dl>
+<div class="fields"> <p><strong>Since:</strong>
+ 1.5
+ </p>
+</div></td></tr></table>
+</div>
+<a name="auth_password"></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">auth_password</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">username</span>,
+ <span class="sig-arg">password</span>,
+ <span class="sig-arg">event</span>=<span class="sig-default">None</span>,
+ <span class="sig-arg">fallback</span>=<span class="sig-default">True</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Authenticate to the server using a password. The username and
+ password are sent over an encrypted link.</p>
+ <p>If an <code>event</code> is passed in, this method will return
+ immediately, and the event will be triggered once authentication succeeds
+ or fails. On success, <a
+ href="paramiko.Transport-class.html#is_authenticated"
+ class="link">is_authenticated</a> will return <code>True</code>. On
+ failure, you may use <a
+ href="paramiko.Transport-class.html#get_exception"
+ class="link">get_exception</a> to get more detailed error
+ information.</p>
+ <p>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.</p>
+ <p>Since 1.5, if no event is passed and <code>fallback</code> is
+ <code>True</code> (the default), if the server doesn't support plain
+ password authentication but does support so-called
+ &quot;keyboard-interactive&quot; mode, an attempt will be made to
+ authenticate using this interactive mode. If it fails, the normal
+ exception will be thrown as if the attempt had never been 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 &quot;more secure&quot;. (It's not.)</p>
+ <p>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.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>username</code></strong> (str) - the username to authenticate as</li>
+ <li><strong class="pname"><code>password</code></strong> (str or unicode) - the password to authenticate with</li>
+ <li><strong class="pname"><code>event</code></strong> (threading.Event) - an event to trigger when the authentication attempt is complete
+ (whether it was successful or not)</li>
+ <li><strong class="pname"><code>fallback</code></strong> (bool) - <code>True</code> if an attempt at an automated
+ &quot;interactive&quot; password auth should be made if the
+ server doesn't support normal password auth</li>
+ </ul></dd>
+ <dt>Returns: list</dt>
+ <dd>list of auth types permissible for the next stage of
+ authentication (normally empty)</dd>
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'><a href="paramiko.BadAuthenticationType-class.html">BadAuthenticationType</a></strong></code> - if password authentication isn't allowed by the server for this
+ user (and no event was passed in)</li>
+ <li><code><strong class='fraise'><a href="paramiko.AuthenticationException-class.html">AuthenticationException</a></strong></code> - if the authentication failed (and no event was passed in)</li>
+ <li><code><strong class='fraise'><a href="paramiko.SSHException-class.html">SSHException</a></strong></code> - if there was a network error</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="auth_publickey"></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">auth_publickey</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">username</span>,
+ <span class="sig-arg">key</span>,
+ <span class="sig-arg">event</span>=<span class="sig-default">None</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>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.</p>
+ <p>If an <code>event</code> is passed in, this method will return
+ immediately, and the event will be triggered once authentication succeeds
+ or fails. On success, <a
+ href="paramiko.Transport-class.html#is_authenticated"
+ class="link">is_authenticated</a> will return <code>True</code>. On
+ failure, you may use <a
+ href="paramiko.Transport-class.html#get_exception"
+ class="link">get_exception</a> to get more detailed error
+ information.</p>
+ <p>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.</p>
+ <p>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.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>username</code></strong> (string) - the username to authenticate as</li>
+ <li><strong class="pname"><code>key</code></strong> (<a href="paramiko.PKey-class.html" class="link">PKey</a>) - the private key to authenticate with</li>
+ <li><strong class="pname"><code>event</code></strong> (threading.Event) - an event to trigger when the authentication attempt is complete
+ (whether it was successful or not)</li>
+ </ul></dd>
+ <dt>Returns: list</dt>
+ <dd>list of auth types permissible for the next stage of
+ authentication (normally empty)</dd>
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'><a href="paramiko.BadAuthenticationType-class.html">BadAuthenticationType</a></strong></code> - if public-key authentication isn't allowed by the server for this
+ user (and no event was passed in)</li>
+ <li><code><strong class='fraise'><a href="paramiko.AuthenticationException-class.html">AuthenticationException</a></strong></code> - if the authentication failed (and no event was passed in)</li>
+ <li><code><strong class='fraise'><a href="paramiko.SSHException-class.html">SSHException</a></strong></code> - if there was a network error</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="cancel_port_forward"></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">cancel_port_forward</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">address</span>,
+ <span class="sig-arg">port</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Ask the server to cancel a previous port-forwarding request. No more
+ connections to the given address &amp; port will be forwarded across this
+ ssh connection.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>address</code></strong> (str) - the address to stop forwarding</li>
+ <li><strong class="pname"><code>port</code></strong> (int) - the port to stop forwarding</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="connect"></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">connect</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">hostkey</span>=<span class="sig-default">None</span>,
+ <span class="sig-arg">username</span>=<span class="sig-default"><code class="variable-quote">'</code><code class="variable-string"></code><code class="variable-quote">'</code></span>,
+ <span class="sig-arg">password</span>=<span class="sig-default">None</span>,
+ <span class="sig-arg">pkey</span>=<span class="sig-default">None</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Negotiate an SSH2 session, and optionally verify the server's host key
+ and authenticate using a password or private key. This is a shortcut for
+ <a href="paramiko.Transport-class.html#start_client"
+ class="link">start_client</a>, <a
+ href="paramiko.Transport-class.html#get_remote_server_key"
+ class="link">get_remote_server_key</a>, and <a
+ href="paramiko.Transport-class.html#auth_password"
+ class="link">Transport.auth_password</a> or <a
+ href="paramiko.Transport-class.html#auth_publickey"
+ class="link">Transport.auth_publickey</a>. Use those methods if you want
+ more control.</p>
+ <p>You can use this method immediately after creating a Transport to
+ negotiate encryption with a server. If it fails, an exception will be
+ thrown. On success, the method will return cleanly, and an encrypted
+ session exists. You may immediately call <a
+ href="paramiko.Transport-class.html#open_channel"
+ class="link">open_channel</a> or <a
+ href="paramiko.Transport-class.html#open_session"
+ class="link">open_session</a> to get a <a
+ href="paramiko.Channel-class.html" class="link">Channel</a> object, which
+ is used for data transfer.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>hostkey</code></strong> (<a href="paramiko.PKey-class.html" class="link">PKey</a>) - the host key expected from the server, or <code>None</code> if
+ you don't want to do host key verification.</li>
+ <li><strong class="pname"><code>username</code></strong> (str) - the username to authenticate as.</li>
+ <li><strong class="pname"><code>password</code></strong> (str) - a password to use for authentication, if you want to use password
+ authentication; otherwise <code>None</code>.</li>
+ <li><strong class="pname"><code>pkey</code></strong> (<a href="paramiko.PKey-class.html" class="link">PKey</a>) - a private key to use for authentication, if you want to use
+ private key authentication; otherwise <code>None</code>.</li>
+ </ul></dd>
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'><a href="paramiko.SSHException-class.html">SSHException</a></strong></code> - if the SSH2 negotiation fails, the host key supplied by the server
+ is incorrect, or authentication fails.</li>
+ </ul></dd>
+ </dl>
+<div class="fields"> <p><strong>Note:</strong>
+ If you fail to supply a password or private key, this method may
+ succeed, but a subsequent <a
+ href="paramiko.Transport-class.html#open_channel"
+ class="link">open_channel</a> or <a
+ href="paramiko.Transport-class.html#open_session"
+ class="link">open_session</a> call may fail because you haven't
+ authenticated yet.
+ </p>
+</div></td></tr></table>
+</div>
+<a name="get_exception"></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">get_exception</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return any exception that happened during the last server request.
+ This can be used to fetch more specific error information after using
+ calls like <a href="paramiko.Transport-class.html#start_client"
+ class="link">start_client</a>. The exception (if any) is cleared after
+ this call.</p>
+ <dl class="fields">
+ <dt>Returns: Exception</dt>
+ <dd>an exception, or <code>None</code> if there is no stored
+ exception.</dd>
+ </dl>
+<div class="fields"> <p><strong>Since:</strong>
+ 1.1
+ </p>
+</div></td></tr></table>
+</div>
+<a name="get_hexdump"></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">get_hexdump</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return <code>True</code> if the transport is currently logging hex
+ dumps of protocol traffic.</p>
+ <dl class="fields">
+ <dt>Returns: bool</dt>
+ <dd><code>True</code> if hex dumps are being logged</dd>
+ </dl>
+<div class="fields"> <p><strong>Since:</strong>
+ 1.4
+ </p>
+</div></td></tr></table>
+</div>
+<a name="get_log_channel"></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">get_log_channel</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return the channel name used for this transport's logging.</p>
+ <dl class="fields">
+ <dt>Returns: str</dt>
+ <dd>channel name.</dd>
+ </dl>
+<div class="fields"> <p><strong>Since:</strong>
+ 1.2
+ </p>
+</div></td></tr></table>
+</div>
+<a name="get_remote_server_key"></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">get_remote_server_key</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return the host key of the server (in client mode).</p>
+ <dl class="fields">
+ <dt>Returns: <a href="paramiko.PKey-class.html" class="link">PKey</a></dt>
+ <dd>public key of the remote server</dd>
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'><a href="paramiko.SSHException-class.html">SSHException</a></strong></code> - if no session is currently active.</li>
+ </ul></dd>
+ </dl>
+<div class="fields"> <p><strong>Note:</strong>
+ Previously this call returned a tuple of (key type, key string).
+ You can get the same effect by calling <a
+ href="paramiko.PKey-class.html#get_name"
+ class="link">PKey.get_name</a> for the key type, and
+ <code>str(key)</code> for the key string.
+ </p>
+</div></td></tr></table>
+</div>
+<a name="get_security_options"></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">get_security_options</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return a <a href="paramiko.SecurityOptions-class.html"
+ class="link">SecurityOptions</a> object which can be used to tweak the
+ encryption algorithms this transport will permit, and the order of
+ preference for them.</p>
+ <dl class="fields">
+ <dt>Returns: <a href="paramiko.SecurityOptions-class.html"
+ class="link">SecurityOptions</a></dt>
+ <dd>an object that can be used to change the preferred algorithms for
+ encryption, digest (hash), public key, and key exchange.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="get_server_key"></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">get_server_key</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return the active host key, in server mode. After negotiating with
+ the client, this method will return the negotiated host key. If only one
+ type of host key was set with <a
+ href="paramiko.Transport-class.html#add_server_key"
+ class="link">add_server_key</a>, that's the only key that will ever be
+ returned. But in cases where you have set more than one type of host key
+ (for example, an RSA key and a DSS key), the key type will be negotiated
+ by the client, and this method will return the key of the type agreed on.
+ If the host key has not been negotiated yet, <code>None</code> is
+ returned. In client mode, the behavior is undefined.</p>
+ <dl class="fields">
+ <dt>Returns: <a href="paramiko.PKey-class.html" class="link">PKey</a></dt>
+ <dd>host key of the type negotiated by the client, or
+ <code>None</code>.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="get_username"></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">get_username</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return the username this connection is authenticated for. If the
+ session is not authenticated (or authentication failed), this method
+ returns <code>None</code>.</p>
+ <dl class="fields">
+ <dt>Returns: string</dt>
+ <dd>username that was authenticated, or <code>None</code>.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="getpeername"></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">getpeername</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return the address of the remote side of this Transport, if possible.
+ This is effectively a wrapper around <code>'getpeername'</code> on the
+ underlying socket. If the socket-like object has no
+ <code>'getpeername'</code> method, then <code>(&quot;unknown&quot;,
+ 0)</code> is returned.</p>
+ <dl class="fields">
+ <dt>Returns: tuple(str, int)</dt>
+ <dd>the address if the remote host, if known</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="global_request"></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">global_request</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">kind</span>,
+ <span class="sig-arg">data</span>=<span class="sig-default">None</span>,
+ <span class="sig-arg">wait</span>=<span class="sig-default">True</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Make a global request to the remote host. These are normally
+ extensions to the SSH2 protocol.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>kind</code></strong> (str) - name of the request.</li>
+ <li><strong class="pname"><code>data</code></strong> (tuple) - an optional tuple containing additional data to attach to the
+ request.</li>
+ <li><strong class="pname"><code>wait</code></strong> (bool) - <code>True</code> if this method should not return until a
+ response is received; <code>False</code> otherwise.</li>
+ </ul></dd>
+ <dt>Returns: <a href="paramiko.Message-class.html" class="link">Message</a></dt>
+ <dd>a <a href="paramiko.Message-class.html" class="link">Message</a>
+ containing possible additional data if the request was successful
+ (or an empty <a href="paramiko.Message-class.html"
+ class="link">Message</a> if <code>wait</code> was
+ <code>False</code>); <code>None</code> if the request was denied.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="is_active"></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">is_active</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return true if this session is active (open).</p>
+ <dl class="fields">
+ <dt>Returns: bool</dt>
+ <dd>True if the session is still active (open); False if the session
+ is closed</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="is_authenticated"></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">is_authenticated</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return true if this session is active and authenticated.</p>
+ <dl class="fields">
+ <dt>Returns: bool</dt>
+ <dd>True if the session is still open and has been authenticated
+ successfully; False if authentication failed and/or the session
+ is closed.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="load_server_moduli"></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">load_server_moduli</span>(<span class="sig-arg">filename</span>=<span class="sig-default">None</span>)</span>
+ <br /><em class="fname">Static Method</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko-pysrc.html#Transport.load_server_moduli">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p><i>(optional)</i> Load a file of prime moduli for use in doing
+ group-exchange key negotiation in server mode. It's a rather obscure
+ option and can be safely ignored.</p>
+ <p>In server mode, the remote client may request
+ &quot;group-exchange&quot; key negotiation, which asks the server to send
+ a random prime number that fits certain criteria. These primes are
+ pretty difficult to compute, so they can't be generated on demand. But
+ many systems contain a file of suitable primes (usually named something
+ like <code>/etc/ssh/moduli</code>). If you call
+ <code>load_server_moduli</code> and it returns <code>True</code>, then
+ this file of primes has been loaded and we will support
+ &quot;group-exchange&quot; in server mode. Otherwise server mode will
+ just claim that it doesn't support that method of key negotiation.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>filename</code></strong> (str) - optional path to the moduli file, if you happen to know that it's
+ not in a standard location.</li>
+ </ul></dd>
+ <dt>Returns: bool</dt>
+ <dd>True if a moduli file was successfully loaded; False otherwise.</dd>
+ </dl>
+<div class="fields"> <p><strong>Note:</strong>
+ This has no effect when used in client mode.
+ </p>
+</div></td></tr></table>
+</div>
+<a name="open_channel"></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">open_channel</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">kind</span>,
+ <span class="sig-arg">dest_addr</span>=<span class="sig-default">None</span>,
+ <span class="sig-arg">src_addr</span>=<span class="sig-default">None</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Request a new channel to the server. <a
+ href="paramiko.Channel-class.html" class="link">Channel</a>s are
+ socket-like objects used for the actual transfer of data across the
+ session. You may only request a channel after negotiating encryption
+ (using <a href="paramiko.Transport-class.html#connect"
+ class="link">connect</a> or <a
+ href="paramiko.Transport-class.html#start_client"
+ class="link">start_client</a>) and authenticating.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>kind</code></strong> (str) - the kind of channel requested (usually
+ <code>&quot;session&quot;</code>,
+ <code>&quot;forwarded-tcpip&quot;</code>,
+ <code>&quot;direct-tcpip&quot;</code>, or
+ <code>&quot;x11&quot;</code>)</li>
+ <li><strong class="pname"><code>dest_addr</code></strong> ((str, int)) - the destination address of this port forwarding, if
+ <code>kind</code> is <code>&quot;forwarded-tcpip&quot;</code> or
+ <code>&quot;direct-tcpip&quot;</code> (ignored for other channel
+ types)</li>
+ <li><strong class="pname"><code>src_addr</code></strong> ((str, int)) - the source address of this port forwarding, if <code>kind</code>
+ is <code>&quot;forwarded-tcpip&quot;</code>,
+ <code>&quot;direct-tcpip&quot;</code>, or
+ <code>&quot;x11&quot;</code></li>
+ </ul></dd>
+ <dt>Returns: <a href="paramiko.Channel-class.html" class="link">Channel</a></dt>
+ <dd>a new <a href="paramiko.Channel-class.html"
+ class="link">Channel</a> on success</dd>
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'><a href="paramiko.SSHException-class.html">SSHException</a></strong></code> - if the request is rejected or the session ends prematurely</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="open_forwarded_tcpip_channel"></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">open_forwarded_tcpip_channel</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">(src_addr, src_port)</span>,
+ <span class="sig-arg">(dest_addr, dest_port)</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Request a new channel back to the client, of type
+ <code>&quot;forwarded-tcpip&quot;</code>. This is used after a client has
+ requested port forwarding, for sending incoming connections back to the
+ client.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>src_addr</code></strong> - originator's address</li>
+ <li><strong class="pname"><code>src_port</code></strong> - originator's port</li>
+ <li><strong class="pname"><code>dest_addr</code></strong> - local (server) connected address</li>
+ <li><strong class="pname"><code>dest_port</code></strong> - local (server) connected port</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="open_session"></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">open_session</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Request a new channel to the server, of type
+ <code>&quot;session&quot;</code>. This is just an alias for
+ <code>open_channel('session')</code>.</p>
+ <dl class="fields">
+ <dt>Returns: <a href="paramiko.Channel-class.html" class="link">Channel</a></dt>
+ <dd>a new <a href="paramiko.Channel-class.html"
+ class="link">Channel</a></dd>
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'><a href="paramiko.SSHException-class.html">SSHException</a></strong></code> - if the request is rejected or the session ends prematurely</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="open_sftp_client"></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">open_sftp_client</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Create an SFTP client channel from an open transport. On success, an
+ SFTP session will be opened with the remote host, and a new SFTPClient
+ object will be returned.</p>
+ <dl class="fields">
+ <dt>Returns: <a href="paramiko.SFTPClient-class.html" class="link">SFTPClient</a></dt>
+ <dd>a new <a href="paramiko.SFTPClient-class.html"
+ class="link">SFTPClient</a> object, referring to an sftp session
+ (channel) across this transport</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="open_x11_channel"></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">open_x11_channel</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">src_addr</span>=<span class="sig-default">None</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Request a new channel to the client, of type
+ <code>&quot;x11&quot;</code>. This is just an alias for
+ <code>open_channel('x11', src_addr=src_addr)</code>.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>src_addr</code></strong> ((str, int)) - the source address of the x11 server (port is the x11 port, ie.
+ 6010)</li>
+ </ul></dd>
+ <dt>Returns: <a href="paramiko.Channel-class.html" class="link">Channel</a></dt>
+ <dd>a new <a href="paramiko.Channel-class.html"
+ class="link">Channel</a></dd>
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'><a href="paramiko.SSHException-class.html">SSHException</a></strong></code> - if the request is rejected or the session ends prematurely</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="renegotiate_keys"></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">renegotiate_keys</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Force this session to switch to new keys. Normally this is done
+ automatically after the session hits a certain number of packets or bytes
+ sent or received, but this method gives you the option of forcing new
+ keys whenever you want. Negotiating new keys causes a pause in traffic
+ both ways as the two sides swap keys and do computations. This method
+ returns when the session has switched to new keys.</p>
+ <dl class="fields">
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'><a href="paramiko.SSHException-class.html">SSHException</a></strong></code> - if the key renegotiation failed (which causes the session to end)</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="request_port_forward"></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">request_port_forward</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">address</span>,
+ <span class="sig-arg">port</span>,
+ <span class="sig-arg">handler</span>=<span class="sig-default">None</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Ask the server to forward TCP connections from a listening port on the
+ server, across this SSH session.</p>
+ <p>If a handler is given, that handler is called from a different thread
+ whenever a forwarded connection arrives. The handler parameters are:</p>
+<pre class="literalblock">
+ handler(channel, (origin_addr, origin_port), (server_addr, server_port))
+</pre>
+ <p>where <code>server_addr</code> and <code>server_port</code> are the
+ address and port that the server was listening on.</p>
+ <p>If no handler is set, the default behavior is to send new incoming
+ forwarded connections into the accept queue, to be picked up via <a
+ href="paramiko.Transport-class.html#accept" class="link">accept</a>.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>address</code></strong> (str) - the address to bind when forwarding</li>
+ <li><strong class="pname"><code>port</code></strong> (int) - the port to forward, or 0 to ask the server to allocate any port</li>
+ <li><strong class="pname"><code>handler</code></strong> (function(Channel, (str, int), (str, int))) - optional handler for incoming forwarded connections</li>
+ </ul></dd>
+ <dt>Returns: int</dt>
+ <dd>the port # allocated by the server</dd>
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'><a href="paramiko.SSHException-class.html">SSHException</a></strong></code> - if the server refused the TCP forward request</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="run"></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">run</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+
+ <dl class="fields">
+ <dt>Overrides:
+ threading.Thread.run
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="send_ignore"></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">send_ignore</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">bytes</span>=<span class="sig-default">None</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Send a junk packet across the encrypted link. This is sometimes used
+ to add &quot;noise&quot; to a connection to confuse would-be attackers.
+ It can also be used as a keep-alive for long lived connections traversing
+ firewalls.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>bytes</code></strong> (int) - the number of random bytes to send in the payload of the ignored
+ packet -- defaults to a random number from 10 to 41.</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="set_hexdump"></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">set_hexdump</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">hexdump</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Turn on/off logging a hex dump of protocol traffic at DEBUG level in
+ the logs. Normally you would want this off (which is the default), but
+ if you are debugging something, it may be useful.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>hexdump</code></strong> (bool) - <code>True</code> to log protocol traffix (in hex) to the log;
+ <code>False</code> otherwise.</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="set_keepalive"></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">set_keepalive</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">interval</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Turn on/off keepalive packets (default is off). If this is set, after
+ <code>interval</code> seconds without sending any data over the
+ connection, a &quot;keepalive&quot; packet will be sent (and ignored by
+ the remote host). This can be useful to keep connections alive over a
+ NAT, for example.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>interval</code></strong> (int) - seconds to wait before sending a keepalive packet (or 0 to
+ disable keepalives).</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="set_log_channel"></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">set_log_channel</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">name</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Set the channel for this transport's logging. The default is
+ <code>&quot;paramiko.transport&quot;</code> but it can be set to anything
+ you want. (See the <code>logging</code> module for more info.) SSH
+ Channels will log to a sub-channel of the one specified.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>name</code></strong> (str) - new channel name for logging</li>
+ </ul></dd>
+ </dl>
+<div class="fields"> <p><strong>Since:</strong>
+ 1.1
+ </p>
+</div></td></tr></table>
+</div>
+<a name="set_subsystem_handler"></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">set_subsystem_handler</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">name</span>,
+ <span class="sig-arg">handler</span>,
+ <span class="sig-arg">*larg</span>,
+ <span class="sig-arg">**kwarg</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Set the handler class for a subsystem in server mode. If a request
+ for this subsystem is made on an open ssh channel later, this handler
+ will be constructed and called -- see <a
+ href="paramiko.SubsystemHandler-class.html"
+ class="link">SubsystemHandler</a> for more detailed documentation.</p>
+ <p>Any extra parameters (including keyword arguments) are saved and
+ passed to the <a href="paramiko.SubsystemHandler-class.html"
+ class="link">SubsystemHandler</a> constructor later.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>name</code></strong> (str) - name of the subsystem.</li>
+ <li><strong class="pname"><code>handler</code></strong> (class) - subclass of <a href="paramiko.SubsystemHandler-class.html"
+ class="link">SubsystemHandler</a> that handles this subsystem.</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="start_client"></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">start_client</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">event</span>=<span class="sig-default">None</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Negotiate a new SSH2 session as a client. This is the first step
+ after creating a new <a href="paramiko.Transport-class.html"
+ class="link">Transport</a>. A separate thread is created for protocol
+ negotiation.</p>
+ <p>If an event is passed in, this method returns immediately. When
+ negotiation is done (successful or not), the given <code>Event</code>
+ will be triggered. On failure, <a
+ href="paramiko.Transport-class.html#is_active" class="link">is_active</a>
+ will return <code>False</code>.</p>
+ <p>(Since 1.4) If <code>event</code> is <code>None</code>, this method
+ will not return until negotation is done. On success, the method returns
+ normally. Otherwise an SSHException is raised.</p>
+ <p>After a successful negotiation, you will usually want to authenticate,
+ calling <a href="paramiko.Transport-class.html#auth_password"
+ class="link">auth_password</a> or <a
+ href="paramiko.Transport-class.html#auth_publickey"
+ class="link">auth_publickey</a>.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>event</code></strong> (threading.Event) - an event to trigger when negotiation is complete (optional)</li>
+ </ul></dd>
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'><a href="paramiko.SSHException-class.html">SSHException</a></strong></code> - if negotiation fails (and no <code>event</code> was passed in)</li>
+ </ul></dd>
+ </dl>
+<div class="fields"> <strong>Notes:</strong>
+ <ul class="nomargin-top">
+ <li>
+ <a href="paramiko.Transport-class.html#connect"
+ class="link">connect</a> is a simpler method for connecting as a
+ client.
+ </li>
+ <li>
+ After calling this method (or <a
+ href="paramiko.Transport-class.html#start_server"
+ class="link">start_server</a> or <a
+ href="paramiko.Transport-class.html#connect"
+ class="link">connect</a>), you should no longer directly read from
+ or write to the original socket object.
+ </li>
+ </ul>
+</div></td></tr></table>
+</div>
+<a name="start_server"></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">start_server</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">event</span>=<span class="sig-default">None</span>,
+ <span class="sig-arg">server</span>=<span class="sig-default">None</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Negotiate a new SSH2 session as a server. This is the first step
+ after creating a new <a href="paramiko.Transport-class.html"
+ class="link">Transport</a> and setting up your server host key(s). A
+ separate thread is created for protocol negotiation.</p>
+ <p>If an event is passed in, this method returns immediately. When
+ negotiation is done (successful or not), the given <code>Event</code>
+ will be triggered. On failure, <a
+ href="paramiko.Transport-class.html#is_active" class="link">is_active</a>
+ will return <code>False</code>.</p>
+ <p>(Since 1.4) If <code>event</code> is <code>None</code>, this method
+ will not return until negotation is done. On success, the method returns
+ normally. Otherwise an SSHException is raised.</p>
+ <p>After a successful negotiation, the client will need to authenticate.
+ Override the methods <a
+ href="paramiko.ServerInterface-class.html#get_allowed_auths"
+ class="link">get_allowed_auths</a>, <a
+ href="paramiko.ServerInterface-class.html#check_auth_none"
+ class="link">check_auth_none</a>, <a
+ href="paramiko.ServerInterface-class.html#check_auth_password"
+ class="link">check_auth_password</a>, and <a
+ href="paramiko.ServerInterface-class.html#check_auth_publickey"
+ class="link">check_auth_publickey</a> in the given <code>server</code>
+ object to control the authentication process.</p>
+ <p>After a successful authentication, the client should request to open a
+ channel. Override <a
+ href="paramiko.ServerInterface-class.html#check_channel_request"
+ class="link">check_channel_request</a> in the given <code>server</code>
+ object to allow channels to be opened.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>event</code></strong> (threading.Event) - an event to trigger when negotiation is complete.</li>
+ <li><strong class="pname"><code>server</code></strong> (<a href="paramiko.ServerInterface-class.html"
+ class="link">server.ServerInterface</a>) - an object used to perform authentication and create <a
+ href="paramiko.Channel-class.html" class="link">Channel</a>s.</li>
+ </ul></dd>
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'><a href="paramiko.SSHException-class.html">SSHException</a></strong></code> - if negotiation fails (and no <code>event</code> was passed in)</li>
+ </ul></dd>
+ </dl>
+<div class="fields"> <p><strong>Note:</strong>
+ After calling this method (or <a
+ href="paramiko.Transport-class.html#start_client"
+ class="link">start_client</a> or <a
+ href="paramiko.Transport-class.html#connect"
+ class="link">connect</a>), you should no longer directly read from
+ or write to the original socket object.
+ </p>
+</div></td></tr></table>
+</div>
+<a name="use_compression"></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">use_compression</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">compress</span>=<span class="sig-default">True</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Turn on/off compression. This will only have an affect before
+ starting the transport (ie before calling <a
+ href="paramiko.Transport-class.html#connect" class="link">connect</a>,
+ etc). By default, compression is off since it negatively affects
+ interactive sessions.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>compress</code></strong> (bool) - <code>True</code> to ask the remote client/server to compress
+ traffic; <code>False</code> to refuse compression</li>
+ </ul></dd>
+ </dl>
+<div class="fields"> <p><strong>Since:</strong>
+ 1.5.2
+ </p>
+</div></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 Jul 6 18:30:30 2008
+ </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.WarningPolicy-class.html b/docs/paramiko.WarningPolicy-class.html
new file mode 100644
index 0000000..e752ca5
--- /dev/null
+++ b/docs/paramiko.WarningPolicy-class.html
@@ -0,0 +1,220 @@
+<?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.WarningPolicy</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> ::
+ Class&nbsp;WarningPolicy
+ </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.WarningPolicy-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class WarningPolicy</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko-pysrc.html#WarningPolicy">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+ object --+
+ |
+<a href="paramiko.MissingHostKeyPolicy-class.html">MissingHostKeyPolicy</a> --+
+ |
+ <strong class="uidshort">WarningPolicy</strong>
+</pre>
+
+<hr />
+<p>Policy for logging a python-style warning for an unknown host key, but
+ accepting it. This is used by <a href="paramiko.SSHClient-class.html"
+ class="link">SSHClient</a>.</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.WarningPolicy-class.html#missing_host_key" class="summary-sig-name">missing_host_key</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">client</span>,
+ <span class="summary-sig-arg">hostname</span>,
+ <span class="summary-sig-arg">key</span>)</span><br />
+ Called when an <a href="paramiko.SSHClient-class.html"
+ class="link">SSHClient</a> receives a server key for a server that
+ isn't in either the system or local <a
+ href="paramiko.HostKeys-class.html" class="link">HostKeys</a> object.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.client-pysrc.html">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>__getattribute__</code>,
+ <code>__hash__</code>,
+ <code>__init__</code>,
+ <code>__new__</code>,
+ <code>__reduce__</code>,
+ <code>__reduce_ex__</code>,
+ <code>__repr__</code>,
+ <code>__setattr__</code>,
+ <code>__str__</code>
+ </p>
+ </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="missing_host_key"></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">missing_host_key</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">client</span>,
+ <span class="sig-arg">hostname</span>,
+ <span class="sig-arg">key</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.client-pysrc.html">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Called when an <a href="paramiko.SSHClient-class.html"
+ class="link">SSHClient</a> receives a server key for a server that isn't
+ in either the system or local <a href="paramiko.HostKeys-class.html"
+ class="link">HostKeys</a> object. To accept the key, simply return. To
+ reject, raised an exception (which will be passed to the calling
+ application).</p>
+ <dl class="fields">
+ <dt>Overrides:
+ <a href="paramiko.MissingHostKeyPolicy-class.html#missing_host_key">MissingHostKeyPolicy.missing_host_key</a>
+ <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 Jul 6 18:30:30 2008
+ </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.agent-module.html b/docs/paramiko.agent-module.html
new file mode 100644
index 0000000..91611cd
--- /dev/null
+++ b/docs/paramiko.agent-module.html
@@ -0,0 +1,141 @@
+<?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.agent</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> ::
+ Module&nbsp;agent
+ </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.agent-module.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module agent</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.agent-pysrc.html">source&nbsp;code</a></span></p>
+<p>SSH Agent interface for Unix clients.</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="SSH2_AGENTC_REQUEST_IDENTITIES"></a><span class="summary-name">SSH2_AGENTC_REQUEST_IDENTITIES</span> = <code title="11">11</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="SSH2_AGENTC_SIGN_REQUEST"></a><span class="summary-name">SSH2_AGENTC_SIGN_REQUEST</span> = <code title="13">13</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="SSH2_AGENT_IDENTITIES_ANSWER"></a><span class="summary-name">SSH2_AGENT_IDENTITIES_ANSWER</span> = <code title="12">12</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="SSH2_AGENT_SIGN_RESPONSE"></a><span class="summary-name">SSH2_AGENT_SIGN_RESPONSE</span> = <code title="14">14</code>
+ </td>
+ </tr>
+</table>
+<!-- ==================== 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 Jul 6 18:30:26 2008
+ </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.agent-pysrc.html b/docs/paramiko.agent-pysrc.html
new file mode 100644
index 0000000..1c6bc72
--- /dev/null
+++ b/docs/paramiko.agent-pysrc.html
@@ -0,0 +1,277 @@
+<?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.agent</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> ::
+ Module&nbsp;agent
+ </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.agent-pysrc.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<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="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>
+<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">import</tt> <tt class="py-name">os</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">socket</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">struct</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>
+<a name="L28"></a><tt class="py-lineno"> 28</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.ssh_exception=paramiko.ssh_exception-module.html"><a title="paramiko.ssh_exception" class="py-name" href="#" onclick="return doclink('link-1', 'ssh_exception', 'link-1');">ssh_exception</a></tt> <tt class="py-keyword">import</tt> <tt id="link-2" class="py-name" targets="Class paramiko.SSHException=paramiko.SSHException-class.html"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-2', 'SSHException', 'link-2');">SSHException</a></tt> </tt>
+<a name="L29"></a><tt class="py-lineno"> 29</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-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-4" class="py-name" targets="Module paramiko.message=paramiko.message-module.html"><a title="paramiko.message" class="py-name" href="#" onclick="return doclink('link-4', 'message', 'link-4');">message</a></tt> <tt class="py-keyword">import</tt> <tt id="link-5" class="py-name" targets="Class paramiko.Message=paramiko.Message-class.html"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-5', 'Message', 'link-5');">Message</a></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-6" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-6', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-7" class="py-name" targets="Module paramiko.pkey=paramiko.pkey-module.html"><a title="paramiko.pkey" class="py-name" href="#" onclick="return doclink('link-7', 'pkey', 'link-7');">pkey</a></tt> <tt class="py-keyword">import</tt> <tt id="link-8" class="py-name" targets="Class paramiko.PKey=paramiko.PKey-class.html"><a title="paramiko.PKey" class="py-name" href="#" onclick="return doclink('link-8', 'PKey', 'link-8');">PKey</a></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>
+<a name="L33"></a><tt class="py-lineno"> 33</tt> <tt class="py-line"><tt id="link-9" class="py-name" targets="Variable paramiko.agent.SSH2_AGENTC_REQUEST_IDENTITIES=paramiko.agent-module.html#SSH2_AGENTC_REQUEST_IDENTITIES"><a title="paramiko.agent.SSH2_AGENTC_REQUEST_IDENTITIES" class="py-name" href="#" onclick="return doclink('link-9', 'SSH2_AGENTC_REQUEST_IDENTITIES', 'link-9');">SSH2_AGENTC_REQUEST_IDENTITIES</a></tt><tt class="py-op">,</tt> <tt id="link-10" class="py-name" targets="Variable paramiko.agent.SSH2_AGENT_IDENTITIES_ANSWER=paramiko.agent-module.html#SSH2_AGENT_IDENTITIES_ANSWER"><a title="paramiko.agent.SSH2_AGENT_IDENTITIES_ANSWER" class="py-name" href="#" onclick="return doclink('link-10', 'SSH2_AGENT_IDENTITIES_ANSWER', 'link-10');">SSH2_AGENT_IDENTITIES_ANSWER</a></tt><tt class="py-op">,</tt> \ </tt>
+<a name="L34"></a><tt class="py-lineno"> 34</tt> <tt class="py-line"> <tt id="link-11" class="py-name" targets="Variable paramiko.agent.SSH2_AGENTC_SIGN_REQUEST=paramiko.agent-module.html#SSH2_AGENTC_SIGN_REQUEST"><a title="paramiko.agent.SSH2_AGENTC_SIGN_REQUEST" class="py-name" href="#" onclick="return doclink('link-11', 'SSH2_AGENTC_SIGN_REQUEST', 'link-11');">SSH2_AGENTC_SIGN_REQUEST</a></tt><tt class="py-op">,</tt> <tt id="link-12" class="py-name" targets="Variable paramiko.agent.SSH2_AGENT_SIGN_RESPONSE=paramiko.agent-module.html#SSH2_AGENT_SIGN_RESPONSE"><a title="paramiko.agent.SSH2_AGENT_SIGN_RESPONSE" class="py-name" href="#" onclick="return doclink('link-12', 'SSH2_AGENT_SIGN_RESPONSE', 'link-12');">SSH2_AGENT_SIGN_RESPONSE</a></tt> <tt class="py-op">=</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">11</tt><tt class="py-op">,</tt> <tt class="py-number">15</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>
+<a name="Agent"></a><div id="Agent-def"><a name="L37"></a><tt class="py-lineno"> 37</tt> <a class="py-toggle" href="#" id="Agent-toggle" onclick="return toggle('Agent');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.agent.Agent-class.html">Agent</a><tt class="py-op">:</tt> </tt>
+</div><div id="Agent-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Agent-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"> Client interface for using private keys from an SSH agent running on the</tt> </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</tt> <tt class="py-line"><tt class="py-docstring"> local machine. If an SSH agent is running, this class can be used to</tt> </tt>
+<a name="L41"></a><tt class="py-lineno"> 41</tt> <tt class="py-line"><tt class="py-docstring"> connect to it and retreive L{PKey} objects which can be used when</tt> </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt> <tt class="py-line"><tt class="py-docstring"> attempting to authenticate to remote SSH servers.</tt> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"><tt class="py-docstring"> Because the SSH agent protocol uses environment variables and unix-domain</tt> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt> <tt class="py-line"><tt class="py-docstring"> sockets, this probably doesn't work on Windows. It does work on most</tt> </tt>
+<a name="L46"></a><tt class="py-lineno"> 46</tt> <tt class="py-line"><tt class="py-docstring"> posix platforms though (Linux and MacOS X, for example).</tt> </tt>
+<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>
+<a name="Agent.__init__"></a><div id="Agent.__init__-def"><a name="L49"></a><tt class="py-lineno"> 49</tt> <a class="py-toggle" href="#" id="Agent.__init__-toggle" onclick="return toggle('Agent.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.agent.Agent-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="Agent.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Agent.__init__-expanded"><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 class="py-docstring"> Open a session with the local machine's SSH agent, if one is running.</tt> </tt>
+<a name="L52"></a><tt class="py-lineno"> 52</tt> <tt class="py-line"><tt class="py-docstring"> If no agent is running, initialization will succeed, but L{get_keys}</tt> </tt>
+<a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"><tt class="py-docstring"> will return an empty tuple.</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-docstring"> @raise SSHException: if an SSH agent is found, but speaks an</tt> </tt>
+<a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"><tt class="py-docstring"> incompatible protocol</tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-13" 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-13', 'keys', 'link-13');">keys</a></tt> <tt class="py-op">=</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-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-string">'SSH_AUTH_SOCK'</tt> <tt class="py-keyword">in</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-keyword">and</tt> <tt class="py-op">(</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 class="py-op">:</tt> </tt>
+<a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"> <tt class="py-name">conn</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_UNIX</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="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"> <tt class="py-keyword">try</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">conn</tt><tt class="py-op">.</tt><tt id="link-14" 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-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="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>
+<a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-16" class="py-name"><a title="paramiko.win_pageant" class="py-name" href="#" onclick="return doclink('link-16', 'win_pageant', 'link-15');">win_pageant</a></tt><tt class="py-op">.</tt><tt id="link-17" class="py-name" targets="Function paramiko.win_pageant.can_talk_to_agent()=paramiko.win_pageant-module.html#can_talk_to_agent"><a title="paramiko.win_pageant.can_talk_to_agent" class="py-name" href="#" onclick="return doclink('link-17', 'can_talk_to_agent', 'link-17');">can_talk_to_agent</a></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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">conn</tt> <tt class="py-op">=</tt> <tt id="link-18" class="py-name"><a title="paramiko.win_pageant" class="py-name" href="#" onclick="return doclink('link-18', 'win_pageant', 'link-15');">win_pageant</a></tt><tt class="py-op">.</tt><tt id="link-19" class="py-name" targets="Class paramiko.win_pageant.PageantConnection=paramiko.win_pageant.PageantConnection-class.html"><a title="paramiko.win_pageant.PageantConnection" class="py-name" href="#" onclick="return doclink('link-19', 'PageantConnection', 'link-19');">PageantConnection</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-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<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="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>
+<a name="L79"></a><tt class="py-lineno"> 79</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-2');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'could not get keys from ssh-agent'</tt><tt class="py-op">)</tt> </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"> <tt id="link-23" class="py-name"><a title="paramiko.HostKeys.keys" class="py-name" href="#" onclick="return doclink('link-23', 'keys', 'link-13');">keys</a></tt> <tt class="py-op">=</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">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">result</tt><tt class="py-op">.</tt><tt id="link-24" 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-24', 'get_int', 'link-24');">get_int</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="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"> <tt id="link-25" class="py-name"><a title="paramiko.HostKeys.keys" class="py-name" href="#" onclick="return doclink('link-25', 'keys', 'link-13');">keys</a></tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-26" class="py-name" targets="Class paramiko.AgentKey=paramiko.AgentKey-class.html"><a title="paramiko.AgentKey" class="py-name" href="#" onclick="return doclink('link-26', 'AgentKey', 'link-26');">AgentKey</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-27" 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-27', 'get_string', 'link-27');">get_string</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="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-28" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-28', 'get_string', 'link-27');">get_string</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-29" class="py-name"><a title="paramiko.HostKeys.keys" class="py-name" href="#" onclick="return doclink('link-29', 'keys', 'link-13');">keys</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tuple</tt><tt class="py-op">(</tt><tt id="link-30" class="py-name"><a title="paramiko.HostKeys.keys" class="py-name" href="#" onclick="return doclink('link-30', 'keys', 'link-13');">keys</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"> </tt>
+<a name="Agent.close"></a><div id="Agent.close-def"><a name="L86"></a><tt class="py-lineno"> 86</tt> <a class="py-toggle" href="#" id="Agent.close-toggle" onclick="return toggle('Agent.close');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.agent.Agent-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="Agent.close-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Agent.close-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"> Close the SSH agent connection.</tt> </tt>
+<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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">conn</tt><tt class="py-op">.</tt><tt id="link-31" 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
+paramiko.SFTPFile.close
+paramiko.SFTPHandle.close
+paramiko.SSHClient.close
+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-31', 'close', 'link-31');">close</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">conn</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 id="link-32" class="py-name"><a title="paramiko.HostKeys.keys" class="py-name" href="#" onclick="return doclink('link-32', 'keys', 'link-13');">keys</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"> </tt>
+<a name="Agent.get_keys"></a><div id="Agent.get_keys-def"><a name="L94"></a><tt class="py-lineno"> 94</tt> <a class="py-toggle" href="#" id="Agent.get_keys-toggle" onclick="return toggle('Agent.get_keys');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.agent.Agent-class.html#get_keys">get_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="Agent.get_keys-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Agent.get_keys-expanded"><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"> Return the list of keys available through the SSH agent, if any. If</tt> </tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"><tt class="py-docstring"> no SSH agent was running (or it couldn't be contacted), an empty list</tt> </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"><tt class="py-docstring"> will be returned.</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"> @return: a list of keys available on the SSH agent</tt> </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: tuple of L{AgentKey}</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-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-33" class="py-name"><a title="paramiko.HostKeys.keys" class="py-name" href="#" onclick="return doclink('link-33', 'keys', 'link-13');">keys</a></tt> </tt>
+</div><a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"> </tt>
+<a name="Agent._send_message"></a><div id="Agent._send_message-def"><a name="L105"></a><tt class="py-lineno">105</tt> <a class="py-toggle" href="#" id="Agent._send_message-toggle" onclick="return toggle('Agent._send_message');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.agent.Agent-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">msg</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Agent._send_message-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Agent._send_message-expanded"><a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"> <tt class="py-name">msg</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="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">conn</tt><tt class="py-op">.</tt><tt id="link-34" 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-34', 'send', 'link-34');">send</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;I'</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 class="py-name">msg</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">l</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="L109"></a><tt class="py-lineno">109</tt> <tt class="py-line"> <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt id="link-35" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-35', 'Message', 'link-5');">Message</a></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">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">l</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-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">ord</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-36" class="py-name" targets="Method paramiko.Message.get_byte()=paramiko.Message-class.html#get_byte"><a title="paramiko.Message.get_byte" class="py-name" href="#" onclick="return doclink('link-36', 'get_byte', 'link-36');">get_byte</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">msg</tt> </tt>
+</div><a name="L111"></a><tt class="py-lineno">111</tt> <tt class="py-line"> </tt>
+<a name="Agent._read_all"></a><div id="Agent._read_all-def"><a name="L112"></a><tt class="py-lineno">112</tt> <a class="py-toggle" href="#" id="Agent._read_all-toggle" onclick="return toggle('Agent._read_all');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.agent.Agent-class.html#_read_all">_read_all</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">wanted</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Agent._read_all-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Agent._read_all-expanded"><a name="L113"></a><tt class="py-lineno">113</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">conn</tt><tt class="py-op">.</tt><tt id="link-37" 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-37', 'recv', 'link-37');">recv</a></tt><tt class="py-op">(</tt><tt class="py-name">wanted</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">while</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;</tt> <tt class="py-name">wanted</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">if</tt> <tt class="py-name">len</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-number">0</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">raise</tt> <tt id="link-38" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-38', 'SSHException', 'link-2');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'lost ssh-agent'</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">extra</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">conn</tt><tt class="py-op">.</tt><tt id="link-39" class="py-name"><a title="paramiko.Channel.recv
+paramiko.win_pageant.PageantConnection.recv" class="py-name" href="#" onclick="return doclink('link-39', 'recv', 'link-37');">recv</a></tt><tt class="py-op">(</tt><tt class="py-name">wanted</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 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">extra</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="L119"></a><tt class="py-lineno">119</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-2');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'lost ssh-agent'</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">result</tt> <tt class="py-op">+=</tt> <tt class="py-name">extra</tt> </tt>
+<a name="L121"></a><tt class="py-lineno">121</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">result</tt> </tt>
+</div></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="AgentKey"></a><div id="AgentKey-def"><a name="L124"></a><tt class="py-lineno">124</tt> <a class="py-toggle" href="#" id="AgentKey-toggle" onclick="return toggle('AgentKey');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.agent.AgentKey-class.html">AgentKey</a><tt class="py-op">(</tt><tt class="py-base-class">PKey</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="AgentKey-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="AgentKey-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"> Private key held in a local SSH agent. This type of key can be used for</tt> </tt>
+<a name="L127"></a><tt class="py-lineno">127</tt> <tt class="py-line"><tt class="py-docstring"> authenticating to a remote server (signing). Most other key operations</tt> </tt>
+<a name="L128"></a><tt class="py-lineno">128</tt> <tt class="py-line"><tt class="py-docstring"> work as expected.</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>
+<a name="AgentKey.__init__"></a><div id="AgentKey.__init__-def"><a name="L131"></a><tt class="py-lineno">131</tt> <a class="py-toggle" href="#" id="AgentKey.__init__-toggle" onclick="return toggle('AgentKey.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.agent.AgentKey-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">agent</tt><tt class="py-op">,</tt> <tt class="py-param">blob</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="AgentKey.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AgentKey.__init__-expanded"><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 id="link-41" class="py-name" targets="Module paramiko.agent=paramiko.agent-module.html"><a title="paramiko.agent" class="py-name" href="#" onclick="return doclink('link-41', 'agent', 'link-41');">agent</a></tt> <tt class="py-op">=</tt> <tt id="link-42" class="py-name"><a title="paramiko.agent" class="py-name" href="#" onclick="return doclink('link-42', 'agent', 'link-41');">agent</a></tt> </tt>
+<a name="L133"></a><tt class="py-lineno">133</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">blob</tt> <tt class="py-op">=</tt> <tt class="py-name">blob</tt> </tt>
+<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 id="link-43" 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-43', 'name', 'link-43');">name</a></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-5');">Message</a></tt><tt class="py-op">(</tt><tt class="py-name">blob</tt><tt class="py-op">)</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-27');">get_string</a></tt><tt class="py-op">(</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="AgentKey.__str__"></a><div id="AgentKey.__str__-def"><a name="L136"></a><tt class="py-lineno">136</tt> <a class="py-toggle" href="#" id="AgentKey.__str__-toggle" onclick="return toggle('AgentKey.__str__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.agent.AgentKey-class.html#__str__">__str__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="AgentKey.__str__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AgentKey.__str__-expanded"><a name="L137"></a><tt class="py-lineno">137</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">blob</tt> </tt>
+</div><a name="L138"></a><tt class="py-lineno">138</tt> <tt class="py-line"> </tt>
+<a name="AgentKey.get_name"></a><div id="AgentKey.get_name-def"><a name="L139"></a><tt class="py-lineno">139</tt> <a class="py-toggle" href="#" id="AgentKey.get_name-toggle" onclick="return toggle('AgentKey.get_name');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.agent.AgentKey-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="AgentKey.get_name-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AgentKey.get_name-expanded"><a name="L140"></a><tt class="py-lineno">140</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-46" class="py-name"><a title="paramiko.kex_gex.KexGex.name
+paramiko.kex_group1.KexGroup1.name" class="py-name" href="#" onclick="return doclink('link-46', 'name', 'link-43');">name</a></tt> </tt>
+</div><a name="L141"></a><tt class="py-lineno">141</tt> <tt class="py-line"> </tt>
+<a name="AgentKey.sign_ssh_data"></a><div id="AgentKey.sign_ssh_data-def"><a name="L142"></a><tt class="py-lineno">142</tt> <a class="py-toggle" href="#" id="AgentKey.sign_ssh_data-toggle" onclick="return toggle('AgentKey.sign_ssh_data');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.agent.AgentKey-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">randpool</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="AgentKey.sign_ssh_data-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AgentKey.sign_ssh_data-expanded"><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-47" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-47', 'Message', 'link-5');">Message</a></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-name">msg</tt><tt class="py-op">.</tt><tt id="link-48" 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-48', 'add_byte', 'link-48');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-name">chr</tt><tt class="py-op">(</tt><tt id="link-49" class="py-name"><a title="paramiko.agent.SSH2_AGENTC_SIGN_REQUEST" class="py-name" href="#" onclick="return doclink('link-49', 'SSH2_AGENTC_SIGN_REQUEST', 'link-11');">SSH2_AGENTC_SIGN_REQUEST</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">msg</tt><tt class="py-op">.</tt><tt id="link-50" 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-50', 'add_string', 'link-50');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">blob</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">msg</tt><tt class="py-op">.</tt><tt id="link-51" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-51', 'add_string', 'link-50');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">data</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">msg</tt><tt class="py-op">.</tt><tt id="link-52" 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-52', 'add_int', 'link-52');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-number">0</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">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 id="link-53" class="py-name"><a title="paramiko.agent" class="py-name" href="#" onclick="return doclink('link-53', 'agent', 'link-41');">agent</a></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="L149"></a><tt class="py-lineno">149</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-54" class="py-name"><a title="paramiko.agent.SSH2_AGENT_SIGN_RESPONSE" class="py-name" href="#" onclick="return doclink('link-54', 'SSH2_AGENT_SIGN_RESPONSE', 'link-12');">SSH2_AGENT_SIGN_RESPONSE</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-keyword">raise</tt> <tt id="link-55" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-55', 'SSHException', 'link-2');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'key cannot be used for signing'</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">return</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-56" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-56', 'get_string', 'link-27');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L152"></a><tt class="py-lineno">152</tt> <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<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 Jul 6 18:30:33 2008
+ </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.auth_handler-module.html b/docs/paramiko.auth_handler-module.html
new file mode 100644
index 0000000..11c62df
--- /dev/null
+++ b/docs/paramiko.auth_handler-module.html
@@ -0,0 +1,524 @@
+<?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.auth_handler</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> ::
+ Module&nbsp;auth_handler
+ </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.auth_handler-module.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module auth_handler</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.auth_handler-pysrc.html">source&nbsp;code</a></span></p>
+<p>AuthHandler</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="AUTH_FAILED"></a><span class="summary-name">AUTH_FAILED</span> = <code title="2">2</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_PARTIALLY_SUCCESSFUL"></a><span class="summary-name">AUTH_PARTIALLY_SUCCESSFUL</span> = <code title="1">1</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_SUCCESSFUL"></a><span class="summary-name">AUTH_SUCCESSFUL</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 href="paramiko.auth_handler-module.html#CONNECTION_FAILED_CODE" class="summary-name">CONNECTION_FAILED_CODE</a> = <code title="{1: 'Administratively prohibited',
+ 2: 'Connect failed',
+ 3: 'Unknown channel type',
+ 4: 'Resource shortage'}"><code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Administratively prohibited</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-op">:</code><code class="variable-ellipsis">...</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="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="DEBUG"></a><span class="summary-name">DEBUG</span> = <code title="10">10</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="DISCONNECT_AUTH_CANCELLED_BY_USER"></a><span class="summary-name">DISCONNECT_AUTH_CANCELLED_BY_USER</span> = <code title="13">13</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="DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE"></a><span class="summary-name">DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE</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="DISCONNECT_SERVICE_NOT_AVAILABLE"></a><span class="summary-name">DISCONNECT_SERVICE_NOT_AVAILABLE</span> = <code title="7">7</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="ERROR"></a><span class="summary-name">ERROR</span> = <code title="40">40</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="INFO"></a><span class="summary-name">INFO</span> = <code title="20">20</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="MSG_CHANNEL_CLOSE"></a><span class="summary-name">MSG_CHANNEL_CLOSE</span> = <code title="97">97</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="MSG_CHANNEL_DATA"></a><span class="summary-name">MSG_CHANNEL_DATA</span> = <code title="94">94</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="MSG_CHANNEL_EOF"></a><span class="summary-name">MSG_CHANNEL_EOF</span> = <code title="96">96</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="MSG_CHANNEL_EXTENDED_DATA"></a><span class="summary-name">MSG_CHANNEL_EXTENDED_DATA</span> = <code title="95">95</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="MSG_CHANNEL_FAILURE"></a><span class="summary-name">MSG_CHANNEL_FAILURE</span> = <code title="100">100</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="MSG_CHANNEL_OPEN"></a><span class="summary-name">MSG_CHANNEL_OPEN</span> = <code title="90">90</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="MSG_CHANNEL_OPEN_FAILURE"></a><span class="summary-name">MSG_CHANNEL_OPEN_FAILURE</span> = <code title="92">92</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="MSG_CHANNEL_OPEN_SUCCESS"></a><span class="summary-name">MSG_CHANNEL_OPEN_SUCCESS</span> = <code title="91">91</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="MSG_CHANNEL_REQUEST"></a><span class="summary-name">MSG_CHANNEL_REQUEST</span> = <code title="98">98</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="MSG_CHANNEL_SUCCESS"></a><span class="summary-name">MSG_CHANNEL_SUCCESS</span> = <code title="99">99</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="MSG_CHANNEL_WINDOW_ADJUST"></a><span class="summary-name">MSG_CHANNEL_WINDOW_ADJUST</span> = <code title="93">93</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="MSG_DEBUG"></a><span class="summary-name">MSG_DEBUG</span> = <code title="4">4</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="MSG_DISCONNECT"></a><span class="summary-name">MSG_DISCONNECT</span> = <code title="1">1</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="MSG_GLOBAL_REQUEST"></a><span class="summary-name">MSG_GLOBAL_REQUEST</span> = <code title="80">80</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="MSG_IGNORE"></a><span class="summary-name">MSG_IGNORE</span> = <code title="2">2</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="MSG_KEXINIT"></a><span class="summary-name">MSG_KEXINIT</span> = <code title="20">20</code>
+ </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.auth_handler-module.html#MSG_NAMES" class="summary-name">MSG_NAMES</a> = <code title="{1: 'disconnect',
+ 2: 'ignore',
+ 3: 'unimplemented',
+ 4: 'debug',
+ 5: 'service-request',
+ 6: 'service-accept',
+ 20: 'kexinit',
+ 21: 'newkeys',
+..."><code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">disconnect</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">ignore</code><code class="variable-quote">'</code><code class="variable-op">, </code>3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">unimplemented</code><code class="variable-quote">'</code><code class="variable-op">,</code><code class="variable-ellipsis">...</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="MSG_NEWKEYS"></a><span class="summary-name">MSG_NEWKEYS</span> = <code title="21">21</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="MSG_REQUEST_FAILURE"></a><span class="summary-name">MSG_REQUEST_FAILURE</span> = <code title="82">82</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="MSG_REQUEST_SUCCESS"></a><span class="summary-name">MSG_REQUEST_SUCCESS</span> = <code title="81">81</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="MSG_SERVICE_ACCEPT"></a><span class="summary-name">MSG_SERVICE_ACCEPT</span> = <code title="6">6</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="MSG_SERVICE_REQUEST"></a><span class="summary-name">MSG_SERVICE_REQUEST</span> = <code title="5">5</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="MSG_UNIMPLEMENTED"></a><span class="summary-name">MSG_UNIMPLEMENTED</span> = <code title="3">3</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="MSG_USERAUTH_BANNER"></a><span class="summary-name">MSG_USERAUTH_BANNER</span> = <code title="53">53</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="MSG_USERAUTH_FAILURE"></a><span class="summary-name">MSG_USERAUTH_FAILURE</span> = <code title="51">51</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="MSG_USERAUTH_INFO_REQUEST"></a><span class="summary-name">MSG_USERAUTH_INFO_REQUEST</span> = <code title="60">60</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="MSG_USERAUTH_INFO_RESPONSE"></a><span class="summary-name">MSG_USERAUTH_INFO_RESPONSE</span> = <code title="61">61</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="MSG_USERAUTH_PK_OK"></a><span class="summary-name">MSG_USERAUTH_PK_OK</span> = <code title="60">60</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="MSG_USERAUTH_REQUEST"></a><span class="summary-name">MSG_USERAUTH_REQUEST</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="MSG_USERAUTH_SUCCESS"></a><span class="summary-name">MSG_USERAUTH_SUCCESS</span> = <code title="52">52</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="OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED"></a><span class="summary-name">OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED</span> = <code title="1">1</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="OPEN_FAILED_CONNECT_FAILED"></a><span class="summary-name">OPEN_FAILED_CONNECT_FAILED</span> = <code title="2">2</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="OPEN_FAILED_RESOURCE_SHORTAGE"></a><span class="summary-name">OPEN_FAILED_RESOURCE_SHORTAGE</span> = <code title="4">4</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="OPEN_FAILED_UNKNOWN_CHANNEL_TYPE"></a><span class="summary-name">OPEN_FAILED_UNKNOWN_CHANNEL_TYPE</span> = <code title="3">3</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="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="PY22"></a><span class="summary-name">PY22</span> = <code title="False">False</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="WARNING"></a><span class="summary-name">WARNING</span> = <code title="30">30</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>
+</table>
+<!-- ==================== VARIABLES DETAILS ==================== -->
+<a name="section-VariablesDetails"></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">Variables Details</span></td>
+</tr>
+</table>
+<a name="CONNECTION_FAILED_CODE"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">CONNECTION_FAILED_CODE</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Administratively prohibited</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Connect failed</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Unknown channel type</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Resource shortage</code><code class="variable-quote">'</code><code class="variable-group">}</code>
+</pre></td></tr></table>
+</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="MSG_NAMES"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">MSG_NAMES</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">disconnect</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">ignore</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">unimplemented</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">debug</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 5<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">service-request</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 6<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">service-accept</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 20<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">kexinit</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 21<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">newkeys</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+ </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 Jul 6 18:30:26 2008
+ </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.auth_handler-pysrc.html b/docs/paramiko.auth_handler-pysrc.html
new file mode 100644
index 0000000..9373338
--- /dev/null
+++ b/docs/paramiko.auth_handler-pysrc.html
@@ -0,0 +1,1514 @@
+<?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.auth_handler</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> ::
+ Module&nbsp;auth_handler
+ </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.auth_handler-pysrc.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</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="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>
+<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">import</tt> <tt class="py-name">threading</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">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="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>
+<a name="L31"></a><tt class="py-lineno"> 31</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-4" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-4', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-5" class="py-name" targets="Module paramiko.message=paramiko.message-module.html"><a title="paramiko.message" class="py-name" href="#" onclick="return doclink('link-5', 'message', 'link-5');">message</a></tt> <tt class="py-keyword">import</tt> <tt id="link-6" class="py-name" targets="Class paramiko.Message=paramiko.Message-class.html"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-6', 'Message', 'link-6');">Message</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-7" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-7', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-8" 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-8', 'ssh_exception', 'link-8');">ssh_exception</a></tt> <tt class="py-keyword">import</tt> <tt id="link-9" class="py-name" targets="Class paramiko.SSHException=paramiko.SSHException-class.html"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-9', 'SSHException', 'link-9');">SSHException</a></tt><tt class="py-op">,</tt> <tt id="link-10" class="py-name" targets="Class paramiko.AuthenticationException=paramiko.AuthenticationException-class.html"><a title="paramiko.AuthenticationException" class="py-name" href="#" onclick="return doclink('link-10', 'AuthenticationException', 'link-10');">AuthenticationException</a></tt><tt class="py-op">,</tt> \ </tt>
+<a name="L33"></a><tt class="py-lineno"> 33</tt> <tt class="py-line"> <tt id="link-11" class="py-name" targets="Class paramiko.BadAuthenticationType=paramiko.BadAuthenticationType-class.html"><a title="paramiko.BadAuthenticationType" class="py-name" href="#" onclick="return doclink('link-11', 'BadAuthenticationType', 'link-11');">BadAuthenticationType</a></tt><tt class="py-op">,</tt> <tt id="link-12" class="py-name" targets="Class paramiko.ssh_exception.PartialAuthentication=paramiko.ssh_exception.PartialAuthentication-class.html"><a title="paramiko.ssh_exception.PartialAuthentication" class="py-name" href="#" onclick="return doclink('link-12', 'PartialAuthentication', 'link-12');">PartialAuthentication</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-13" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-13', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-14" class="py-name" targets="Module paramiko.server=paramiko.server-module.html"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-14', 'server', 'link-14');">server</a></tt> <tt class="py-keyword">import</tt> <tt class="py-name">InteractiveQuery</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>
+<a name="AuthHandler"></a><div id="AuthHandler-def"><a name="L37"></a><tt class="py-lineno"> 37</tt> <a class="py-toggle" href="#" id="AuthHandler-toggle" onclick="return toggle('AuthHandler');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.auth_handler.AuthHandler-class.html">AuthHandler</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="AuthHandler-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="AuthHandler-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"> Internal class to handle the mechanics of authentication.</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>
+<a name="AuthHandler.__init__"></a><div id="AuthHandler.__init__-def"><a name="L42"></a><tt class="py-lineno"> 42</tt> <a class="py-toggle" href="#" id="AuthHandler.__init__-toggle" onclick="return toggle('AuthHandler.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.auth_handler.AuthHandler-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="AuthHandler.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AuthHandler.__init__-expanded"><a name="L43"></a><tt class="py-lineno"> 43</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</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">weakref</tt><tt class="py-op">.</tt><tt class="py-name">proxy</tt><tt class="py-op">(</tt><tt id="link-16" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-16', 'transport', 'link-15');">transport</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">username</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">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="L46"></a><tt class="py-lineno"> 46</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">auth_event</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<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">auth_method</tt> <tt class="py-op">=</tt> <tt class="py-string">''</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">password</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">private_key</tt> <tt class="py-op">=</tt> <tt class="py-name">None</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">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="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>
+</div><div id="AuthHandler.is_authenticated-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AuthHandler.is_authenticated-expanded"><a name="L57"></a><tt class="py-lineno"> 57</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">authenticated</tt> </tt>
+</div><a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"> </tt>
+<a name="AuthHandler.get_username"></a><div id="AuthHandler.get_username-def"><a name="L59"></a><tt class="py-lineno"> 59</tt> <a class="py-toggle" href="#" id="AuthHandler.get_username-toggle" onclick="return toggle('AuthHandler.get_username');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.auth_handler.AuthHandler-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="AuthHandler.get_username-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AuthHandler.get_username-expanded"><a name="L60"></a><tt class="py-lineno"> 60</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="L61"></a><tt class="py-lineno"> 61</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">auth_username</tt> </tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"> <tt class="py-keyword">else</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">self</tt><tt class="py-op">.</tt><tt class="py-name">username</tt> </tt>
+</div><a name="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line"> </tt>
+<a name="AuthHandler.auth_none"></a><div id="AuthHandler.auth_none-def"><a name="L65"></a><tt class="py-lineno"> 65</tt> <a class="py-toggle" href="#" id="AuthHandler.auth_none-toggle" onclick="return toggle('AuthHandler.auth_none');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.auth_handler.AuthHandler-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-param">event</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="AuthHandler.auth_none-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AuthHandler.auth_none-expanded"><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-18" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-18', 'transport', 'link-15');">transport</a></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="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line"> <tt class="py-keyword">try</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">self</tt><tt class="py-op">.</tt><tt class="py-name">auth_event</tt> <tt class="py-op">=</tt> <tt class="py-name">event</tt> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"> <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">'none'</tt> </tt>
+<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">username</tt> <tt class="py-op">=</tt> <tt class="py-name">username</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">_request_auth</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-keyword">finally</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 id="link-19" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-19', 'transport', 'link-15');">transport</a></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="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"> </tt>
+<a name="AuthHandler.auth_publickey"></a><div id="AuthHandler.auth_publickey-def"><a name="L75"></a><tt class="py-lineno"> 75</tt> <a class="py-toggle" href="#" id="AuthHandler.auth_publickey-toggle" onclick="return toggle('AuthHandler.auth_publickey');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.auth_handler.AuthHandler-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-op">:</tt> </tt>
+</div><div id="AuthHandler.auth_publickey-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AuthHandler.auth_publickey-expanded"><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 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">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="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"> <tt class="py-keyword">try</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">auth_event</tt> <tt class="py-op">=</tt> <tt class="py-name">event</tt> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line"> <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">'publickey'</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">username</tt> <tt class="py-op">=</tt> <tt class="py-name">username</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">private_key</tt> <tt class="py-op">=</tt> <tt class="py-name">key</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">_request_auth</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">finally</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-21" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-21', 'transport', 'link-15');">transport</a></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="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"> </tt>
+<a name="AuthHandler.auth_password"></a><div id="AuthHandler.auth_password-def"><a name="L86"></a><tt class="py-lineno"> 86</tt> <a class="py-toggle" href="#" id="AuthHandler.auth_password-toggle" onclick="return toggle('AuthHandler.auth_password');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.auth_handler.AuthHandler-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-op">:</tt> </tt>
+</div><div id="AuthHandler.auth_password-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AuthHandler.auth_password-expanded"><a name="L87"></a><tt class="py-lineno"> 87</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-15');">transport</a></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="L88"></a><tt class="py-lineno"> 88</tt> <tt class="py-line"> <tt class="py-keyword">try</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">auth_event</tt> <tt class="py-op">=</tt> <tt class="py-name">event</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">auth_method</tt> <tt class="py-op">=</tt> <tt class="py-string">'password'</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">username</tt> <tt class="py-op">=</tt> <tt class="py-name">username</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">password</tt> <tt class="py-op">=</tt> <tt class="py-name">password</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">_request_auth</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">finally</tt><tt class="py-op">:</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 id="link-23" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-23', 'transport', 'link-15');">transport</a></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="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"> </tt>
+<a name="AuthHandler.auth_interactive"></a><div id="AuthHandler.auth_interactive-def"><a name="L97"></a><tt class="py-lineno"> 97</tt> <a class="py-toggle" href="#" id="AuthHandler.auth_interactive-toggle" onclick="return toggle('AuthHandler.auth_interactive');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.auth_handler.AuthHandler-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">event</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="AuthHandler.auth_interactive-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AuthHandler.auth_interactive-expanded"><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"> response_list = handler(title, instructions, prompt_list)</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">self</tt><tt class="py-op">.</tt><tt id="link-24" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-24', 'transport', 'link-15');">transport</a></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="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"> <tt class="py-keyword">try</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">self</tt><tt class="py-op">.</tt><tt class="py-name">auth_event</tt> <tt class="py-op">=</tt> <tt class="py-name">event</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">auth_method</tt> <tt class="py-op">=</tt> <tt class="py-string">'keyboard-interactive'</tt> </tt>
+<a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">username</tt> <tt class="py-op">=</tt> <tt class="py-name">username</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 class="py-name">interactive_handler</tt> <tt class="py-op">=</tt> <tt class="py-name">handler</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 class="py-name">submethods</tt> <tt class="py-op">=</tt> <tt class="py-name">submethods</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">_request_auth</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-keyword">finally</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">self</tt><tt class="py-op">.</tt><tt id="link-25" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-25', 'transport', 'link-15');">transport</a></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="L111"></a><tt class="py-lineno">111</tt> <tt class="py-line"> </tt>
+<a name="AuthHandler.abort"></a><div id="AuthHandler.abort-def"><a name="L112"></a><tt class="py-lineno">112</tt> <a class="py-toggle" href="#" id="AuthHandler.abort-toggle" onclick="return toggle('AuthHandler.abort');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.auth_handler.AuthHandler-class.html#abort">abort</a><tt 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.abort-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AuthHandler.abort-expanded"><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">auth_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="L114"></a><tt class="py-lineno">114</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">auth_event</tt><tt class="py-op">.</tt><tt id="link-26" 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-26', 'set', 'link-26');">set</a></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="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="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>
+<a name="L122"></a><tt class="py-lineno">122</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_byte()=paramiko.Message-class.html#add_byte"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-28', '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-29" class="py-name" targets="Variable paramiko.auth_handler.MSG_SERVICE_REQUEST=paramiko.auth_handler-module.html#MSG_SERVICE_REQUEST,Variable paramiko.channel.MSG_SERVICE_REQUEST=paramiko.channel-module.html#MSG_SERVICE_REQUEST,Variable paramiko.client.MSG_SERVICE_REQUEST=paramiko.client-module.html#MSG_SERVICE_REQUEST,Variable paramiko.common.MSG_SERVICE_REQUEST=paramiko.common-module.html#MSG_SERVICE_REQUEST,Variable paramiko.dsskey.MSG_SERVICE_REQUEST=paramiko.dsskey-module.html#MSG_SERVICE_REQUEST,Variable paramiko.hostkeys.MSG_SERVICE_REQUEST=paramiko.hostkeys-module.html#MSG_SERVICE_REQUEST,Variable paramiko.kex_gex.MSG_SERVICE_REQUEST=paramiko.kex_gex-module.html#MSG_SERVICE_REQUEST,Variable paramiko.kex_group1.MSG_SERVICE_REQUEST=paramiko.kex_group1-module.html#MSG_SERVICE_REQUEST,Variable paramiko.packet.MSG_SERVICE_REQUEST=paramiko.packet-module.html#MSG_SERVICE_REQUEST,Variable paramiko.pkey.MSG_SERVICE_REQUEST=paramiko.pkey-module.html#MSG_SERVICE_REQUEST,Variable paramiko.rsakey.MSG_SERVICE_REQUEST=paramiko.rsakey-module.html#MSG_SERVICE_REQUEST,Variable paramiko.server.MSG_SERVICE_REQUEST=paramiko.server-module.html#MSG_SERVICE_REQUEST,Variable paramiko.sftp.MSG_SERVICE_REQUEST=paramiko.sftp-module.html#MSG_SERVICE_REQUEST,Variable paramiko.sftp_attr.MSG_SERVICE_REQUEST=paramiko.sftp_attr-module.html#MSG_SERVICE_REQUEST,Variable paramiko.sftp_client.MSG_SERVICE_REQUEST=paramiko.sftp_client-module.html#MSG_SERVICE_REQUEST,Variable paramiko.sftp_file.MSG_SERVICE_REQUEST=paramiko.sftp_file-module.html#MSG_SERVICE_REQUEST,Variable paramiko.sftp_handle.MSG_SERVICE_REQUEST=paramiko.sftp_handle-module.html#MSG_SERVICE_REQUEST,Variable paramiko.sftp_server.MSG_SERVICE_REQUEST=paramiko.sftp_server-module.html#MSG_SERVICE_REQUEST,Variable paramiko.sftp_si.MSG_SERVICE_REQUEST=paramiko.sftp_si-module.html#MSG_SERVICE_REQUEST,Variable paramiko.transport.MSG_SERVICE_REQUEST=paramiko.transport-module.html#MSG_SERVICE_REQUEST,Variable paramiko.util.MSG_SERVICE_REQUEST=paramiko.util-module.html#MSG_SERVICE_REQUEST"><a title="paramiko.auth_handler.MSG_SERVICE_REQUEST
+paramiko.channel.MSG_SERVICE_REQUEST
+paramiko.client.MSG_SERVICE_REQUEST
+paramiko.common.MSG_SERVICE_REQUEST
+paramiko.dsskey.MSG_SERVICE_REQUEST
+paramiko.hostkeys.MSG_SERVICE_REQUEST
+paramiko.kex_gex.MSG_SERVICE_REQUEST
+paramiko.kex_group1.MSG_SERVICE_REQUEST
+paramiko.packet.MSG_SERVICE_REQUEST
+paramiko.pkey.MSG_SERVICE_REQUEST
+paramiko.rsakey.MSG_SERVICE_REQUEST
+paramiko.server.MSG_SERVICE_REQUEST
+paramiko.sftp.MSG_SERVICE_REQUEST
+paramiko.sftp_attr.MSG_SERVICE_REQUEST
+paramiko.sftp_client.MSG_SERVICE_REQUEST
+paramiko.sftp_file.MSG_SERVICE_REQUEST
+paramiko.sftp_handle.MSG_SERVICE_REQUEST
+paramiko.sftp_server.MSG_SERVICE_REQUEST
+paramiko.sftp_si.MSG_SERVICE_REQUEST
+paramiko.transport.MSG_SERVICE_REQUEST
+paramiko.util.MSG_SERVICE_REQUEST" class="py-name" href="#" onclick="return doclink('link-29', 'MSG_SERVICE_REQUEST', 'link-29');">MSG_SERVICE_REQUEST</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">m</tt><tt class="py-op">.</tt><tt id="link-30" 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-30', 'add_string', 'link-30');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-string">'ssh-userauth'</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">self</tt><tt class="py-op">.</tt><tt id="link-31" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-31', '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>
+</div><a name="L125"></a><tt class="py-lineno">125</tt> <tt class="py-line"> </tt>
+<a name="AuthHandler._disconnect_service_not_available"></a><div id="AuthHandler._disconnect_service_not_available-def"><a name="L126"></a><tt class="py-lineno">126</tt> <a class="py-toggle" href="#" id="AuthHandler._disconnect_service_not_available-toggle" onclick="return toggle('AuthHandler._disconnect_service_not_available');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.auth_handler.AuthHandler-class.html#_disconnect_service_not_available">_disconnect_service_not_available</a><tt 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._disconnect_service_not_available-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AuthHandler._disconnect_service_not_available-expanded"><a name="L127"></a><tt class="py-lineno">127</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="L128"></a><tt class="py-lineno">128</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_byte" class="py-name" href="#" onclick="return doclink('link-33', '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-34" 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
+paramiko.dsskey.MSG_DISCONNECT
+paramiko.hostkeys.MSG_DISCONNECT
+paramiko.kex_gex.MSG_DISCONNECT
+paramiko.kex_group1.MSG_DISCONNECT
+paramiko.packet.MSG_DISCONNECT
+paramiko.pkey.MSG_DISCONNECT
+paramiko.rsakey.MSG_DISCONNECT
+paramiko.server.MSG_DISCONNECT
+paramiko.sftp.MSG_DISCONNECT
+paramiko.sftp_attr.MSG_DISCONNECT
+paramiko.sftp_client.MSG_DISCONNECT
+paramiko.sftp_file.MSG_DISCONNECT
+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-34', 'MSG_DISCONNECT', 'link-34');">MSG_DISCONNECT</a></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">m</tt><tt class="py-op">.</tt><tt id="link-35" 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-35', 'add_int', 'link-35');">add_int</a></tt><tt class="py-op">(</tt><tt id="link-36" class="py-name" targets="Variable paramiko.auth_handler.DISCONNECT_SERVICE_NOT_AVAILABLE=paramiko.auth_handler-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE,Variable paramiko.channel.DISCONNECT_SERVICE_NOT_AVAILABLE=paramiko.channel-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE,Variable paramiko.client.DISCONNECT_SERVICE_NOT_AVAILABLE=paramiko.client-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE,Variable paramiko.common.DISCONNECT_SERVICE_NOT_AVAILABLE=paramiko.common-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE,Variable paramiko.dsskey.DISCONNECT_SERVICE_NOT_AVAILABLE=paramiko.dsskey-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE,Variable paramiko.hostkeys.DISCONNECT_SERVICE_NOT_AVAILABLE=paramiko.hostkeys-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE,Variable paramiko.kex_gex.DISCONNECT_SERVICE_NOT_AVAILABLE=paramiko.kex_gex-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE,Variable paramiko.kex_group1.DISCONNECT_SERVICE_NOT_AVAILABLE=paramiko.kex_group1-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE,Variable paramiko.packet.DISCONNECT_SERVICE_NOT_AVAILABLE=paramiko.packet-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE,Variable paramiko.pkey.DISCONNECT_SERVICE_NOT_AVAILABLE=paramiko.pkey-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE,Variable paramiko.rsakey.DISCONNECT_SERVICE_NOT_AVAILABLE=paramiko.rsakey-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE,Variable paramiko.server.DISCONNECT_SERVICE_NOT_AVAILABLE=paramiko.server-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE,Variable paramiko.sftp.DISCONNECT_SERVICE_NOT_AVAILABLE=paramiko.sftp-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE,Variable paramiko.sftp_attr.DISCONNECT_SERVICE_NOT_AVAILABLE=paramiko.sftp_attr-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE,Variable paramiko.sftp_client.DISCONNECT_SERVICE_NOT_AVAILABLE=paramiko.sftp_client-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE,Variable paramiko.sftp_file.DISCONNECT_SERVICE_NOT_AVAILABLE=paramiko.sftp_file-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE,Variable paramiko.sftp_handle.DISCONNECT_SERVICE_NOT_AVAILABLE=paramiko.sftp_handle-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE,Variable paramiko.sftp_server.DISCONNECT_SERVICE_NOT_AVAILABLE=paramiko.sftp_server-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE,Variable paramiko.sftp_si.DISCONNECT_SERVICE_NOT_AVAILABLE=paramiko.sftp_si-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE,Variable paramiko.transport.DISCONNECT_SERVICE_NOT_AVAILABLE=paramiko.transport-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE,Variable paramiko.util.DISCONNECT_SERVICE_NOT_AVAILABLE=paramiko.util-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE"><a title="paramiko.auth_handler.DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.channel.DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.client.DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.common.DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.dsskey.DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.hostkeys.DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.kex_gex.DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.kex_group1.DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.packet.DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.pkey.DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.rsakey.DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.server.DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.sftp.DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.sftp_attr.DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.sftp_client.DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.sftp_file.DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.sftp_handle.DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.sftp_server.DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.sftp_si.DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.transport.DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.util.DISCONNECT_SERVICE_NOT_AVAILABLE" class="py-name" href="#" onclick="return doclink('link-36', 'DISCONNECT_SERVICE_NOT_AVAILABLE', 'link-36');">DISCONNECT_SERVICE_NOT_AVAILABLE</a></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-37" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-37', 'add_string', 'link-30');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-string">'Service not 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">m</tt><tt class="py-op">.</tt><tt id="link-38" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-38', 'add_string', 'link-30');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-string">'en'</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">self</tt><tt class="py-op">.</tt><tt id="link-39" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-39', '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="L133"></a><tt class="py-lineno">133</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-40" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-40', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt id="link-41" 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
+paramiko.SFTPFile.close
+paramiko.SFTPHandle.close
+paramiko.SSHClient.close
+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-41', 'close', 'link-41');">close</a></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="AuthHandler._disconnect_no_more_auth"></a><div id="AuthHandler._disconnect_no_more_auth-def"><a name="L135"></a><tt class="py-lineno">135</tt> <a class="py-toggle" href="#" id="AuthHandler._disconnect_no_more_auth-toggle" onclick="return toggle('AuthHandler._disconnect_no_more_auth');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.auth_handler.AuthHandler-class.html#_disconnect_no_more_auth">_disconnect_no_more_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._disconnect_no_more_auth-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AuthHandler._disconnect_no_more_auth-expanded"><a name="L136"></a><tt class="py-lineno">136</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-6');">Message</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-name">m</tt><tt class="py-op">.</tt><tt id="link-43" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-43', '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-44" class="py-name"><a title="paramiko.auth_handler.MSG_DISCONNECT
+paramiko.channel.MSG_DISCONNECT
+paramiko.client.MSG_DISCONNECT
+paramiko.common.MSG_DISCONNECT
+paramiko.dsskey.MSG_DISCONNECT
+paramiko.hostkeys.MSG_DISCONNECT
+paramiko.kex_gex.MSG_DISCONNECT
+paramiko.kex_group1.MSG_DISCONNECT
+paramiko.packet.MSG_DISCONNECT
+paramiko.pkey.MSG_DISCONNECT
+paramiko.rsakey.MSG_DISCONNECT
+paramiko.server.MSG_DISCONNECT
+paramiko.sftp.MSG_DISCONNECT
+paramiko.sftp_attr.MSG_DISCONNECT
+paramiko.sftp_client.MSG_DISCONNECT
+paramiko.sftp_file.MSG_DISCONNECT
+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-44', 'MSG_DISCONNECT', 'link-34');">MSG_DISCONNECT</a></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">m</tt><tt class="py-op">.</tt><tt id="link-45" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-45', 'add_int', 'link-35');">add_int</a></tt><tt class="py-op">(</tt><tt id="link-46" class="py-name" targets="Variable paramiko.auth_handler.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE=paramiko.auth_handler-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE,Variable paramiko.channel.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE=paramiko.channel-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE,Variable paramiko.client.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE=paramiko.client-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE,Variable paramiko.common.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE=paramiko.common-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE,Variable paramiko.dsskey.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE=paramiko.dsskey-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE,Variable paramiko.hostkeys.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE=paramiko.hostkeys-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE,Variable paramiko.kex_gex.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE=paramiko.kex_gex-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE,Variable paramiko.kex_group1.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE=paramiko.kex_group1-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE,Variable paramiko.packet.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE=paramiko.packet-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE,Variable paramiko.pkey.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE=paramiko.pkey-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE,Variable paramiko.rsakey.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE=paramiko.rsakey-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE,Variable paramiko.server.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE=paramiko.server-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE,Variable paramiko.sftp.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE=paramiko.sftp-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE,Variable paramiko.sftp_attr.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE=paramiko.sftp_attr-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE,Variable paramiko.sftp_client.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE=paramiko.sftp_client-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE,Variable paramiko.sftp_file.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE=paramiko.sftp_file-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE,Variable paramiko.sftp_handle.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE=paramiko.sftp_handle-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE,Variable paramiko.sftp_server.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE=paramiko.sftp_server-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE,Variable paramiko.sftp_si.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE=paramiko.sftp_si-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE,Variable paramiko.transport.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE=paramiko.transport-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE,Variable paramiko.util.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE=paramiko.util-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE"><a title="paramiko.auth_handler.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.channel.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.client.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.common.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.dsskey.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.hostkeys.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.kex_gex.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.kex_group1.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.packet.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.pkey.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.rsakey.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.server.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.sftp.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.sftp_attr.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.sftp_client.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.sftp_file.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.sftp_handle.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.sftp_server.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.sftp_si.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.transport.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.util.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE" class="py-name" href="#" onclick="return doclink('link-46', 'DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE', 'link-46');">DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE</a></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">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-30');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-string">'No more auth methods available'</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">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-30');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-string">'en'</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 id="link-49" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-49', '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="L142"></a><tt class="py-lineno">142</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-50" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-50', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt id="link-51" class="py-name"><a title="paramiko.Agent.close
+paramiko.BufferedFile.close
+paramiko.Channel.close
+paramiko.SFTPClient.close
+paramiko.SFTPFile.close
+paramiko.SFTPHandle.close
+paramiko.SSHClient.close
+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-51', 'close', 'link-41');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L143"></a><tt class="py-lineno">143</tt> <tt class="py-line"> </tt>
+<a name="AuthHandler._get_session_blob"></a><div id="AuthHandler._get_session_blob-def"><a name="L144"></a><tt class="py-lineno">144</tt> <a class="py-toggle" href="#" id="AuthHandler._get_session_blob-toggle" onclick="return toggle('AuthHandler._get_session_blob');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.auth_handler.AuthHandler-class.html#_get_session_blob">_get_session_blob</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-param">service</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="AuthHandler._get_session_blob-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AuthHandler._get_session_blob-expanded"><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-52" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-52', '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-53" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-53', 'add_string', 'link-30');">add_string</a></tt><tt class="py-op">(</tt><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">session_id</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-55" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-55', '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-56" class="py-name" targets="Variable paramiko.auth_handler.MSG_USERAUTH_REQUEST=paramiko.auth_handler-module.html#MSG_USERAUTH_REQUEST,Variable paramiko.channel.MSG_USERAUTH_REQUEST=paramiko.channel-module.html#MSG_USERAUTH_REQUEST,Variable paramiko.client.MSG_USERAUTH_REQUEST=paramiko.client-module.html#MSG_USERAUTH_REQUEST,Variable paramiko.common.MSG_USERAUTH_REQUEST=paramiko.common-module.html#MSG_USERAUTH_REQUEST,Variable paramiko.dsskey.MSG_USERAUTH_REQUEST=paramiko.dsskey-module.html#MSG_USERAUTH_REQUEST,Variable paramiko.hostkeys.MSG_USERAUTH_REQUEST=paramiko.hostkeys-module.html#MSG_USERAUTH_REQUEST,Variable paramiko.kex_gex.MSG_USERAUTH_REQUEST=paramiko.kex_gex-module.html#MSG_USERAUTH_REQUEST,Variable paramiko.kex_group1.MSG_USERAUTH_REQUEST=paramiko.kex_group1-module.html#MSG_USERAUTH_REQUEST,Variable paramiko.packet.MSG_USERAUTH_REQUEST=paramiko.packet-module.html#MSG_USERAUTH_REQUEST,Variable paramiko.pkey.MSG_USERAUTH_REQUEST=paramiko.pkey-module.html#MSG_USERAUTH_REQUEST,Variable paramiko.rsakey.MSG_USERAUTH_REQUEST=paramiko.rsakey-module.html#MSG_USERAUTH_REQUEST,Variable paramiko.server.MSG_USERAUTH_REQUEST=paramiko.server-module.html#MSG_USERAUTH_REQUEST,Variable paramiko.sftp.MSG_USERAUTH_REQUEST=paramiko.sftp-module.html#MSG_USERAUTH_REQUEST,Variable paramiko.sftp_attr.MSG_USERAUTH_REQUEST=paramiko.sftp_attr-module.html#MSG_USERAUTH_REQUEST,Variable paramiko.sftp_client.MSG_USERAUTH_REQUEST=paramiko.sftp_client-module.html#MSG_USERAUTH_REQUEST,Variable paramiko.sftp_file.MSG_USERAUTH_REQUEST=paramiko.sftp_file-module.html#MSG_USERAUTH_REQUEST,Variable paramiko.sftp_handle.MSG_USERAUTH_REQUEST=paramiko.sftp_handle-module.html#MSG_USERAUTH_REQUEST,Variable paramiko.sftp_server.MSG_USERAUTH_REQUEST=paramiko.sftp_server-module.html#MSG_USERAUTH_REQUEST,Variable paramiko.sftp_si.MSG_USERAUTH_REQUEST=paramiko.sftp_si-module.html#MSG_USERAUTH_REQUEST,Variable paramiko.transport.MSG_USERAUTH_REQUEST=paramiko.transport-module.html#MSG_USERAUTH_REQUEST,Variable paramiko.util.MSG_USERAUTH_REQUEST=paramiko.util-module.html#MSG_USERAUTH_REQUEST"><a title="paramiko.auth_handler.MSG_USERAUTH_REQUEST
+paramiko.channel.MSG_USERAUTH_REQUEST
+paramiko.client.MSG_USERAUTH_REQUEST
+paramiko.common.MSG_USERAUTH_REQUEST
+paramiko.dsskey.MSG_USERAUTH_REQUEST
+paramiko.hostkeys.MSG_USERAUTH_REQUEST
+paramiko.kex_gex.MSG_USERAUTH_REQUEST
+paramiko.kex_group1.MSG_USERAUTH_REQUEST
+paramiko.packet.MSG_USERAUTH_REQUEST
+paramiko.pkey.MSG_USERAUTH_REQUEST
+paramiko.rsakey.MSG_USERAUTH_REQUEST
+paramiko.server.MSG_USERAUTH_REQUEST
+paramiko.sftp.MSG_USERAUTH_REQUEST
+paramiko.sftp_attr.MSG_USERAUTH_REQUEST
+paramiko.sftp_client.MSG_USERAUTH_REQUEST
+paramiko.sftp_file.MSG_USERAUTH_REQUEST
+paramiko.sftp_handle.MSG_USERAUTH_REQUEST
+paramiko.sftp_server.MSG_USERAUTH_REQUEST
+paramiko.sftp_si.MSG_USERAUTH_REQUEST
+paramiko.transport.MSG_USERAUTH_REQUEST
+paramiko.util.MSG_USERAUTH_REQUEST" class="py-name" href="#" onclick="return doclink('link-56', 'MSG_USERAUTH_REQUEST', 'link-56');">MSG_USERAUTH_REQUEST</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-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-30');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">username</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-58" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-58', 'add_string', 'link-30');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">service</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-59" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-59', 'add_string', 'link-30');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-string">'publickey'</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-60" 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-60', 'add_boolean', 'link-60');">add_boolean</a></tt><tt class="py-op">(</tt><tt class="py-number">1</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-61" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-61', 'add_string', 'link-30');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">.</tt><tt id="link-62" 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-62', 'get_name', 'link-62');">get_name</a></tt><tt class="py-op">(</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-name">m</tt><tt class="py-op">.</tt><tt id="link-63" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-63', 'add_string', 'link-30');">add_string</a></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>
+<a name="L154"></a><tt class="py-lineno">154</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">m</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="AuthHandler.wait_for_response"></a><div id="AuthHandler.wait_for_response-def"><a name="L156"></a><tt class="py-lineno">156</tt> <a class="py-toggle" href="#" id="AuthHandler.wait_for_response-toggle" onclick="return toggle('AuthHandler.wait_for_response');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.auth_handler.AuthHandler-class.html#wait_for_response">wait_for_response</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-op">:</tt> </tt>
+</div><div id="AuthHandler.wait_for_response-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AuthHandler.wait_for_response-expanded"><a name="L157"></a><tt class="py-lineno">157</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="L158"></a><tt class="py-lineno">158</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="L159"></a><tt class="py-lineno">159</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-64" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-64', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt id="link-65" class="py-name" targets="Method paramiko.Transport.is_active()=paramiko.Transport-class.html#is_active"><a title="paramiko.Transport.is_active" class="py-name" href="#" onclick="return doclink('link-65', 'is_active', 'link-65');">is_active</a></tt><tt class="py-op">(</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">e</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-66" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-66', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt id="link-67" 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-67', 'get_exception', 'link-67');">get_exception</a></tt><tt class="py-op">(</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">if</tt> <tt class="py-op">(</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 class="py-keyword">or</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 class="py-name">EOFError</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-name">e</tt> <tt class="py-op">=</tt> <tt id="link-68" class="py-name"><a title="paramiko.AuthenticationException" class="py-name" href="#" onclick="return doclink('link-68', '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="L163"></a><tt class="py-lineno">163</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">e</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">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="L165"></a><tt class="py-lineno">165</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
+<a name="L166"></a><tt class="py-lineno">166</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-69" 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-69', 'is_authenticated', 'link-69');">is_authenticated</a></tt><tt class="py-op">(</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">e</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-70" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-70', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt id="link-71" class="py-name"><a title="paramiko.Transport.get_exception" class="py-name" href="#" onclick="return doclink('link-71', 'get_exception', 'link-67');">get_exception</a></tt><tt class="py-op">(</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">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="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>
+<a name="L175"></a><tt class="py-lineno">175</tt> <tt class="py-line"> <tt class="py-keyword">return</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="AuthHandler._parse_service_request"></a><div id="AuthHandler._parse_service_request-def"><a name="L177"></a><tt class="py-lineno">177</tt> <a class="py-toggle" href="#" id="AuthHandler._parse_service_request-toggle" onclick="return toggle('AuthHandler._parse_service_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_service_request">_parse_service_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_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="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
+paramiko.common.MSG_SERVICE_ACCEPT
+paramiko.dsskey.MSG_SERVICE_ACCEPT
+paramiko.hostkeys.MSG_SERVICE_ACCEPT
+paramiko.kex_gex.MSG_SERVICE_ACCEPT
+paramiko.kex_group1.MSG_SERVICE_ACCEPT
+paramiko.packet.MSG_SERVICE_ACCEPT
+paramiko.pkey.MSG_SERVICE_ACCEPT
+paramiko.rsakey.MSG_SERVICE_ACCEPT
+paramiko.server.MSG_SERVICE_ACCEPT
+paramiko.sftp.MSG_SERVICE_ACCEPT
+paramiko.sftp_attr.MSG_SERVICE_ACCEPT
+paramiko.sftp_client.MSG_SERVICE_ACCEPT
+paramiko.sftp_file.MSG_SERVICE_ACCEPT
+paramiko.sftp_handle.MSG_SERVICE_ACCEPT
+paramiko.sftp_server.MSG_SERVICE_ACCEPT
+paramiko.sftp_si.MSG_SERVICE_ACCEPT
+paramiko.transport.MSG_SERVICE_ACCEPT
+paramiko.util.MSG_SERVICE_ACCEPT" class="py-name" href="#" onclick="return doclink('link-79', 'MSG_SERVICE_ACCEPT', 'link-79');">MSG_SERVICE_ACCEPT</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">m</tt><tt class="py-op">.</tt><tt id="link-80" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-80', 'add_string', 'link-30');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">service</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-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>
+</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>
+<a name="L191"></a><tt class="py-lineno">191</tt> <tt class="py-line"> <tt class="py-keyword">if</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>
+<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 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 class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-84" 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
+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-84', 'DEBUG', 'link-84');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'userauth is OK'</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">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="L194"></a><tt class="py-lineno">194</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-28');">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_USERAUTH_REQUEST
+paramiko.channel.MSG_USERAUTH_REQUEST
+paramiko.client.MSG_USERAUTH_REQUEST
+paramiko.common.MSG_USERAUTH_REQUEST
+paramiko.dsskey.MSG_USERAUTH_REQUEST
+paramiko.hostkeys.MSG_USERAUTH_REQUEST
+paramiko.kex_gex.MSG_USERAUTH_REQUEST
+paramiko.kex_group1.MSG_USERAUTH_REQUEST
+paramiko.packet.MSG_USERAUTH_REQUEST
+paramiko.pkey.MSG_USERAUTH_REQUEST
+paramiko.rsakey.MSG_USERAUTH_REQUEST
+paramiko.server.MSG_USERAUTH_REQUEST
+paramiko.sftp.MSG_USERAUTH_REQUEST
+paramiko.sftp_attr.MSG_USERAUTH_REQUEST
+paramiko.sftp_client.MSG_USERAUTH_REQUEST
+paramiko.sftp_file.MSG_USERAUTH_REQUEST
+paramiko.sftp_handle.MSG_USERAUTH_REQUEST
+paramiko.sftp_server.MSG_USERAUTH_REQUEST
+paramiko.sftp_si.MSG_USERAUTH_REQUEST
+paramiko.transport.MSG_USERAUTH_REQUEST
+paramiko.util.MSG_USERAUTH_REQUEST" class="py-name" href="#" onclick="return doclink('link-87', 'MSG_USERAUTH_REQUEST', 'link-56');">MSG_USERAUTH_REQUEST</a></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">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-30');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">username</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">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-30');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-string">'ssh-connection'</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">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-30');">add_string</a></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="L198"></a><tt class="py-lineno">198</tt> <tt 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">'password'</tt><tt class="py-op">:</tt> </tt>
+<a name="L199"></a><tt class="py-lineno">199</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_boolean" class="py-name" href="#" onclick="return doclink('link-91', 'add_boolean', 'link-60');">add_boolean</a></tt><tt class="py-op">(</tt><tt class="py-name">False</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">password</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">password</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-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">password</tt><tt class="py-op">,</tt> <tt class="py-name">unicode</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">password</tt> <tt class="py-op">=</tt> <tt class="py-name">password</tt><tt class="py-op">.</tt><tt id="link-92" 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-92', 'encode', 'link-92');">encode</a></tt><tt class="py-op">(</tt><tt class="py-string">'UTF-8'</tt><tt class="py-op">)</tt> </tt>
+<a name="L203"></a><tt class="py-lineno">203</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_string" class="py-name" href="#" onclick="return doclink('link-93', 'add_string', 'link-30');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">password</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">elif</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">'publickey'</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-94" class="py-name"><a title="paramiko.Message.add_boolean" class="py-name" href="#" onclick="return doclink('link-94', 'add_boolean', 'link-60');">add_boolean</a></tt><tt class="py-op">(</tt><tt class="py-name">True</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-95" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-95', 'add_string', 'link-30');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">private_key</tt><tt class="py-op">.</tt><tt id="link-96" 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-96', 'get_name', 'link-62');">get_name</a></tt><tt class="py-op">(</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-97" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-97', 'add_string', 'link-30');">add_string</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-name">private_key</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">blob</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_get_session_blob</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">private_key</tt><tt class="py-op">,</tt> <tt class="py-string">'ssh-connection'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">username</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">sig</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">private_key</tt><tt class="py-op">.</tt><tt id="link-98" 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-98', 'sign_ssh_data', 'link-98');">sign_ssh_data</a></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.transport" class="py-name" href="#" onclick="return doclink('link-99', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt id="link-100" 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
+paramiko.dsskey.randpool
+paramiko.hostkeys.randpool
+paramiko.kex_gex.randpool
+paramiko.kex_group1.randpool
+paramiko.packet.randpool
+paramiko.pkey.randpool
+paramiko.rsakey.randpool
+paramiko.server.randpool
+paramiko.sftp.randpool
+paramiko.sftp_attr.randpool
+paramiko.sftp_client.randpool
+paramiko.sftp_file.randpool
+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-100', 'randpool', 'link-100');">randpool</a></tt><tt class="py-op">,</tt> <tt class="py-name">blob</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-101" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-101', 'add_string', 'link-30');">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="L211"></a><tt class="py-lineno">211</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-op">==</tt> <tt class="py-string">'keyboard-interactive'</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-102" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-102', 'add_string', 'link-30');">add_string</a></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 class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-103" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-103', 'add_string', 'link-30');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">submethods</tt><tt class="py-op">)</tt> </tt>
+<a name="L214"></a><tt class="py-lineno">214</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-op">==</tt> <tt class="py-string">'none'</tt><tt class="py-op">:</tt> </tt>
+<a name="L215"></a><tt class="py-lineno">215</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+<a name="L216"></a><tt class="py-lineno">216</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L217"></a><tt class="py-lineno">217</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-104" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-104', 'SSHException', 'link-9');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Unknown auth method "%s"'</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="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-105" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-105', '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="L219"></a><tt class="py-lineno">219</tt> <tt class="py-line"> <tt class="py-keyword">else</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 id="link-106" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-106', '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-107" 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-107', 'DEBUG', 'link-84');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Service request "%s" accepted (?)'</tt> <tt class="py-op">%</tt> <tt class="py-name">service</tt><tt class="py-op">)</tt> </tt>
+</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="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
+paramiko.common.AUTH_SUCCESSFUL
+paramiko.dsskey.AUTH_SUCCESSFUL
+paramiko.hostkeys.AUTH_SUCCESSFUL
+paramiko.kex_gex.AUTH_SUCCESSFUL
+paramiko.kex_group1.AUTH_SUCCESSFUL
+paramiko.packet.AUTH_SUCCESSFUL
+paramiko.pkey.AUTH_SUCCESSFUL
+paramiko.rsakey.AUTH_SUCCESSFUL
+paramiko.server.AUTH_SUCCESSFUL
+paramiko.sftp.AUTH_SUCCESSFUL
+paramiko.sftp_attr.AUTH_SUCCESSFUL
+paramiko.sftp_client.AUTH_SUCCESSFUL
+paramiko.sftp_file.AUTH_SUCCESSFUL
+paramiko.sftp_handle.AUTH_SUCCESSFUL
+paramiko.sftp_server.AUTH_SUCCESSFUL
+paramiko.sftp_si.AUTH_SUCCESSFUL
+paramiko.transport.AUTH_SUCCESSFUL
+paramiko.util.AUTH_SUCCESSFUL" class="py-name" href="#" onclick="return doclink('link-109', 'AUTH_SUCCESSFUL', 'link-109');">AUTH_SUCCESSFUL</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">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-15');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-111" 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
+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-111', 'INFO', 'link-111');">INFO</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Auth granted (%s).'</tt> <tt class="py-op">%</tt> <tt class="py-name">method</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">m</tt><tt class="py-op">.</tt><tt id="link-112" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-112', '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-113" class="py-name" targets="Variable paramiko.auth_handler.MSG_USERAUTH_SUCCESS=paramiko.auth_handler-module.html#MSG_USERAUTH_SUCCESS,Variable paramiko.channel.MSG_USERAUTH_SUCCESS=paramiko.channel-module.html#MSG_USERAUTH_SUCCESS,Variable paramiko.client.MSG_USERAUTH_SUCCESS=paramiko.client-module.html#MSG_USERAUTH_SUCCESS,Variable paramiko.common.MSG_USERAUTH_SUCCESS=paramiko.common-module.html#MSG_USERAUTH_SUCCESS,Variable paramiko.dsskey.MSG_USERAUTH_SUCCESS=paramiko.dsskey-module.html#MSG_USERAUTH_SUCCESS,Variable paramiko.hostkeys.MSG_USERAUTH_SUCCESS=paramiko.hostkeys-module.html#MSG_USERAUTH_SUCCESS,Variable paramiko.kex_gex.MSG_USERAUTH_SUCCESS=paramiko.kex_gex-module.html#MSG_USERAUTH_SUCCESS,Variable paramiko.kex_group1.MSG_USERAUTH_SUCCESS=paramiko.kex_group1-module.html#MSG_USERAUTH_SUCCESS,Variable paramiko.packet.MSG_USERAUTH_SUCCESS=paramiko.packet-module.html#MSG_USERAUTH_SUCCESS,Variable paramiko.pkey.MSG_USERAUTH_SUCCESS=paramiko.pkey-module.html#MSG_USERAUTH_SUCCESS,Variable paramiko.rsakey.MSG_USERAUTH_SUCCESS=paramiko.rsakey-module.html#MSG_USERAUTH_SUCCESS,Variable paramiko.server.MSG_USERAUTH_SUCCESS=paramiko.server-module.html#MSG_USERAUTH_SUCCESS,Variable paramiko.sftp.MSG_USERAUTH_SUCCESS=paramiko.sftp-module.html#MSG_USERAUTH_SUCCESS,Variable paramiko.sftp_attr.MSG_USERAUTH_SUCCESS=paramiko.sftp_attr-module.html#MSG_USERAUTH_SUCCESS,Variable paramiko.sftp_client.MSG_USERAUTH_SUCCESS=paramiko.sftp_client-module.html#MSG_USERAUTH_SUCCESS,Variable paramiko.sftp_file.MSG_USERAUTH_SUCCESS=paramiko.sftp_file-module.html#MSG_USERAUTH_SUCCESS,Variable paramiko.sftp_handle.MSG_USERAUTH_SUCCESS=paramiko.sftp_handle-module.html#MSG_USERAUTH_SUCCESS,Variable paramiko.sftp_server.MSG_USERAUTH_SUCCESS=paramiko.sftp_server-module.html#MSG_USERAUTH_SUCCESS,Variable paramiko.sftp_si.MSG_USERAUTH_SUCCESS=paramiko.sftp_si-module.html#MSG_USERAUTH_SUCCESS,Variable paramiko.transport.MSG_USERAUTH_SUCCESS=paramiko.transport-module.html#MSG_USERAUTH_SUCCESS,Variable paramiko.util.MSG_USERAUTH_SUCCESS=paramiko.util-module.html#MSG_USERAUTH_SUCCESS"><a title="paramiko.auth_handler.MSG_USERAUTH_SUCCESS
+paramiko.channel.MSG_USERAUTH_SUCCESS
+paramiko.client.MSG_USERAUTH_SUCCESS
+paramiko.common.MSG_USERAUTH_SUCCESS
+paramiko.dsskey.MSG_USERAUTH_SUCCESS
+paramiko.hostkeys.MSG_USERAUTH_SUCCESS
+paramiko.kex_gex.MSG_USERAUTH_SUCCESS
+paramiko.kex_group1.MSG_USERAUTH_SUCCESS
+paramiko.packet.MSG_USERAUTH_SUCCESS
+paramiko.pkey.MSG_USERAUTH_SUCCESS
+paramiko.rsakey.MSG_USERAUTH_SUCCESS
+paramiko.server.MSG_USERAUTH_SUCCESS
+paramiko.sftp.MSG_USERAUTH_SUCCESS
+paramiko.sftp_attr.MSG_USERAUTH_SUCCESS
+paramiko.sftp_client.MSG_USERAUTH_SUCCESS
+paramiko.sftp_file.MSG_USERAUTH_SUCCESS
+paramiko.sftp_handle.MSG_USERAUTH_SUCCESS
+paramiko.sftp_server.MSG_USERAUTH_SUCCESS
+paramiko.sftp_si.MSG_USERAUTH_SUCCESS
+paramiko.transport.MSG_USERAUTH_SUCCESS
+paramiko.util.MSG_USERAUTH_SUCCESS" class="py-name" href="#" onclick="return doclink('link-113', 'MSG_USERAUTH_SUCCESS', 'link-113');">MSG_USERAUTH_SUCCESS</a></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">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="L229"></a><tt class="py-lineno">229</tt> <tt class="py-line"> <tt class="py-keyword">else</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-114" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-114', '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-115" 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-115', 'INFO', 'link-111');">INFO</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Auth rejected (%s).'</tt> <tt class="py-op">%</tt> <tt class="py-name">method</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-116" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-116', '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-117" class="py-name" targets="Variable paramiko.auth_handler.MSG_USERAUTH_FAILURE=paramiko.auth_handler-module.html#MSG_USERAUTH_FAILURE,Variable paramiko.channel.MSG_USERAUTH_FAILURE=paramiko.channel-module.html#MSG_USERAUTH_FAILURE,Variable paramiko.client.MSG_USERAUTH_FAILURE=paramiko.client-module.html#MSG_USERAUTH_FAILURE,Variable paramiko.common.MSG_USERAUTH_FAILURE=paramiko.common-module.html#MSG_USERAUTH_FAILURE,Variable paramiko.dsskey.MSG_USERAUTH_FAILURE=paramiko.dsskey-module.html#MSG_USERAUTH_FAILURE,Variable paramiko.hostkeys.MSG_USERAUTH_FAILURE=paramiko.hostkeys-module.html#MSG_USERAUTH_FAILURE,Variable paramiko.kex_gex.MSG_USERAUTH_FAILURE=paramiko.kex_gex-module.html#MSG_USERAUTH_FAILURE,Variable paramiko.kex_group1.MSG_USERAUTH_FAILURE=paramiko.kex_group1-module.html#MSG_USERAUTH_FAILURE,Variable paramiko.packet.MSG_USERAUTH_FAILURE=paramiko.packet-module.html#MSG_USERAUTH_FAILURE,Variable paramiko.pkey.MSG_USERAUTH_FAILURE=paramiko.pkey-module.html#MSG_USERAUTH_FAILURE,Variable paramiko.rsakey.MSG_USERAUTH_FAILURE=paramiko.rsakey-module.html#MSG_USERAUTH_FAILURE,Variable paramiko.server.MSG_USERAUTH_FAILURE=paramiko.server-module.html#MSG_USERAUTH_FAILURE,Variable paramiko.sftp.MSG_USERAUTH_FAILURE=paramiko.sftp-module.html#MSG_USERAUTH_FAILURE,Variable paramiko.sftp_attr.MSG_USERAUTH_FAILURE=paramiko.sftp_attr-module.html#MSG_USERAUTH_FAILURE,Variable paramiko.sftp_client.MSG_USERAUTH_FAILURE=paramiko.sftp_client-module.html#MSG_USERAUTH_FAILURE,Variable paramiko.sftp_file.MSG_USERAUTH_FAILURE=paramiko.sftp_file-module.html#MSG_USERAUTH_FAILURE,Variable paramiko.sftp_handle.MSG_USERAUTH_FAILURE=paramiko.sftp_handle-module.html#MSG_USERAUTH_FAILURE,Variable paramiko.sftp_server.MSG_USERAUTH_FAILURE=paramiko.sftp_server-module.html#MSG_USERAUTH_FAILURE,Variable paramiko.sftp_si.MSG_USERAUTH_FAILURE=paramiko.sftp_si-module.html#MSG_USERAUTH_FAILURE,Variable paramiko.transport.MSG_USERAUTH_FAILURE=paramiko.transport-module.html#MSG_USERAUTH_FAILURE,Variable paramiko.util.MSG_USERAUTH_FAILURE=paramiko.util-module.html#MSG_USERAUTH_FAILURE"><a title="paramiko.auth_handler.MSG_USERAUTH_FAILURE
+paramiko.channel.MSG_USERAUTH_FAILURE
+paramiko.client.MSG_USERAUTH_FAILURE
+paramiko.common.MSG_USERAUTH_FAILURE
+paramiko.dsskey.MSG_USERAUTH_FAILURE
+paramiko.hostkeys.MSG_USERAUTH_FAILURE
+paramiko.kex_gex.MSG_USERAUTH_FAILURE
+paramiko.kex_group1.MSG_USERAUTH_FAILURE
+paramiko.packet.MSG_USERAUTH_FAILURE
+paramiko.pkey.MSG_USERAUTH_FAILURE
+paramiko.rsakey.MSG_USERAUTH_FAILURE
+paramiko.server.MSG_USERAUTH_FAILURE
+paramiko.sftp.MSG_USERAUTH_FAILURE
+paramiko.sftp_attr.MSG_USERAUTH_FAILURE
+paramiko.sftp_client.MSG_USERAUTH_FAILURE
+paramiko.sftp_file.MSG_USERAUTH_FAILURE
+paramiko.sftp_handle.MSG_USERAUTH_FAILURE
+paramiko.sftp_server.MSG_USERAUTH_FAILURE
+paramiko.sftp_si.MSG_USERAUTH_FAILURE
+paramiko.transport.MSG_USERAUTH_FAILURE
+paramiko.util.MSG_USERAUTH_FAILURE" class="py-name" href="#" onclick="return doclink('link-117', 'MSG_USERAUTH_FAILURE', 'link-117');">MSG_USERAUTH_FAILURE</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-118" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-118', 'add_string', 'link-30');">add_string</a></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" class="py-name" href="#" onclick="return doclink('link-119', '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-120" class="py-name" targets="Method paramiko.ServerInterface.get_allowed_auths()=paramiko.ServerInterface-class.html#get_allowed_auths"><a title="paramiko.ServerInterface.get_allowed_auths" class="py-name" href="#" onclick="return doclink('link-120', 'get_allowed_auths', 'link-120');">get_allowed_auths</a></tt><tt class="py-op">(</tt><tt class="py-name">username</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-keyword">if</tt> <tt class="py-name">result</tt> <tt class="py-op">==</tt> <tt id="link-121" class="py-name" targets="Variable paramiko.auth_handler.AUTH_PARTIALLY_SUCCESSFUL=paramiko.auth_handler-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.channel.AUTH_PARTIALLY_SUCCESSFUL=paramiko.channel-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.client.AUTH_PARTIALLY_SUCCESSFUL=paramiko.client-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.common.AUTH_PARTIALLY_SUCCESSFUL=paramiko.common-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.dsskey.AUTH_PARTIALLY_SUCCESSFUL=paramiko.dsskey-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.hostkeys.AUTH_PARTIALLY_SUCCESSFUL=paramiko.hostkeys-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.kex_gex.AUTH_PARTIALLY_SUCCESSFUL=paramiko.kex_gex-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.kex_group1.AUTH_PARTIALLY_SUCCESSFUL=paramiko.kex_group1-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.packet.AUTH_PARTIALLY_SUCCESSFUL=paramiko.packet-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.pkey.AUTH_PARTIALLY_SUCCESSFUL=paramiko.pkey-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.rsakey.AUTH_PARTIALLY_SUCCESSFUL=paramiko.rsakey-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.server.AUTH_PARTIALLY_SUCCESSFUL=paramiko.server-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.sftp.AUTH_PARTIALLY_SUCCESSFUL=paramiko.sftp-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.sftp_attr.AUTH_PARTIALLY_SUCCESSFUL=paramiko.sftp_attr-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.sftp_client.AUTH_PARTIALLY_SUCCESSFUL=paramiko.sftp_client-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.sftp_file.AUTH_PARTIALLY_SUCCESSFUL=paramiko.sftp_file-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.sftp_handle.AUTH_PARTIALLY_SUCCESSFUL=paramiko.sftp_handle-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.sftp_server.AUTH_PARTIALLY_SUCCESSFUL=paramiko.sftp_server-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.sftp_si.AUTH_PARTIALLY_SUCCESSFUL=paramiko.sftp_si-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.transport.AUTH_PARTIALLY_SUCCESSFUL=paramiko.transport-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.util.AUTH_PARTIALLY_SUCCESSFUL=paramiko.util-module.html#AUTH_PARTIALLY_SUCCESSFUL"><a title="paramiko.auth_handler.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.channel.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.client.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.common.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.dsskey.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.hostkeys.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.kex_gex.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.kex_group1.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.packet.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.pkey.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.rsakey.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.server.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.sftp.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.sftp_attr.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.sftp_client.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.sftp_file.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.sftp_handle.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.sftp_server.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.sftp_si.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.transport.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.util.AUTH_PARTIALLY_SUCCESSFUL" class="py-name" href="#" onclick="return doclink('link-121', 'AUTH_PARTIALLY_SUCCESSFUL', 'link-121');">AUTH_PARTIALLY_SUCCESSFUL</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">m</tt><tt class="py-op">.</tt><tt id="link-122" class="py-name"><a title="paramiko.Message.add_boolean" class="py-name" href="#" onclick="return doclink('link-122', 'add_boolean', 'link-60');">add_boolean</a></tt><tt class="py-op">(</tt><tt class="py-number">1</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">else</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-123" class="py-name"><a title="paramiko.Message.add_boolean" class="py-name" href="#" onclick="return doclink('link-123', 'add_boolean', 'link-60');">add_boolean</a></tt><tt class="py-op">(</tt><tt class="py-number">0</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">auth_fail_count</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</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-124" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-124', '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="L239"></a><tt class="py-lineno">239</tt> <tt 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_fail_count</tt> <tt class="py-op">&gt;=</tt> <tt class="py-number">10</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">_disconnect_no_more_auth</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-keyword">if</tt> <tt class="py-name">result</tt> <tt class="py-op">==</tt> <tt id="link-125" class="py-name"><a title="paramiko.auth_handler.AUTH_SUCCESSFUL
+paramiko.channel.AUTH_SUCCESSFUL
+paramiko.client.AUTH_SUCCESSFUL
+paramiko.common.AUTH_SUCCESSFUL
+paramiko.dsskey.AUTH_SUCCESSFUL
+paramiko.hostkeys.AUTH_SUCCESSFUL
+paramiko.kex_gex.AUTH_SUCCESSFUL
+paramiko.kex_group1.AUTH_SUCCESSFUL
+paramiko.packet.AUTH_SUCCESSFUL
+paramiko.pkey.AUTH_SUCCESSFUL
+paramiko.rsakey.AUTH_SUCCESSFUL
+paramiko.server.AUTH_SUCCESSFUL
+paramiko.sftp.AUTH_SUCCESSFUL
+paramiko.sftp_attr.AUTH_SUCCESSFUL
+paramiko.sftp_client.AUTH_SUCCESSFUL
+paramiko.sftp_file.AUTH_SUCCESSFUL
+paramiko.sftp_handle.AUTH_SUCCESSFUL
+paramiko.sftp_server.AUTH_SUCCESSFUL
+paramiko.sftp_si.AUTH_SUCCESSFUL
+paramiko.transport.AUTH_SUCCESSFUL
+paramiko.util.AUTH_SUCCESSFUL" class="py-name" href="#" onclick="return doclink('link-125', 'AUTH_SUCCESSFUL', 'link-109');">AUTH_SUCCESSFUL</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-name">self</tt><tt class="py-op">.</tt><tt id="link-126" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-126', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_auth_trigger</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</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="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
+paramiko.common.MSG_USERAUTH_INFO_REQUEST
+paramiko.dsskey.MSG_USERAUTH_INFO_REQUEST
+paramiko.hostkeys.MSG_USERAUTH_INFO_REQUEST
+paramiko.kex_gex.MSG_USERAUTH_INFO_REQUEST
+paramiko.kex_group1.MSG_USERAUTH_INFO_REQUEST
+paramiko.packet.MSG_USERAUTH_INFO_REQUEST
+paramiko.pkey.MSG_USERAUTH_INFO_REQUEST
+paramiko.rsakey.MSG_USERAUTH_INFO_REQUEST
+paramiko.server.MSG_USERAUTH_INFO_REQUEST
+paramiko.sftp.MSG_USERAUTH_INFO_REQUEST
+paramiko.sftp_attr.MSG_USERAUTH_INFO_REQUEST
+paramiko.sftp_client.MSG_USERAUTH_INFO_REQUEST
+paramiko.sftp_file.MSG_USERAUTH_INFO_REQUEST
+paramiko.sftp_handle.MSG_USERAUTH_INFO_REQUEST
+paramiko.sftp_server.MSG_USERAUTH_INFO_REQUEST
+paramiko.sftp_si.MSG_USERAUTH_INFO_REQUEST
+paramiko.transport.MSG_USERAUTH_INFO_REQUEST
+paramiko.util.MSG_USERAUTH_INFO_REQUEST" class="py-name" href="#" onclick="return doclink('link-129', 'MSG_USERAUTH_INFO_REQUEST', 'link-129');">MSG_USERAUTH_INFO_REQUEST</a></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-name">m</tt><tt class="py-op">.</tt><tt id="link-130" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-130', 'add_string', 'link-30');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">q</tt><tt class="py-op">.</tt><tt id="link-131" 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-131', 'name', 'link-131');">name</a></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">m</tt><tt class="py-op">.</tt><tt id="link-132" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-132', 'add_string', 'link-30');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">q</tt><tt class="py-op">.</tt><tt class="py-name">instructions</tt><tt class="py-op">)</tt> </tt>
+<a name="L250"></a><tt class="py-lineno">250</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-133" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-133', 'add_string', 'link-30');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-string">''</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">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-35');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">q</tt><tt class="py-op">.</tt><tt class="py-name">prompts</tt><tt class="py-op">)</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">for</tt> <tt class="py-name">p</tt> <tt class="py-keyword">in</tt> <tt class="py-name">q</tt><tt class="py-op">.</tt><tt class="py-name">prompts</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">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-30');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">p</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="L254"></a><tt class="py-lineno">254</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-136" class="py-name"><a title="paramiko.Message.add_boolean" class="py-name" href="#" onclick="return doclink('link-136', 'add_boolean', 'link-60');">add_boolean</a></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="L255"></a><tt class="py-lineno">255</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-137" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-137', '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>
+</div><a name="L256"></a><tt class="py-lineno">256</tt> <tt class="py-line"> </tt>
+<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="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
+paramiko.common.MSG_USERAUTH_FAILURE
+paramiko.dsskey.MSG_USERAUTH_FAILURE
+paramiko.hostkeys.MSG_USERAUTH_FAILURE
+paramiko.kex_gex.MSG_USERAUTH_FAILURE
+paramiko.kex_group1.MSG_USERAUTH_FAILURE
+paramiko.packet.MSG_USERAUTH_FAILURE
+paramiko.pkey.MSG_USERAUTH_FAILURE
+paramiko.rsakey.MSG_USERAUTH_FAILURE
+paramiko.server.MSG_USERAUTH_FAILURE
+paramiko.sftp.MSG_USERAUTH_FAILURE
+paramiko.sftp_attr.MSG_USERAUTH_FAILURE
+paramiko.sftp_client.MSG_USERAUTH_FAILURE
+paramiko.sftp_file.MSG_USERAUTH_FAILURE
+paramiko.sftp_handle.MSG_USERAUTH_FAILURE
+paramiko.sftp_server.MSG_USERAUTH_FAILURE
+paramiko.sftp_si.MSG_USERAUTH_FAILURE
+paramiko.transport.MSG_USERAUTH_FAILURE
+paramiko.util.MSG_USERAUTH_FAILURE" class="py-name" href="#" onclick="return doclink('link-141', 'MSG_USERAUTH_FAILURE', 'link-117');">MSG_USERAUTH_FAILURE</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-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-30');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-string">'none'</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-143" class="py-name"><a title="paramiko.Message.add_boolean" class="py-name" href="#" onclick="return doclink('link-143', 'add_boolean', 'link-60');">add_boolean</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 id="link-144" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-144', '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="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="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>
+<a name="L272"></a><tt class="py-lineno">272</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-148" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-148', '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-149" 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-149', 'DEBUG', 'link-84');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Auth request (type=%s) service=%s, username=%s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">method</tt><tt class="py-op">,</tt> <tt class="py-name">service</tt><tt class="py-op">,</tt> <tt class="py-name">username</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L273"></a><tt class="py-lineno">273</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">service</tt> <tt class="py-op">!=</tt> <tt class="py-string">'ssh-connection'</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">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="L275"></a><tt class="py-lineno">275</tt> <tt class="py-line"> <tt class="py-keyword">return</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-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">auth_username</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">self</tt><tt class="py-op">.</tt><tt class="py-name">auth_username</tt> <tt class="py-op">!=</tt> <tt class="py-name">username</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<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 id="link-150" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-150', '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-151" 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
+paramiko.dsskey.WARNING
+paramiko.hostkeys.WARNING
+paramiko.kex_gex.WARNING
+paramiko.kex_group1.WARNING
+paramiko.logging22.WARNING
+paramiko.packet.WARNING
+paramiko.pkey.WARNING
+paramiko.rsakey.WARNING
+paramiko.server.WARNING
+paramiko.sftp.WARNING
+paramiko.sftp_attr.WARNING
+paramiko.sftp_client.WARNING
+paramiko.sftp_file.WARNING
+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-151', 'WARNING', 'link-151');">WARNING</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Auth rejected because the client attempted to change username in mid-flight'</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">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="L279"></a><tt class="py-lineno">279</tt> <tt class="py-line"> <tt class="py-keyword">return</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">auth_username</tt> <tt class="py-op">=</tt> <tt class="py-name">username</tt> </tt>
+<a name="L281"></a><tt class="py-lineno">281</tt> <tt class="py-line"> </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">method</tt> <tt class="py-op">==</tt> <tt class="py-string">'none'</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">result</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.transport" class="py-name" href="#" onclick="return doclink('link-152', '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-153" class="py-name" targets="Method paramiko.ServerInterface.check_auth_none()=paramiko.ServerInterface-class.html#check_auth_none"><a title="paramiko.ServerInterface.check_auth_none" class="py-name" href="#" onclick="return doclink('link-153', '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="L284"></a><tt class="py-lineno">284</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">method</tt> <tt class="py-op">==</tt> <tt class="py-string">'password'</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">changereq</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-154" 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-154', 'get_boolean', 'link-154');">get_boolean</a></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">password</tt> <tt class="py-op">=</tt> <tt class="py-name">m</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-75');">get_string</a></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-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">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="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
+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-158', 'DEBUG', 'link-84');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Auth request to change passwords (rejected)'</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">newpassword</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-75');">get_string</a></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-keyword">try</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">newpassword</tt> <tt class="py-op">=</tt> <tt class="py-name">newpassword</tt><tt class="py-op">.</tt><tt id="link-160" class="py-name"><a title="paramiko.ber.BER.decode" class="py-name" href="#" onclick="return doclink('link-160', 'decode', 'link-156');">decode</a></tt><tt class="py-op">(</tt><tt class="py-string">'UTF-8'</tt><tt class="py-op">,</tt> <tt class="py-string">'replace'</tt><tt class="py-op">)</tt> </tt>
+<a name="L300"></a><tt class="py-lineno">300</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="L301"></a><tt class="py-lineno">301</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+<a name="L302"></a><tt class="py-lineno">302</tt> <tt class="py-line"> <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-161" class="py-name" targets="Variable paramiko.auth_handler.AUTH_FAILED=paramiko.auth_handler-module.html#AUTH_FAILED,Variable paramiko.channel.AUTH_FAILED=paramiko.channel-module.html#AUTH_FAILED,Variable paramiko.client.AUTH_FAILED=paramiko.client-module.html#AUTH_FAILED,Variable paramiko.common.AUTH_FAILED=paramiko.common-module.html#AUTH_FAILED,Variable paramiko.dsskey.AUTH_FAILED=paramiko.dsskey-module.html#AUTH_FAILED,Variable paramiko.hostkeys.AUTH_FAILED=paramiko.hostkeys-module.html#AUTH_FAILED,Variable paramiko.kex_gex.AUTH_FAILED=paramiko.kex_gex-module.html#AUTH_FAILED,Variable paramiko.kex_group1.AUTH_FAILED=paramiko.kex_group1-module.html#AUTH_FAILED,Variable paramiko.packet.AUTH_FAILED=paramiko.packet-module.html#AUTH_FAILED,Variable paramiko.pkey.AUTH_FAILED=paramiko.pkey-module.html#AUTH_FAILED,Variable paramiko.rsakey.AUTH_FAILED=paramiko.rsakey-module.html#AUTH_FAILED,Variable paramiko.server.AUTH_FAILED=paramiko.server-module.html#AUTH_FAILED,Variable paramiko.sftp.AUTH_FAILED=paramiko.sftp-module.html#AUTH_FAILED,Variable paramiko.sftp_attr.AUTH_FAILED=paramiko.sftp_attr-module.html#AUTH_FAILED,Variable paramiko.sftp_client.AUTH_FAILED=paramiko.sftp_client-module.html#AUTH_FAILED,Variable paramiko.sftp_file.AUTH_FAILED=paramiko.sftp_file-module.html#AUTH_FAILED,Variable paramiko.sftp_handle.AUTH_FAILED=paramiko.sftp_handle-module.html#AUTH_FAILED,Variable paramiko.sftp_server.AUTH_FAILED=paramiko.sftp_server-module.html#AUTH_FAILED,Variable paramiko.sftp_si.AUTH_FAILED=paramiko.sftp_si-module.html#AUTH_FAILED,Variable paramiko.transport.AUTH_FAILED=paramiko.transport-module.html#AUTH_FAILED,Variable paramiko.util.AUTH_FAILED=paramiko.util-module.html#AUTH_FAILED"><a title="paramiko.auth_handler.AUTH_FAILED
+paramiko.channel.AUTH_FAILED
+paramiko.client.AUTH_FAILED
+paramiko.common.AUTH_FAILED
+paramiko.dsskey.AUTH_FAILED
+paramiko.hostkeys.AUTH_FAILED
+paramiko.kex_gex.AUTH_FAILED
+paramiko.kex_group1.AUTH_FAILED
+paramiko.packet.AUTH_FAILED
+paramiko.pkey.AUTH_FAILED
+paramiko.rsakey.AUTH_FAILED
+paramiko.server.AUTH_FAILED
+paramiko.sftp.AUTH_FAILED
+paramiko.sftp_attr.AUTH_FAILED
+paramiko.sftp_client.AUTH_FAILED
+paramiko.sftp_file.AUTH_FAILED
+paramiko.sftp_handle.AUTH_FAILED
+paramiko.sftp_server.AUTH_FAILED
+paramiko.sftp_si.AUTH_FAILED
+paramiko.transport.AUTH_FAILED
+paramiko.util.AUTH_FAILED" class="py-name" href="#" onclick="return doclink('link-161', 'AUTH_FAILED', 'link-161');">AUTH_FAILED</a></tt> </tt>
+<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">result</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-15');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">server_object</tt><tt class="py-op">.</tt><tt id="link-163" class="py-name" targets="Method paramiko.ServerInterface.check_auth_password()=paramiko.ServerInterface-class.html#check_auth_password"><a title="paramiko.ServerInterface.check_auth_password" class="py-name" href="#" onclick="return doclink('link-163', 'check_auth_password', 'link-163');">check_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="L305"></a><tt class="py-lineno">305</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">method</tt> <tt class="py-op">==</tt> <tt class="py-string">'publickey'</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">sig_attached</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-164" class="py-name"><a title="paramiko.Message.get_boolean" class="py-name" href="#" onclick="return doclink('link-164', 'get_boolean', 'link-154');">get_boolean</a></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-name">keytype</tt> <tt class="py-op">=</tt> <tt class="py-name">m</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-75');">get_string</a></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">keyblob</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-166" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-166', 'get_string', 'link-75');">get_string</a></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-keyword">try</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</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.transport" class="py-name" href="#" onclick="return doclink('link-167', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt id="link-168" 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-168', '_key_info', 'link-168');">_key_info</a></tt><tt class="py-op">[</tt><tt class="py-name">keytype</tt><tt class="py-op">]</tt><tt class="py-op">(</tt><tt id="link-169" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-169', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-name">keyblob</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">except</tt> <tt id="link-170" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-170', 'SSHException', 'link-9');">SSHException</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</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">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-15');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-172" 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-172', 'INFO', 'link-111');">INFO</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Auth rejected: public key: %s'</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="L313"></a><tt class="py-lineno">313</tt> <tt class="py-line"> <tt class="py-name">key</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L314"></a><tt class="py-lineno">314</tt> <tt class="py-line"> <tt class="py-keyword">except</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">self</tt><tt class="py-op">.</tt><tt id="link-173" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-173', '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-174" 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-174', 'INFO', 'link-111');">INFO</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Auth rejected: unsupported or mangled public 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-name">key</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-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="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="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
+paramiko.common.AUTH_FAILED
+paramiko.dsskey.AUTH_FAILED
+paramiko.hostkeys.AUTH_FAILED
+paramiko.kex_gex.AUTH_FAILED
+paramiko.kex_group1.AUTH_FAILED
+paramiko.packet.AUTH_FAILED
+paramiko.pkey.AUTH_FAILED
+paramiko.rsakey.AUTH_FAILED
+paramiko.server.AUTH_FAILED
+paramiko.sftp.AUTH_FAILED
+paramiko.sftp_attr.AUTH_FAILED
+paramiko.sftp_client.AUTH_FAILED
+paramiko.sftp_file.AUTH_FAILED
+paramiko.sftp_handle.AUTH_FAILED
+paramiko.sftp_server.AUTH_FAILED
+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="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="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
+paramiko.common.MSG_USERAUTH_PK_OK
+paramiko.dsskey.MSG_USERAUTH_PK_OK
+paramiko.hostkeys.MSG_USERAUTH_PK_OK
+paramiko.kex_gex.MSG_USERAUTH_PK_OK
+paramiko.kex_group1.MSG_USERAUTH_PK_OK
+paramiko.packet.MSG_USERAUTH_PK_OK
+paramiko.pkey.MSG_USERAUTH_PK_OK
+paramiko.rsakey.MSG_USERAUTH_PK_OK
+paramiko.server.MSG_USERAUTH_PK_OK
+paramiko.sftp.MSG_USERAUTH_PK_OK
+paramiko.sftp_attr.MSG_USERAUTH_PK_OK
+paramiko.sftp_client.MSG_USERAUTH_PK_OK
+paramiko.sftp_file.MSG_USERAUTH_PK_OK
+paramiko.sftp_handle.MSG_USERAUTH_PK_OK
+paramiko.sftp_server.MSG_USERAUTH_PK_OK
+paramiko.sftp_si.MSG_USERAUTH_PK_OK
+paramiko.transport.MSG_USERAUTH_PK_OK
+paramiko.util.MSG_USERAUTH_PK_OK" class="py-name" href="#" onclick="return doclink('link-180', 'MSG_USERAUTH_PK_OK', 'link-180');">MSG_USERAUTH_PK_OK</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L329"></a><tt class="py-lineno">329</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.add_string" class="py-name" href="#" onclick="return doclink('link-181', 'add_string', 'link-30');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">keytype</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">m</tt><tt class="py-op">.</tt><tt id="link-182" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-182', 'add_string', 'link-30');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">keyblob</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 id="link-183" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-183', '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="L332"></a><tt class="py-lineno">332</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L333"></a><tt class="py-lineno">333</tt> <tt class="py-line"> <tt class="py-name">sig</tt> <tt class="py-op">=</tt> <tt id="link-184" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-184', 'Message', 'link-6');">Message</a></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_string" class="py-name" href="#" onclick="return doclink('link-185', 'get_string', 'link-75');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</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">blob</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_get_session_blob</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">service</tt><tt class="py-op">,</tt> <tt class="py-name">username</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">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">key</tt><tt class="py-op">.</tt><tt id="link-186" 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-186', 'verify_ssh_sig', 'link-186');">verify_ssh_sig</a></tt><tt class="py-op">(</tt><tt class="py-name">blob</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="L336"></a><tt class="py-lineno">336</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-187" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-187', '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-188" 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-188', 'INFO', 'link-111');">INFO</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Auth rejected: invalid signature'</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">result</tt> <tt class="py-op">=</tt> <tt id="link-189" class="py-name"><a title="paramiko.auth_handler.AUTH_FAILED
+paramiko.channel.AUTH_FAILED
+paramiko.client.AUTH_FAILED
+paramiko.common.AUTH_FAILED
+paramiko.dsskey.AUTH_FAILED
+paramiko.hostkeys.AUTH_FAILED
+paramiko.kex_gex.AUTH_FAILED
+paramiko.kex_group1.AUTH_FAILED
+paramiko.packet.AUTH_FAILED
+paramiko.pkey.AUTH_FAILED
+paramiko.rsakey.AUTH_FAILED
+paramiko.server.AUTH_FAILED
+paramiko.sftp.AUTH_FAILED
+paramiko.sftp_attr.AUTH_FAILED
+paramiko.sftp_client.AUTH_FAILED
+paramiko.sftp_file.AUTH_FAILED
+paramiko.sftp_handle.AUTH_FAILED
+paramiko.sftp_server.AUTH_FAILED
+paramiko.sftp_si.AUTH_FAILED
+paramiko.transport.AUTH_FAILED
+paramiko.util.AUTH_FAILED" class="py-name" href="#" onclick="return doclink('link-189', 'AUTH_FAILED', 'link-161');">AUTH_FAILED</a></tt> </tt>
+<a name="L338"></a><tt class="py-lineno">338</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">method</tt> <tt class="py-op">==</tt> <tt class="py-string">'keyboard-interactive'</tt><tt class="py-op">:</tt> </tt>
+<a name="L339"></a><tt class="py-lineno">339</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-190" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-190', 'get_string', 'link-75');">get_string</a></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">submethods</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_string" class="py-name" href="#" onclick="return doclink('link-191', 'get_string', 'link-75');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<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="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>
+</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
+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-197', 'INFO', 'link-111');">INFO</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Authentication (%s) successful!'</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="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">authenticated</tt> <tt class="py-op">=</tt> <tt class="py-name">True</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 id="link-198" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-198', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">_auth_trigger</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-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">auth_event</tt> <tt class="py-op">!=</tt> <tt class="py-name">None</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">self</tt><tt class="py-op">.</tt><tt class="py-name">auth_event</tt><tt class="py-op">.</tt><tt id="link-199" 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-199', 'set', 'link-26');">set</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L357"></a><tt class="py-lineno">357</tt> <tt class="py-line"> </tt>
+<a name="AuthHandler._parse_userauth_failure"></a><div id="AuthHandler._parse_userauth_failure-def"><a name="L358"></a><tt class="py-lineno">358</tt> <a class="py-toggle" href="#" id="AuthHandler._parse_userauth_failure-toggle" onclick="return toggle('AuthHandler._parse_userauth_failure');">-</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_failure">_parse_userauth_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="AuthHandler._parse_userauth_failure-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AuthHandler._parse_userauth_failure-expanded"><a name="L359"></a><tt class="py-lineno">359</tt> <tt class="py-line"> <tt class="py-name">authlist</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-200" 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-200', 'get_list', 'link-200');">get_list</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">partial</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-201" class="py-name"><a title="paramiko.Message.get_boolean" class="py-name" href="#" onclick="return doclink('link-201', 'get_boolean', 'link-154');">get_boolean</a></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">if</tt> <tt class="py-name">partial</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 id="link-202" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-202', '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-203" 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-203', 'INFO', 'link-111');">INFO</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Authentication continues...'</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 id="link-204" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-204', '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-205" 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-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="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
+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-211', 'DEBUG', 'link-84');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Allowed 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="L368"></a><tt class="py-lineno">368</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-212" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-212', '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-213" class="py-name"><a title="paramiko.BadAuthenticationType" class="py-name" href="#" onclick="return doclink('link-213', 'BadAuthenticationType', 'link-11');">BadAuthenticationType</a></tt><tt class="py-op">(</tt><tt class="py-string">'Bad authentication type'</tt><tt class="py-op">,</tt> <tt class="py-name">authlist</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">else</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">self</tt><tt class="py-op">.</tt><tt id="link-214" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-214', '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-215" 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-215', 'INFO', 'link-111');">INFO</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Authentication (%s) failed.'</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="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">authenticated</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L372"></a><tt class="py-lineno">372</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">username</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L373"></a><tt class="py-lineno">373</tt> <tt 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_event</tt> <tt class="py-op">!=</tt> <tt class="py-name">None</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">auth_event</tt><tt class="py-op">.</tt><tt id="link-216" 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-216', 'set', 'link-26');">set</a></tt><tt class="py-op">(</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="AuthHandler._parse_userauth_banner"></a><div id="AuthHandler._parse_userauth_banner-def"><a name="L376"></a><tt class="py-lineno">376</tt> <a class="py-toggle" href="#" id="AuthHandler._parse_userauth_banner-toggle" onclick="return toggle('AuthHandler._parse_userauth_banner');">-</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_banner">_parse_userauth_banner</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_banner-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AuthHandler._parse_userauth_banner-expanded"><a name="L377"></a><tt class="py-lineno">377</tt> <tt class="py-line"> <tt class="py-name">banner</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-75');">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-name">lang</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-75');">get_string</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">self</tt><tt class="py-op">.</tt><tt id="link-219" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-219', '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-220" 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-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="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>
+<a name="L385"></a><tt class="py-lineno">385</tt> <tt class="py-line"> <tt class="py-name">title</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_string" class="py-name" href="#" onclick="return doclink('link-222', 'get_string', 'link-75');">get_string</a></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">instructions</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-75');">get_string</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">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-75');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-comment"># lang</tt> </tt>
+<a name="L388"></a><tt class="py-lineno">388</tt> <tt class="py-line"> <tt class="py-name">prompts</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-225" 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-225', 'get_int', 'link-225');">get_int</a></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">prompt_list</tt> <tt class="py-op">=</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-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">prompts</tt><tt class="py-op">)</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">prompt_list</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">m</tt><tt class="py-op">.</tt><tt id="link-226" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-226', 'get_string', 'link-75');">get_string</a></tt><tt class="py-op">(</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-227" class="py-name"><a title="paramiko.Message.get_boolean" class="py-name" href="#" onclick="return doclink('link-227', 'get_boolean', 'link-154');">get_boolean</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="L392"></a><tt class="py-lineno">392</tt> <tt class="py-line"> <tt class="py-name">response_list</tt> <tt class="py-op">=</tt> <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">title</tt><tt class="py-op">,</tt> <tt class="py-name">instructions</tt><tt class="py-op">,</tt> <tt class="py-name">prompt_list</tt><tt class="py-op">)</tt> </tt>
+<a name="L393"></a><tt class="py-lineno">393</tt> <tt class="py-line"> </tt>
+<a name="L394"></a><tt class="py-lineno">394</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt id="link-228" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-228', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L395"></a><tt class="py-lineno">395</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_byte" class="py-name" href="#" onclick="return doclink('link-229', '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-230" class="py-name" targets="Variable paramiko.auth_handler.MSG_USERAUTH_INFO_RESPONSE=paramiko.auth_handler-module.html#MSG_USERAUTH_INFO_RESPONSE,Variable paramiko.channel.MSG_USERAUTH_INFO_RESPONSE=paramiko.channel-module.html#MSG_USERAUTH_INFO_RESPONSE,Variable paramiko.client.MSG_USERAUTH_INFO_RESPONSE=paramiko.client-module.html#MSG_USERAUTH_INFO_RESPONSE,Variable paramiko.common.MSG_USERAUTH_INFO_RESPONSE=paramiko.common-module.html#MSG_USERAUTH_INFO_RESPONSE,Variable paramiko.dsskey.MSG_USERAUTH_INFO_RESPONSE=paramiko.dsskey-module.html#MSG_USERAUTH_INFO_RESPONSE,Variable paramiko.hostkeys.MSG_USERAUTH_INFO_RESPONSE=paramiko.hostkeys-module.html#MSG_USERAUTH_INFO_RESPONSE,Variable paramiko.kex_gex.MSG_USERAUTH_INFO_RESPONSE=paramiko.kex_gex-module.html#MSG_USERAUTH_INFO_RESPONSE,Variable paramiko.kex_group1.MSG_USERAUTH_INFO_RESPONSE=paramiko.kex_group1-module.html#MSG_USERAUTH_INFO_RESPONSE,Variable paramiko.packet.MSG_USERAUTH_INFO_RESPONSE=paramiko.packet-module.html#MSG_USERAUTH_INFO_RESPONSE,Variable paramiko.pkey.MSG_USERAUTH_INFO_RESPONSE=paramiko.pkey-module.html#MSG_USERAUTH_INFO_RESPONSE,Variable paramiko.rsakey.MSG_USERAUTH_INFO_RESPONSE=paramiko.rsakey-module.html#MSG_USERAUTH_INFO_RESPONSE,Variable paramiko.server.MSG_USERAUTH_INFO_RESPONSE=paramiko.server-module.html#MSG_USERAUTH_INFO_RESPONSE,Variable paramiko.sftp.MSG_USERAUTH_INFO_RESPONSE=paramiko.sftp-module.html#MSG_USERAUTH_INFO_RESPONSE,Variable paramiko.sftp_attr.MSG_USERAUTH_INFO_RESPONSE=paramiko.sftp_attr-module.html#MSG_USERAUTH_INFO_RESPONSE,Variable paramiko.sftp_client.MSG_USERAUTH_INFO_RESPONSE=paramiko.sftp_client-module.html#MSG_USERAUTH_INFO_RESPONSE,Variable paramiko.sftp_file.MSG_USERAUTH_INFO_RESPONSE=paramiko.sftp_file-module.html#MSG_USERAUTH_INFO_RESPONSE,Variable paramiko.sftp_handle.MSG_USERAUTH_INFO_RESPONSE=paramiko.sftp_handle-module.html#MSG_USERAUTH_INFO_RESPONSE,Variable paramiko.sftp_server.MSG_USERAUTH_INFO_RESPONSE=paramiko.sftp_server-module.html#MSG_USERAUTH_INFO_RESPONSE,Variable paramiko.sftp_si.MSG_USERAUTH_INFO_RESPONSE=paramiko.sftp_si-module.html#MSG_USERAUTH_INFO_RESPONSE,Variable paramiko.transport.MSG_USERAUTH_INFO_RESPONSE=paramiko.transport-module.html#MSG_USERAUTH_INFO_RESPONSE,Variable paramiko.util.MSG_USERAUTH_INFO_RESPONSE=paramiko.util-module.html#MSG_USERAUTH_INFO_RESPONSE"><a title="paramiko.auth_handler.MSG_USERAUTH_INFO_RESPONSE
+paramiko.channel.MSG_USERAUTH_INFO_RESPONSE
+paramiko.client.MSG_USERAUTH_INFO_RESPONSE
+paramiko.common.MSG_USERAUTH_INFO_RESPONSE
+paramiko.dsskey.MSG_USERAUTH_INFO_RESPONSE
+paramiko.hostkeys.MSG_USERAUTH_INFO_RESPONSE
+paramiko.kex_gex.MSG_USERAUTH_INFO_RESPONSE
+paramiko.kex_group1.MSG_USERAUTH_INFO_RESPONSE
+paramiko.packet.MSG_USERAUTH_INFO_RESPONSE
+paramiko.pkey.MSG_USERAUTH_INFO_RESPONSE
+paramiko.rsakey.MSG_USERAUTH_INFO_RESPONSE
+paramiko.server.MSG_USERAUTH_INFO_RESPONSE
+paramiko.sftp.MSG_USERAUTH_INFO_RESPONSE
+paramiko.sftp_attr.MSG_USERAUTH_INFO_RESPONSE
+paramiko.sftp_client.MSG_USERAUTH_INFO_RESPONSE
+paramiko.sftp_file.MSG_USERAUTH_INFO_RESPONSE
+paramiko.sftp_handle.MSG_USERAUTH_INFO_RESPONSE
+paramiko.sftp_server.MSG_USERAUTH_INFO_RESPONSE
+paramiko.sftp_si.MSG_USERAUTH_INFO_RESPONSE
+paramiko.transport.MSG_USERAUTH_INFO_RESPONSE
+paramiko.util.MSG_USERAUTH_INFO_RESPONSE" class="py-name" href="#" onclick="return doclink('link-230', 'MSG_USERAUTH_INFO_RESPONSE', 'link-230');">MSG_USERAUTH_INFO_RESPONSE</a></tt><tt class="py-op">)</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">m</tt><tt class="py-op">.</tt><tt id="link-231" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-231', 'add_int', 'link-35');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">response_list</tt><tt class="py-op">)</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">for</tt> <tt class="py-name">r</tt> <tt class="py-keyword">in</tt> <tt class="py-name">response_list</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">m</tt><tt class="py-op">.</tt><tt id="link-232" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-232', 'add_string', 'link-30');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
+<a name="L399"></a><tt class="py-lineno">399</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-233" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-233', '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>
+</div><a name="L400"></a><tt class="py-lineno">400</tt> <tt class="py-line"> </tt>
+<a name="AuthHandler._parse_userauth_info_response"></a><div id="AuthHandler._parse_userauth_info_response-def"><a name="L401"></a><tt class="py-lineno">401</tt> <a class="py-toggle" href="#" id="AuthHandler._parse_userauth_info_response-toggle" onclick="return toggle('AuthHandler._parse_userauth_info_response');">-</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_response">_parse_userauth_info_response</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_response-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="AuthHandler._parse_userauth_info_response-expanded"><a name="L402"></a><tt class="py-lineno">402</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-234" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-234', '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="L403"></a><tt class="py-lineno">403</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-9');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Illegal info response from server'</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">n</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-236" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-236', 'get_int', 'link-225');">get_int</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">responses</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L406"></a><tt class="py-lineno">406</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">n</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">responses</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-237" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-237', 'get_string', 'link-75');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</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">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="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>
+<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 id="link-240" 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-240', '_handler_table', 'link-240');">_handler_table</a></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 id="link-241" class="py-name"><a title="paramiko.auth_handler.MSG_SERVICE_REQUEST
+paramiko.channel.MSG_SERVICE_REQUEST
+paramiko.client.MSG_SERVICE_REQUEST
+paramiko.common.MSG_SERVICE_REQUEST
+paramiko.dsskey.MSG_SERVICE_REQUEST
+paramiko.hostkeys.MSG_SERVICE_REQUEST
+paramiko.kex_gex.MSG_SERVICE_REQUEST
+paramiko.kex_group1.MSG_SERVICE_REQUEST
+paramiko.packet.MSG_SERVICE_REQUEST
+paramiko.pkey.MSG_SERVICE_REQUEST
+paramiko.rsakey.MSG_SERVICE_REQUEST
+paramiko.server.MSG_SERVICE_REQUEST
+paramiko.sftp.MSG_SERVICE_REQUEST
+paramiko.sftp_attr.MSG_SERVICE_REQUEST
+paramiko.sftp_client.MSG_SERVICE_REQUEST
+paramiko.sftp_file.MSG_SERVICE_REQUEST
+paramiko.sftp_handle.MSG_SERVICE_REQUEST
+paramiko.sftp_server.MSG_SERVICE_REQUEST
+paramiko.sftp_si.MSG_SERVICE_REQUEST
+paramiko.transport.MSG_SERVICE_REQUEST
+paramiko.util.MSG_SERVICE_REQUEST" class="py-name" href="#" onclick="return doclink('link-241', 'MSG_SERVICE_REQUEST', 'link-29');">MSG_SERVICE_REQUEST</a></tt><tt class="py-op">:</tt> <tt class="py-name">_parse_service_request</tt><tt class="py-op">,</tt> </tt>
+<a name="L418"></a><tt class="py-lineno">418</tt> <tt class="py-line"> <tt id="link-242" class="py-name"><a title="paramiko.auth_handler.MSG_SERVICE_ACCEPT
+paramiko.channel.MSG_SERVICE_ACCEPT
+paramiko.client.MSG_SERVICE_ACCEPT
+paramiko.common.MSG_SERVICE_ACCEPT
+paramiko.dsskey.MSG_SERVICE_ACCEPT
+paramiko.hostkeys.MSG_SERVICE_ACCEPT
+paramiko.kex_gex.MSG_SERVICE_ACCEPT
+paramiko.kex_group1.MSG_SERVICE_ACCEPT
+paramiko.packet.MSG_SERVICE_ACCEPT
+paramiko.pkey.MSG_SERVICE_ACCEPT
+paramiko.rsakey.MSG_SERVICE_ACCEPT
+paramiko.server.MSG_SERVICE_ACCEPT
+paramiko.sftp.MSG_SERVICE_ACCEPT
+paramiko.sftp_attr.MSG_SERVICE_ACCEPT
+paramiko.sftp_client.MSG_SERVICE_ACCEPT
+paramiko.sftp_file.MSG_SERVICE_ACCEPT
+paramiko.sftp_handle.MSG_SERVICE_ACCEPT
+paramiko.sftp_server.MSG_SERVICE_ACCEPT
+paramiko.sftp_si.MSG_SERVICE_ACCEPT
+paramiko.transport.MSG_SERVICE_ACCEPT
+paramiko.util.MSG_SERVICE_ACCEPT" class="py-name" href="#" onclick="return doclink('link-242', 'MSG_SERVICE_ACCEPT', 'link-79');">MSG_SERVICE_ACCEPT</a></tt><tt class="py-op">:</tt> <tt class="py-name">_parse_service_accept</tt><tt class="py-op">,</tt> </tt>
+<a name="L419"></a><tt class="py-lineno">419</tt> <tt class="py-line"> <tt id="link-243" class="py-name"><a title="paramiko.auth_handler.MSG_USERAUTH_REQUEST
+paramiko.channel.MSG_USERAUTH_REQUEST
+paramiko.client.MSG_USERAUTH_REQUEST
+paramiko.common.MSG_USERAUTH_REQUEST
+paramiko.dsskey.MSG_USERAUTH_REQUEST
+paramiko.hostkeys.MSG_USERAUTH_REQUEST
+paramiko.kex_gex.MSG_USERAUTH_REQUEST
+paramiko.kex_group1.MSG_USERAUTH_REQUEST
+paramiko.packet.MSG_USERAUTH_REQUEST
+paramiko.pkey.MSG_USERAUTH_REQUEST
+paramiko.rsakey.MSG_USERAUTH_REQUEST
+paramiko.server.MSG_USERAUTH_REQUEST
+paramiko.sftp.MSG_USERAUTH_REQUEST
+paramiko.sftp_attr.MSG_USERAUTH_REQUEST
+paramiko.sftp_client.MSG_USERAUTH_REQUEST
+paramiko.sftp_file.MSG_USERAUTH_REQUEST
+paramiko.sftp_handle.MSG_USERAUTH_REQUEST
+paramiko.sftp_server.MSG_USERAUTH_REQUEST
+paramiko.sftp_si.MSG_USERAUTH_REQUEST
+paramiko.transport.MSG_USERAUTH_REQUEST
+paramiko.util.MSG_USERAUTH_REQUEST" class="py-name" href="#" onclick="return doclink('link-243', 'MSG_USERAUTH_REQUEST', 'link-56');">MSG_USERAUTH_REQUEST</a></tt><tt class="py-op">:</tt> <tt class="py-name">_parse_userauth_request</tt><tt class="py-op">,</tt> </tt>
+<a name="L420"></a><tt class="py-lineno">420</tt> <tt class="py-line"> <tt id="link-244" class="py-name"><a title="paramiko.auth_handler.MSG_USERAUTH_SUCCESS
+paramiko.channel.MSG_USERAUTH_SUCCESS
+paramiko.client.MSG_USERAUTH_SUCCESS
+paramiko.common.MSG_USERAUTH_SUCCESS
+paramiko.dsskey.MSG_USERAUTH_SUCCESS
+paramiko.hostkeys.MSG_USERAUTH_SUCCESS
+paramiko.kex_gex.MSG_USERAUTH_SUCCESS
+paramiko.kex_group1.MSG_USERAUTH_SUCCESS
+paramiko.packet.MSG_USERAUTH_SUCCESS
+paramiko.pkey.MSG_USERAUTH_SUCCESS
+paramiko.rsakey.MSG_USERAUTH_SUCCESS
+paramiko.server.MSG_USERAUTH_SUCCESS
+paramiko.sftp.MSG_USERAUTH_SUCCESS
+paramiko.sftp_attr.MSG_USERAUTH_SUCCESS
+paramiko.sftp_client.MSG_USERAUTH_SUCCESS
+paramiko.sftp_file.MSG_USERAUTH_SUCCESS
+paramiko.sftp_handle.MSG_USERAUTH_SUCCESS
+paramiko.sftp_server.MSG_USERAUTH_SUCCESS
+paramiko.sftp_si.MSG_USERAUTH_SUCCESS
+paramiko.transport.MSG_USERAUTH_SUCCESS
+paramiko.util.MSG_USERAUTH_SUCCESS" class="py-name" href="#" onclick="return doclink('link-244', 'MSG_USERAUTH_SUCCESS', 'link-113');">MSG_USERAUTH_SUCCESS</a></tt><tt class="py-op">:</tt> <tt class="py-name">_parse_userauth_success</tt><tt class="py-op">,</tt> </tt>
+<a name="L421"></a><tt class="py-lineno">421</tt> <tt class="py-line"> <tt id="link-245" class="py-name"><a title="paramiko.auth_handler.MSG_USERAUTH_FAILURE
+paramiko.channel.MSG_USERAUTH_FAILURE
+paramiko.client.MSG_USERAUTH_FAILURE
+paramiko.common.MSG_USERAUTH_FAILURE
+paramiko.dsskey.MSG_USERAUTH_FAILURE
+paramiko.hostkeys.MSG_USERAUTH_FAILURE
+paramiko.kex_gex.MSG_USERAUTH_FAILURE
+paramiko.kex_group1.MSG_USERAUTH_FAILURE
+paramiko.packet.MSG_USERAUTH_FAILURE
+paramiko.pkey.MSG_USERAUTH_FAILURE
+paramiko.rsakey.MSG_USERAUTH_FAILURE
+paramiko.server.MSG_USERAUTH_FAILURE
+paramiko.sftp.MSG_USERAUTH_FAILURE
+paramiko.sftp_attr.MSG_USERAUTH_FAILURE
+paramiko.sftp_client.MSG_USERAUTH_FAILURE
+paramiko.sftp_file.MSG_USERAUTH_FAILURE
+paramiko.sftp_handle.MSG_USERAUTH_FAILURE
+paramiko.sftp_server.MSG_USERAUTH_FAILURE
+paramiko.sftp_si.MSG_USERAUTH_FAILURE
+paramiko.transport.MSG_USERAUTH_FAILURE
+paramiko.util.MSG_USERAUTH_FAILURE" class="py-name" href="#" onclick="return doclink('link-245', 'MSG_USERAUTH_FAILURE', 'link-117');">MSG_USERAUTH_FAILURE</a></tt><tt class="py-op">:</tt> <tt class="py-name">_parse_userauth_failure</tt><tt class="py-op">,</tt> </tt>
+<a name="L422"></a><tt class="py-lineno">422</tt> <tt class="py-line"> <tt id="link-246" class="py-name" targets="Variable paramiko.auth_handler.MSG_USERAUTH_BANNER=paramiko.auth_handler-module.html#MSG_USERAUTH_BANNER,Variable paramiko.channel.MSG_USERAUTH_BANNER=paramiko.channel-module.html#MSG_USERAUTH_BANNER,Variable paramiko.client.MSG_USERAUTH_BANNER=paramiko.client-module.html#MSG_USERAUTH_BANNER,Variable paramiko.common.MSG_USERAUTH_BANNER=paramiko.common-module.html#MSG_USERAUTH_BANNER,Variable paramiko.dsskey.MSG_USERAUTH_BANNER=paramiko.dsskey-module.html#MSG_USERAUTH_BANNER,Variable paramiko.hostkeys.MSG_USERAUTH_BANNER=paramiko.hostkeys-module.html#MSG_USERAUTH_BANNER,Variable paramiko.kex_gex.MSG_USERAUTH_BANNER=paramiko.kex_gex-module.html#MSG_USERAUTH_BANNER,Variable paramiko.kex_group1.MSG_USERAUTH_BANNER=paramiko.kex_group1-module.html#MSG_USERAUTH_BANNER,Variable paramiko.packet.MSG_USERAUTH_BANNER=paramiko.packet-module.html#MSG_USERAUTH_BANNER,Variable paramiko.pkey.MSG_USERAUTH_BANNER=paramiko.pkey-module.html#MSG_USERAUTH_BANNER,Variable paramiko.rsakey.MSG_USERAUTH_BANNER=paramiko.rsakey-module.html#MSG_USERAUTH_BANNER,Variable paramiko.server.MSG_USERAUTH_BANNER=paramiko.server-module.html#MSG_USERAUTH_BANNER,Variable paramiko.sftp.MSG_USERAUTH_BANNER=paramiko.sftp-module.html#MSG_USERAUTH_BANNER,Variable paramiko.sftp_attr.MSG_USERAUTH_BANNER=paramiko.sftp_attr-module.html#MSG_USERAUTH_BANNER,Variable paramiko.sftp_client.MSG_USERAUTH_BANNER=paramiko.sftp_client-module.html#MSG_USERAUTH_BANNER,Variable paramiko.sftp_file.MSG_USERAUTH_BANNER=paramiko.sftp_file-module.html#MSG_USERAUTH_BANNER,Variable paramiko.sftp_handle.MSG_USERAUTH_BANNER=paramiko.sftp_handle-module.html#MSG_USERAUTH_BANNER,Variable paramiko.sftp_server.MSG_USERAUTH_BANNER=paramiko.sftp_server-module.html#MSG_USERAUTH_BANNER,Variable paramiko.sftp_si.MSG_USERAUTH_BANNER=paramiko.sftp_si-module.html#MSG_USERAUTH_BANNER,Variable paramiko.transport.MSG_USERAUTH_BANNER=paramiko.transport-module.html#MSG_USERAUTH_BANNER,Variable paramiko.util.MSG_USERAUTH_BANNER=paramiko.util-module.html#MSG_USERAUTH_BANNER"><a title="paramiko.auth_handler.MSG_USERAUTH_BANNER
+paramiko.channel.MSG_USERAUTH_BANNER
+paramiko.client.MSG_USERAUTH_BANNER
+paramiko.common.MSG_USERAUTH_BANNER
+paramiko.dsskey.MSG_USERAUTH_BANNER
+paramiko.hostkeys.MSG_USERAUTH_BANNER
+paramiko.kex_gex.MSG_USERAUTH_BANNER
+paramiko.kex_group1.MSG_USERAUTH_BANNER
+paramiko.packet.MSG_USERAUTH_BANNER
+paramiko.pkey.MSG_USERAUTH_BANNER
+paramiko.rsakey.MSG_USERAUTH_BANNER
+paramiko.server.MSG_USERAUTH_BANNER
+paramiko.sftp.MSG_USERAUTH_BANNER
+paramiko.sftp_attr.MSG_USERAUTH_BANNER
+paramiko.sftp_client.MSG_USERAUTH_BANNER
+paramiko.sftp_file.MSG_USERAUTH_BANNER
+paramiko.sftp_handle.MSG_USERAUTH_BANNER
+paramiko.sftp_server.MSG_USERAUTH_BANNER
+paramiko.sftp_si.MSG_USERAUTH_BANNER
+paramiko.transport.MSG_USERAUTH_BANNER
+paramiko.util.MSG_USERAUTH_BANNER" class="py-name" href="#" onclick="return doclink('link-246', 'MSG_USERAUTH_BANNER', 'link-246');">MSG_USERAUTH_BANNER</a></tt><tt class="py-op">:</tt> <tt class="py-name">_parse_userauth_banner</tt><tt class="py-op">,</tt> </tt>
+<a name="L423"></a><tt class="py-lineno">423</tt> <tt class="py-line"> <tt id="link-247" class="py-name"><a title="paramiko.auth_handler.MSG_USERAUTH_INFO_REQUEST
+paramiko.channel.MSG_USERAUTH_INFO_REQUEST
+paramiko.client.MSG_USERAUTH_INFO_REQUEST
+paramiko.common.MSG_USERAUTH_INFO_REQUEST
+paramiko.dsskey.MSG_USERAUTH_INFO_REQUEST
+paramiko.hostkeys.MSG_USERAUTH_INFO_REQUEST
+paramiko.kex_gex.MSG_USERAUTH_INFO_REQUEST
+paramiko.kex_group1.MSG_USERAUTH_INFO_REQUEST
+paramiko.packet.MSG_USERAUTH_INFO_REQUEST
+paramiko.pkey.MSG_USERAUTH_INFO_REQUEST
+paramiko.rsakey.MSG_USERAUTH_INFO_REQUEST
+paramiko.server.MSG_USERAUTH_INFO_REQUEST
+paramiko.sftp.MSG_USERAUTH_INFO_REQUEST
+paramiko.sftp_attr.MSG_USERAUTH_INFO_REQUEST
+paramiko.sftp_client.MSG_USERAUTH_INFO_REQUEST
+paramiko.sftp_file.MSG_USERAUTH_INFO_REQUEST
+paramiko.sftp_handle.MSG_USERAUTH_INFO_REQUEST
+paramiko.sftp_server.MSG_USERAUTH_INFO_REQUEST
+paramiko.sftp_si.MSG_USERAUTH_INFO_REQUEST
+paramiko.transport.MSG_USERAUTH_INFO_REQUEST
+paramiko.util.MSG_USERAUTH_INFO_REQUEST" class="py-name" href="#" onclick="return doclink('link-247', 'MSG_USERAUTH_INFO_REQUEST', 'link-129');">MSG_USERAUTH_INFO_REQUEST</a></tt><tt class="py-op">:</tt> <tt class="py-name">_parse_userauth_info_request</tt><tt class="py-op">,</tt> </tt>
+<a name="L424"></a><tt class="py-lineno">424</tt> <tt class="py-line"> <tt id="link-248" class="py-name"><a title="paramiko.auth_handler.MSG_USERAUTH_INFO_RESPONSE
+paramiko.channel.MSG_USERAUTH_INFO_RESPONSE
+paramiko.client.MSG_USERAUTH_INFO_RESPONSE
+paramiko.common.MSG_USERAUTH_INFO_RESPONSE
+paramiko.dsskey.MSG_USERAUTH_INFO_RESPONSE
+paramiko.hostkeys.MSG_USERAUTH_INFO_RESPONSE
+paramiko.kex_gex.MSG_USERAUTH_INFO_RESPONSE
+paramiko.kex_group1.MSG_USERAUTH_INFO_RESPONSE
+paramiko.packet.MSG_USERAUTH_INFO_RESPONSE
+paramiko.pkey.MSG_USERAUTH_INFO_RESPONSE
+paramiko.rsakey.MSG_USERAUTH_INFO_RESPONSE
+paramiko.server.MSG_USERAUTH_INFO_RESPONSE
+paramiko.sftp.MSG_USERAUTH_INFO_RESPONSE
+paramiko.sftp_attr.MSG_USERAUTH_INFO_RESPONSE
+paramiko.sftp_client.MSG_USERAUTH_INFO_RESPONSE
+paramiko.sftp_file.MSG_USERAUTH_INFO_RESPONSE
+paramiko.sftp_handle.MSG_USERAUTH_INFO_RESPONSE
+paramiko.sftp_server.MSG_USERAUTH_INFO_RESPONSE
+paramiko.sftp_si.MSG_USERAUTH_INFO_RESPONSE
+paramiko.transport.MSG_USERAUTH_INFO_RESPONSE
+paramiko.util.MSG_USERAUTH_INFO_RESPONSE" class="py-name" href="#" onclick="return doclink('link-248', 'MSG_USERAUTH_INFO_RESPONSE', 'link-230');">MSG_USERAUTH_INFO_RESPONSE</a></tt><tt class="py-op">:</tt> <tt class="py-name">_parse_userauth_info_response</tt><tt class="py-op">,</tt> </tt>
+<a name="L425"></a><tt class="py-lineno">425</tt> <tt class="py-line"> <tt class="py-op">}</tt> </tt>
+</div><a name="L426"></a><tt class="py-lineno">426</tt> <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<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 Jul 6 18:30:36 2008
+ </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.ber-module.html b/docs/paramiko.ber-module.html
new file mode 100644
index 0000000..08a43d4
--- /dev/null
+++ b/docs/paramiko.ber-module.html
@@ -0,0 +1,126 @@
+<?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.ber</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> ::
+ Module&nbsp;ber
+ </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.ber-module.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module ber</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.ber-pysrc.html">source&nbsp;code</a></span></p>
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></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">Classes</span></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.ber.BERException-class.html" class="summary-name">BERException</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.ber.BER-class.html" class="summary-name">BER</a><br />
+ Robey's tiny little attempt at a BER decoder.
+ </td>
+ </tr>
+</table>
+<!-- ==================== 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 Jul 6 18:30:26 2008
+ </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.ber-pysrc.html b/docs/paramiko.ber-pysrc.html
new file mode 100644
index 0000000..d6d4e84
--- /dev/null
+++ b/docs/paramiko.ber-pysrc.html
@@ -0,0 +1,238 @@
+<?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.ber</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> ::
+ Module&nbsp;ber
+ </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.ber-pysrc.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</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="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>
+<a name="L22"></a><tt class="py-lineno"> 22</tt> <tt class="py-line"> </tt>
+<a name="BERException"></a><div id="BERException-def"><a name="L23"></a><tt class="py-lineno"> 23</tt> <a class="py-toggle" href="#" id="BERException-toggle" onclick="return toggle('BERException');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.ber.BERException-class.html">BERException</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="BERException-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="BERException-expanded"><a name="L24"></a><tt class="py-lineno"> 24</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+</div><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>
+<a name="BER"></a><div id="BER-def"><a name="L27"></a><tt class="py-lineno"> 27</tt> <a class="py-toggle" href="#" id="BER-toggle" onclick="return toggle('BER');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.ber.BER-class.html">BER</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="BER-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="BER-expanded"><a name="L28"></a><tt class="py-lineno"> 28</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L29"></a><tt class="py-lineno"> 29</tt> <tt class="py-line"><tt class="py-docstring"> Robey's tiny little attempt at a BER decoder.</tt> </tt>
+<a name="L30"></a><tt class="py-lineno"> 30</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L31"></a><tt class="py-lineno"> 31</tt> <tt class="py-line"> </tt>
+<a name="BER.__init__"></a><div id="BER.__init__-def"><a name="L32"></a><tt class="py-lineno"> 32</tt> <a class="py-toggle" href="#" id="BER.__init__-toggle" onclick="return toggle('BER.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.ber.BER-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">content</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="BER.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BER.__init__-expanded"><a name="L33"></a><tt class="py-lineno"> 33</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">content</tt> </tt>
+<a name="L34"></a><tt class="py-lineno"> 34</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">0</tt> </tt>
+</div><a name="L35"></a><tt class="py-lineno"> 35</tt> <tt class="py-line"> </tt>
+<a name="BER.__str__"></a><div id="BER.__str__-def"><a name="L36"></a><tt class="py-lineno"> 36</tt> <a class="py-toggle" href="#" id="BER.__str__-toggle" onclick="return toggle('BER.__str__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.ber.BER-class.html#__str__">__str__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="BER.__str__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BER.__str__-expanded"><a name="L37"></a><tt class="py-lineno"> 37</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">content</tt> </tt>
+</div><a name="L38"></a><tt class="py-lineno"> 38</tt> <tt class="py-line"> </tt>
+<a name="BER.__repr__"></a><div id="BER.__repr__-def"><a name="L39"></a><tt class="py-lineno"> 39</tt> <a class="py-toggle" href="#" id="BER.__repr__-toggle" onclick="return toggle('BER.__repr__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.ber.BER-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="BER.__repr__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BER.__repr__-expanded"><a name="L40"></a><tt class="py-lineno"> 40</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">'BER(\''</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">content</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-string">'\')'</tt> </tt>
+</div><a name="L41"></a><tt class="py-lineno"> 41</tt> <tt class="py-line"> </tt>
+<a name="BER.decode"></a><div id="BER.decode-def"><a name="L42"></a><tt class="py-lineno"> 42</tt> <a class="py-toggle" href="#" id="BER.decode-toggle" onclick="return toggle('BER.decode');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.ber.BER-class.html#decode">decode</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="BER.decode-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BER.decode-expanded"><a name="L43"></a><tt class="py-lineno"> 43</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-1" class="py-name" targets="Method paramiko.ber.BER.decode_next()=paramiko.ber.BER-class.html#decode_next"><a title="paramiko.ber.BER.decode_next" class="py-name" href="#" onclick="return doclink('link-1', 'decode_next', 'link-1');">decode_next</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"> </tt>
+<a name="BER.decode_next"></a><div id="BER.decode_next-def"><a name="L45"></a><tt class="py-lineno"> 45</tt> <a class="py-toggle" href="#" id="BER.decode_next-toggle" onclick="return toggle('BER.decode_next');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.ber.BER-class.html#decode_next">decode_next</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="BER.decode_next-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BER.decode_next-expanded"><a name="L46"></a><tt class="py-lineno"> 46</tt> <tt 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="L47"></a><tt class="py-lineno"> 47</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
+<a name="L48"></a><tt class="py-lineno"> 48</tt> <tt class="py-line"> <tt class="py-name">ident</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="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="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>
+<a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"> <tt class="py-name">ident</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">ident</tt> <tt class="py-op">&lt;&lt;</tt> <tt class="py-number">7</tt><tt class="py-op">)</tt> <tt class="py-op">|</tt> <tt class="py-op">(</tt><tt class="py-name">t</tt> <tt class="py-op">&amp;</tt> <tt class="py-number">0x7f</tt><tt class="py-op">)</tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</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">t</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="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
+<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="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="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="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="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="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="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>
+</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>
+<a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-8" class="py-name" targets="Class paramiko.ber.BER=paramiko.ber.BER-class.html"><a title="paramiko.ber.BER" class="py-name" href="#" onclick="return doclink('link-8', 'BER', 'link-8');">BER</a></tt><tt class="py-op">(</tt><tt class="py-name">data</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">while</tt> <tt class="py-name">True</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">x</tt> <tt class="py-op">=</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-9" class="py-name"><a title="paramiko.ber.BER.decode_next" class="py-name" href="#" onclick="return doclink('link-9', 'decode_next', 'link-1');">decode_next</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-keyword">if</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="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
+<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-name">append</tt><tt class="py-op">(</tt><tt class="py-name">x</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">return</tt> <tt class="py-name">out</tt> </tt>
+</div><a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"> <tt id="link-10" class="py-name"><a title="paramiko.ber.BER.decode_sequence" class="py-name" href="#" onclick="return doclink('link-10', 'decode_sequence', 'link-4');">decode_sequence</a></tt> <tt class="py-op">=</tt> <tt class="py-name">staticmethod</tt><tt class="py-op">(</tt><tt id="link-11" class="py-name"><a title="paramiko.ber.BER.decode_sequence" class="py-name" href="#" onclick="return doclink('link-11', 'decode_sequence', 'link-4');">decode_sequence</a></tt><tt class="py-op">)</tt> </tt>
+<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="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>
+<a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"> <tt class="py-keyword">else</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 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">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="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">content</tt> <tt class="py-op">+=</tt> <tt class="py-name">val</tt> </tt>
+</div><a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line"> </tt>
+<a name="BER.encode"></a><div id="BER.encode-def"><a name="L109"></a><tt class="py-lineno">109</tt> <a class="py-toggle" href="#" id="BER.encode-toggle" onclick="return toggle('BER.encode');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.ber.BER-class.html#encode">encode</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="BER.encode-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BER.encode-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">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">bool</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">if</tt> <tt class="py-name">x</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 id="link-14" class="py-name" targets="Method paramiko.ber.BER.encode_tlv()=paramiko.ber.BER-class.html#encode_tlv"><a title="paramiko.ber.BER.encode_tlv" class="py-name" href="#" onclick="return doclink('link-14', 'encode_tlv', 'link-14');">encode_tlv</a></tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-string">'\xff'</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">self</tt><tt class="py-op">.</tt><tt id="link-15" class="py-name"><a title="paramiko.ber.BER.encode_tlv" class="py-name" href="#" onclick="return doclink('link-15', 'encode_tlv', 'link-14');">encode_tlv</a></tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-string">'\x00'</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">elif</tt> <tt class="py-op">(</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">int</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</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">long</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">self</tt><tt class="py-op">.</tt><tt id="link-16" class="py-name"><a title="paramiko.ber.BER.encode_tlv" class="py-name" href="#" onclick="return doclink('link-16', 'encode_tlv', 'link-14');">encode_tlv</a></tt><tt class="py-op">(</tt><tt class="py-number">2</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-0');">util</a></tt><tt class="py-op">.</tt><tt id="link-18" class="py-name"><a title="paramiko.util.deflate_long" class="py-name" href="#" onclick="return doclink('link-18', 'deflate_long', 'link-13');">deflate_long</a></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="L117"></a><tt class="py-lineno">117</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">x</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="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-19" class="py-name"><a title="paramiko.ber.BER.encode_tlv" class="py-name" href="#" onclick="return doclink('link-19', 'encode_tlv', 'link-14');">encode_tlv</a></tt><tt class="py-op">(</tt><tt class="py-number">4</tt><tt class="py-op">,</tt> <tt class="py-name">x</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">elif</tt> <tt class="py-op">(</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 class="py-keyword">or</tt> <tt class="py-op">(</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">tuple</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 id="link-20" class="py-name"><a title="paramiko.ber.BER.encode_tlv" class="py-name" href="#" onclick="return doclink('link-20', 'encode_tlv', 'link-14');">encode_tlv</a></tt><tt class="py-op">(</tt><tt class="py-number">0x30</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-21" class="py-name" targets="Static Method paramiko.ber.BER.encode_sequence()=paramiko.ber.BER-class.html#encode_sequence"><a title="paramiko.ber.BER.encode_sequence" class="py-name" href="#" onclick="return doclink('link-21', 'encode_sequence', 'link-21');">encode_sequence</a></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="L121"></a><tt class="py-lineno">121</tt> <tt class="py-line"> <tt class="py-keyword">else</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">raise</tt> <tt id="link-22" class="py-name"><a title="paramiko.ber.BERException" class="py-name" href="#" onclick="return doclink('link-22', 'BERException', 'link-7');">BERException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Unknown type for encoding: %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">repr</tt><tt class="py-op">(</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-op">)</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="BER.encode_sequence"></a><div id="BER.encode_sequence-def"><a name="L124"></a><tt class="py-lineno">124</tt> <a class="py-toggle" href="#" id="BER.encode_sequence-toggle" onclick="return toggle('BER.encode_sequence');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.ber.BER-class.html#encode_sequence">encode_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.encode_sequence-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BER.encode_sequence-expanded"><a name="L125"></a><tt class="py-lineno">125</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-23" class="py-name"><a title="paramiko.ber.BER" class="py-name" href="#" onclick="return doclink('link-23', 'BER', 'link-8');">BER</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-keyword">for</tt> <tt class="py-name">item</tt> <tt class="py-keyword">in</tt> <tt class="py-name">data</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">b</tt><tt class="py-op">.</tt><tt id="link-24" 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-24', 'encode', 'link-24');">encode</a></tt><tt class="py-op">(</tt><tt class="py-name">item</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">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="L129"></a><tt class="py-lineno">129</tt> <tt class="py-line"> <tt id="link-25" class="py-name"><a title="paramiko.ber.BER.encode_sequence" class="py-name" href="#" onclick="return doclink('link-25', 'encode_sequence', 'link-21');">encode_sequence</a></tt> <tt class="py-op">=</tt> <tt class="py-name">staticmethod</tt><tt class="py-op">(</tt><tt id="link-26" class="py-name"><a title="paramiko.ber.BER.encode_sequence" class="py-name" href="#" onclick="return doclink('link-26', 'encode_sequence', 'link-21');">encode_sequence</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L130"></a><tt class="py-lineno">130</tt> <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<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 Jul 6 18:30:36 2008
+ </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.ber.BER-class.html b/docs/paramiko.ber.BER-class.html
new file mode 100644
index 0000000..e376084
--- /dev/null
+++ b/docs/paramiko.ber.BER-class.html
@@ -0,0 +1,394 @@
+<?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.ber.BER</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.ber-module.html" onclick="show_private();">Module&nbsp;ber</a> ::
+ Class&nbsp;BER
+ </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.ber.BER-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class BER</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.ber-pysrc.html#BER">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+object --+
+ |
+ <strong class="uidshort">BER</strong>
+</pre>
+
+<hr />
+<p>Robey's tiny little attempt at a BER decoder.</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.ber.BER-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">content</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string"></code><code class="variable-quote">'</code></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.ber-pysrc.html#BER.__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 href="paramiko.ber.BER-class.html#__str__" class="summary-sig-name">__str__</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ str(x)</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.ber-pysrc.html#BER.__str__">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 href="paramiko.ber.BER-class.html#__repr__" class="summary-sig-name">__repr__</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ repr(x)</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.ber-pysrc.html#BER.__repr__">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="decode"></a><span class="summary-sig-name">decode</span>(<span class="summary-sig-arg">self</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.ber-pysrc.html#BER.decode">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="decode_next"></a><span class="summary-sig-name">decode_next</span>(<span class="summary-sig-arg">self</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.ber-pysrc.html#BER.decode_next">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="encode_tlv"></a><span class="summary-sig-name">encode_tlv</span>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">ident</span>,
+ <span class="summary-sig-arg">val</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.ber-pysrc.html#BER.encode_tlv">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="encode"></a><span class="summary-sig-name">encode</span>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">x</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.ber-pysrc.html#BER.encode">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>__getattribute__</code>,
+ <code>__hash__</code>,
+ <code>__new__</code>,
+ <code>__reduce__</code>,
+ <code>__reduce_ex__</code>,
+ <code>__setattr__</code>
+ </p>
+ </td>
+ </tr>
+</table>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></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">Static 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="decode_sequence"></a><span class="summary-sig-name">decode_sequence</span>(<span class="summary-sig-arg">data</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.ber-pysrc.html#BER.decode_sequence">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="encode_sequence"></a><span class="summary-sig-name">encode_sequence</span>(<span class="summary-sig-arg">data</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.ber-pysrc.html#BER.encode_sequence">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">content</span>=<span class="sig-default"><code class="variable-quote">'</code><code class="variable-string"></code><code class="variable-quote">'</code></span>)</span>
+ <br /><em class="fname">(Constructor)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.ber-pysrc.html#BER.__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>
+<a name="__str__"></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">__str__</span>(<span class="sig-arg">self</span>)</span>
+ <br /><em class="fname">(Informal representation operator)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.ber-pysrc.html#BER.__str__">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>str(x)</p>
+ <dl class="fields">
+ <dt>Overrides:
+ object.__str__
+ <dd><em class="note">(inherited documentation)</em></dd>
+ </dt>
+ </dl>
+</td></tr></table>
+</div>
+<a name="__repr__"></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">__repr__</span>(<span class="sig-arg">self</span>)</span>
+ <br /><em class="fname">(Representation operator)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.ber-pysrc.html#BER.__repr__">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>repr(x)</p>
+ <dl class="fields">
+ <dt>Overrides:
+ object.__repr__
+ <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 Jul 6 18:30:30 2008
+ </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.ber.BERException-class.html b/docs/paramiko.ber.BERException-class.html
new file mode 100644
index 0000000..d1815d3
--- /dev/null
+++ b/docs/paramiko.ber.BERException-class.html
@@ -0,0 +1,165 @@
+<?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.ber.BERException</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.ber-module.html" onclick="show_private();">Module&nbsp;ber</a> ::
+ Class&nbsp;BERException
+ </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.ber.BERException-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class BERException</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.ber-pysrc.html#BERException">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+ object --+
+ |
+exceptions.BaseException --+
+ |
+ exceptions.Exception --+
+ |
+ <strong class="uidshort">BERException</strong>
+</pre>
+
+<hr />
+<!-- ==================== 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 colspan="2" class="summary">
+ <p class="indent-wrapped-lines"><b>Inherited from <code>exceptions.Exception</code></b>:
+ <code>__init__</code>,
+ <code>__new__</code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>exceptions.BaseException</code></b>:
+ <code>__delattr__</code>,
+ <code>__getattribute__</code>,
+ <code>__getitem__</code>,
+ <code>__reduce__</code>,
+ <code>__repr__</code>,
+ <code>__setattr__</code>,
+ <code>__setstate__</code>,
+ <code>__str__</code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__hash__</code>,
+ <code>__reduce_ex__</code>
+ </p>
+ </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>exceptions.BaseException</code></b>:
+ <code>args</code>,
+ <code>message</code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__class__</code>
+ </p>
+ </td>
+ </tr>
+</table>
+<!-- ==================== 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 Jul 6 18:30:30 2008
+ </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.buffered_pipe-module.html b/docs/paramiko.buffered_pipe-module.html
new file mode 100644
index 0000000..b427eaa
--- /dev/null
+++ b/docs/paramiko.buffered_pipe-module.html
@@ -0,0 +1,136 @@
+<?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.buffered_pipe</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> ::
+ Module&nbsp;buffered_pipe
+ </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.buffered_pipe-module.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module buffered_pipe</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.buffered_pipe-pysrc.html">source&nbsp;code</a></span></p>
+<p>Attempt to generalize the &quot;feeder&quot; part of a Channel: an
+ object which can be read from and closed, but is reading from a buffer
+ fed by another thread. The read operations are blocking and can have a
+ timeout set.</p>
+
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></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">Classes</span></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.buffered_pipe.PipeTimeout-class.html" class="summary-name">PipeTimeout</a><br />
+ Indicates that a timeout was reached on a read from a <a
+ href="paramiko.buffered_pipe.BufferedPipe-class.html"
+ class="link">BufferedPipe</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.buffered_pipe.BufferedPipe-class.html" class="summary-name">BufferedPipe</a><br />
+ A buffer that obeys normal read (with timeout) &amp; close
+ semantics for a file or socket, but is fed data from another
+ thread.
+ </td>
+ </tr>
+</table>
+<!-- ==================== 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 Jul 6 18:30:26 2008
+ </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.buffered_pipe-pysrc.html b/docs/paramiko.buffered_pipe-pysrc.html
new file mode 100644
index 0000000..4fed6e8
--- /dev/null
+++ b/docs/paramiko.buffered_pipe-pysrc.html
@@ -0,0 +1,323 @@
+<?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.buffered_pipe</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> ::
+ Module&nbsp;buffered_pipe
+ </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.buffered_pipe-pysrc.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</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="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>
+<a name="L22"></a><tt class="py-lineno"> 22</tt> <tt class="py-line"><tt class="py-docstring">read operations are blocking and can have a timeout set.</tt> </tt>
+<a name="L23"></a><tt class="py-lineno"> 23</tt> <tt class="py-line"><tt class="py-docstring">"""</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">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">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>
+<a name="L29"></a><tt class="py-lineno"> 29</tt> <tt class="py-line"> </tt>
+<a name="PipeTimeout"></a><div id="PipeTimeout-def"><a name="L30"></a><tt class="py-lineno"> 30</tt> <a class="py-toggle" href="#" id="PipeTimeout-toggle" onclick="return toggle('PipeTimeout');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.buffered_pipe.PipeTimeout-class.html">PipeTimeout</a> <tt class="py-op">(</tt><tt class="py-base-class">IOError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="PipeTimeout-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="PipeTimeout-expanded"><a name="L31"></a><tt class="py-lineno"> 31</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L32"></a><tt class="py-lineno"> 32</tt> <tt class="py-line"><tt class="py-docstring"> Indicates that a timeout was reached on a read from a L{BufferedPipe}.</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-keyword">pass</tt> </tt>
+</div><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="BufferedPipe"></a><div id="BufferedPipe-def"><a name="L37"></a><tt class="py-lineno"> 37</tt> <a class="py-toggle" href="#" id="BufferedPipe-toggle" onclick="return toggle('BufferedPipe');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.buffered_pipe.BufferedPipe-class.html">BufferedPipe</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="BufferedPipe-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="BufferedPipe-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"> A buffer that obeys normal read (with timeout) &amp; close semantics for a</tt> </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</tt> <tt class="py-line"><tt class="py-docstring"> file or socket, but is fed data from another thread. This is used by</tt> </tt>
+<a name="L41"></a><tt class="py-lineno"> 41</tt> <tt class="py-line"><tt class="py-docstring"> L{Channel}.</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>
+<a name="BufferedPipe.__init__"></a><div id="BufferedPipe.__init__-def"><a name="L44"></a><tt class="py-lineno"> 44</tt> <a class="py-toggle" href="#" id="BufferedPipe.__init__-toggle" onclick="return toggle('BufferedPipe.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.buffered_pipe.BufferedPipe-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="BufferedPipe.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BufferedPipe.__init__-expanded"><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 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="L46"></a><tt class="py-lineno"> 46</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">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="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">_event</tt> <tt class="py-op">=</tt> <tt class="py-name">None</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">_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">'B'</tt><tt class="py-op">)</tt> </tt>
+<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">_closed</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+</div><a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"> </tt>
+<a name="BufferedPipe.set_event"></a><div id="BufferedPipe.set_event-def"><a name="L51"></a><tt class="py-lineno"> 51</tt> <a class="py-toggle" href="#" id="BufferedPipe.set_event-toggle" onclick="return toggle('BufferedPipe.set_event');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.buffered_pipe.BufferedPipe-class.html#set_event">set_event</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-op">:</tt> </tt>
+</div><div id="BufferedPipe.set_event-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BufferedPipe.set_event-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"> Set an event on this buffer. When data is ready to be read (or the</tt> </tt>
+<a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line"><tt class="py-docstring"> buffer has been closed), the event will be set. When no data is</tt> </tt>
+<a name="L55"></a><tt class="py-lineno"> 55</tt> <tt class="py-line"><tt class="py-docstring"> ready, the event will be cleared.</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-docstring"> @param event: the event to set/clear</tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"><tt class="py-docstring"> @type event: Event</tt> </tt>
+<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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_event</tt> <tt class="py-op">=</tt> <tt class="py-name">event</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">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">&gt;</tt> <tt class="py-number">0</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">event</tt><tt class="py-op">.</tt><tt id="link-0" 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-0', 'set', 'link-0');">set</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">else</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">event</tt><tt class="py-op">.</tt><tt id="link-1" 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-1', 'clear', 'link-1');">clear</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="BufferedPipe.feed"></a><div id="BufferedPipe.feed-def"><a name="L66"></a><tt class="py-lineno"> 66</tt> <a class="py-toggle" href="#" id="BufferedPipe.feed-toggle" onclick="return toggle('BufferedPipe.feed');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.buffered_pipe.BufferedPipe-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">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="BufferedPipe.feed-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BufferedPipe.feed-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"> Feed new data into this pipe. This method is assumed to be called</tt> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"><tt class="py-docstring"> from a separate thread, so synchronization is done.</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-docstring"> @param data: the data to add</tt> </tt>
+<a name="L72"></a><tt class="py-lineno"> 72</tt> <tt class="py-line"><tt class="py-docstring"> @type data: str</tt> </tt>
+<a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"><tt class="py-docstring"> """</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">_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="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">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>
+<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">_event</tt><tt class="py-op">.</tt><tt id="link-2" 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-2', 'set', 'link-0');">set</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_buffer</tt><tt class="py-op">.</tt><tt class="py-name">fromstring</tt><tt class="py-op">(</tt><tt class="py-name">data</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">self</tt><tt class="py-op">.</tt><tt class="py-name">_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="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"> <tt class="py-keyword">finally</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">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="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"> </tt>
+<a name="BufferedPipe.read_ready"></a><div id="BufferedPipe.read_ready-def"><a name="L83"></a><tt class="py-lineno"> 83</tt> <a class="py-toggle" href="#" id="BufferedPipe.read_ready-toggle" onclick="return toggle('BufferedPipe.read_ready');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.buffered_pipe.BufferedPipe-class.html#read_ready">read_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="BufferedPipe.read_ready-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BufferedPipe.read_ready-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 true if data is buffered and ready to be read from this</tt> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"><tt class="py-docstring"> feeder. A C{False} result does not mean that the feeder has closed;</tt> </tt>
+<a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"><tt class="py-docstring"> it means you may need to wait before more data arrives.</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-docstring"> @return: C{True} if a L{read} call would immediately return at least</tt> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"><tt class="py-docstring"> one byte; C{False} otherwise.</tt> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: bool</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-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="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-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">==</tt> <tt class="py-number">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-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">return</tt> <tt class="py-name">True</tt> </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"> <tt class="py-keyword">finally</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 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="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"> </tt>
+<a name="BufferedPipe.read"></a><div id="BufferedPipe.read-def"><a name="L101"></a><tt class="py-lineno">101</tt> <a class="py-toggle" href="#" id="BufferedPipe.read-toggle" onclick="return toggle('BufferedPipe.read');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.buffered_pipe.BufferedPipe-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">nbytes</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="BufferedPipe.read-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BufferedPipe.read-expanded"><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-docstring"> Read data from the pipe. The return value is a string representing</tt> </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"><tt class="py-docstring"> the data received. The maximum amount of data to be received at once</tt> </tt>
+<a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"><tt class="py-docstring"> is specified by C{nbytes}. If a string of length zero is returned,</tt> </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"><tt class="py-docstring"> the pipe has been closed.</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"> The optional C{timeout} argument can be a nonnegative float expressing</tt> </tt>
+<a name="L109"></a><tt class="py-lineno">109</tt> <tt class="py-line"><tt class="py-docstring"> seconds, or C{None} for no timeout. If a float is given, a</tt> </tt>
+<a name="L110"></a><tt class="py-lineno">110</tt> <tt class="py-line"><tt class="py-docstring"> C{PipeTimeout} will be raised if the timeout period value has</tt> </tt>
+<a name="L111"></a><tt class="py-lineno">111</tt> <tt class="py-line"><tt class="py-docstring"> elapsed before any data arrives.</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"> @param nbytes: maximum number of bytes to read</tt> </tt>
+<a name="L114"></a><tt class="py-lineno">114</tt> <tt class="py-line"><tt class="py-docstring"> @type nbytes: int</tt> </tt>
+<a name="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"><tt class="py-docstring"> @param timeout: maximum seconds to wait (or C{None}, the default, to</tt> </tt>
+<a name="L116"></a><tt class="py-lineno">116</tt> <tt class="py-line"><tt class="py-docstring"> wait forever)</tt> </tt>
+<a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"><tt class="py-docstring"> @type timeout: float</tt> </tt>
+<a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"><tt class="py-docstring"> @return: data</tt> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: str</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"> @raise PipeTimeout: if a timeout was specified and no data was ready</tt> </tt>
+<a name="L122"></a><tt class="py-lineno">122</tt> <tt class="py-line"><tt class="py-docstring"> before that timeout</tt> </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L124"></a><tt class="py-lineno">124</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">=</tt> <tt class="py-string">''</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">_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="L126"></a><tt class="py-lineno">126</tt> <tt class="py-line"> <tt class="py-keyword">try</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-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>
+<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="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="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>
+<a name="L139"></a><tt class="py-lineno">139</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="L140"></a><tt class="py-lineno">140</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="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="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>
+<a name="L148"></a><tt class="py-lineno">148</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-5" 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-5', 'clear', 'link-1');">clear</a></tt><tt class="py-op">(</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">else</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">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-op">:</tt><tt class="py-name">nbytes</tt><tt class="py-op">]</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="L151"></a><tt class="py-lineno">151</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-name">nbytes</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">finally</tt><tt class="py-op">:</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">_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="L154"></a><tt class="py-lineno">154</tt> <tt class="py-line"> </tt>
+<a name="L155"></a><tt class="py-lineno">155</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">out</tt> </tt>
+</div><a name="L156"></a><tt class="py-lineno">156</tt> <tt class="py-line"> </tt>
+<a name="BufferedPipe.empty"></a><div id="BufferedPipe.empty-def"><a name="L157"></a><tt class="py-lineno">157</tt> <a class="py-toggle" href="#" id="BufferedPipe.empty-toggle" onclick="return toggle('BufferedPipe.empty');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.buffered_pipe.BufferedPipe-class.html#empty">empty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="BufferedPipe.empty-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BufferedPipe.empty-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"> Clear out the buffer and return all data that was in it.</tt> </tt>
+<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"> @return: any data that was in the buffer prior to clearing it out</tt> </tt>
+<a name="L162"></a><tt class="py-lineno">162</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: str</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-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-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="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">_buffer</tt><tt class="py-op">[</tt><tt class="py-op">:</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">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>
+<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">_event</tt><tt class="py-op">.</tt><tt id="link-6" 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-6', 'clear', 'link-1');">clear</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-keyword">return</tt> <tt class="py-name">out</tt> </tt>
+<a name="L171"></a><tt class="py-lineno">171</tt> <tt class="py-line"> <tt class="py-keyword">finally</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">_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="L173"></a><tt class="py-lineno">173</tt> <tt class="py-line"> </tt>
+<a name="BufferedPipe.close"></a><div id="BufferedPipe.close-def"><a name="L174"></a><tt class="py-lineno">174</tt> <a class="py-toggle" href="#" id="BufferedPipe.close-toggle" onclick="return toggle('BufferedPipe.close');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.buffered_pipe.BufferedPipe-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="BufferedPipe.close-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BufferedPipe.close-expanded"><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-docstring"> Close this pipe object. Future calls to L{read} after the buffer</tt> </tt>
+<a name="L177"></a><tt class="py-lineno">177</tt> <tt class="py-line"><tt class="py-docstring"> has been emptied will return immediately with an empty string.</tt> </tt>
+<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-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="L180"></a><tt class="py-lineno">180</tt> <tt class="py-line"> <tt class="py-keyword">try</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">_closed</tt> <tt class="py-op">=</tt> <tt class="py-name">True</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">_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="L183"></a><tt class="py-lineno">183</tt> <tt 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-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</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">_event</tt><tt class="py-op">.</tt><tt id="link-7" 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-7', 'set', 'link-0');">set</a></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-keyword">finally</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">_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="L187"></a><tt class="py-lineno">187</tt> <tt class="py-line"> </tt>
+<a name="BufferedPipe.__len__"></a><div id="BufferedPipe.__len__-def"><a name="L188"></a><tt class="py-lineno">188</tt> <a class="py-toggle" href="#" id="BufferedPipe.__len__-toggle" onclick="return toggle('BufferedPipe.__len__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.buffered_pipe.BufferedPipe-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="BufferedPipe.__len__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BufferedPipe.__len__-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"> Return the number of bytes buffered.</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"> @return: number of bytes bufferes</tt> </tt>
+<a name="L193"></a><tt class="py-lineno">193</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: int</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 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="L196"></a><tt class="py-lineno">196</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L197"></a><tt class="py-lineno">197</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">_buffer</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">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L199"></a><tt class="py-lineno">199</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="L200"></a><tt class="py-lineno">200</tt> <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<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 Jul 6 18:30:37 2008
+ </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.buffered_pipe.BufferedPipe-class.html b/docs/paramiko.buffered_pipe.BufferedPipe-class.html
new file mode 100644
index 0000000..97b4486
--- /dev/null
+++ b/docs/paramiko.buffered_pipe.BufferedPipe-class.html
@@ -0,0 +1,513 @@
+<?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.buffered_pipe.BufferedPipe</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.buffered_pipe-module.html" onclick="show_private();">Module&nbsp;buffered_pipe</a> ::
+ Class&nbsp;BufferedPipe
+ </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.buffered_pipe.BufferedPipe-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class BufferedPipe</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.buffered_pipe-pysrc.html#BufferedPipe">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+object --+
+ |
+ <strong class="uidshort">BufferedPipe</strong>
+</pre>
+
+<hr />
+<p>A buffer that obeys normal read (with timeout) &amp; close semantics
+ for a file or socket, but is fed data from another thread. This is used
+ by <a href="paramiko.Channel-class.html" class="link">Channel</a>.</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.buffered_pipe.BufferedPipe-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</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.buffered_pipe-pysrc.html#BufferedPipe.__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 href="paramiko.buffered_pipe.BufferedPipe-class.html#set_event" class="summary-sig-name">set_event</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">event</span>)</span><br />
+ Set an event on this buffer.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.buffered_pipe-pysrc.html#BufferedPipe.set_event">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 href="paramiko.buffered_pipe.BufferedPipe-class.html#feed" class="summary-sig-name">feed</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">data</span>)</span><br />
+ Feed new data into this pipe.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.buffered_pipe-pysrc.html#BufferedPipe.feed">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">bool</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.buffered_pipe.BufferedPipe-class.html#read_ready" class="summary-sig-name">read_ready</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Returns true if data is buffered and ready to be read from this
+ feeder.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.buffered_pipe-pysrc.html#BufferedPipe.read_ready">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">str</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.buffered_pipe.BufferedPipe-class.html#read" class="summary-sig-name">read</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">nbytes</span>,
+ <span class="summary-sig-arg">timeout</span>=<span class="summary-sig-default">None</span>)</span><br />
+ Read data from the pipe.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.buffered_pipe-pysrc.html#BufferedPipe.read">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">str</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.buffered_pipe.BufferedPipe-class.html#empty" class="summary-sig-name">empty</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Clear out the buffer and return all data that was in it.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.buffered_pipe-pysrc.html#BufferedPipe.empty">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 href="paramiko.buffered_pipe.BufferedPipe-class.html#close" class="summary-sig-name">close</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Close this pipe object.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.buffered_pipe-pysrc.html#BufferedPipe.close">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">int</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.buffered_pipe.BufferedPipe-class.html#__len__" class="summary-sig-name">__len__</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Return the number of bytes buffered.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.buffered_pipe-pysrc.html#BufferedPipe.__len__">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>__getattribute__</code>,
+ <code>__hash__</code>,
+ <code>__new__</code>,
+ <code>__reduce__</code>,
+ <code>__reduce_ex__</code>,
+ <code>__repr__</code>,
+ <code>__setattr__</code>,
+ <code>__str__</code>
+ </p>
+ </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>
+ <br /><em class="fname">(Constructor)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.buffered_pipe-pysrc.html#BufferedPipe.__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>
+<a name="set_event"></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">set_event</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">event</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.buffered_pipe-pysrc.html#BufferedPipe.set_event">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Set an event on this buffer. When data is ready to be read (or the
+ buffer has been closed), the event will be set. When no data is ready,
+ the event will be cleared.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>event</code></strong> (Event) - the event to set/clear</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="feed"></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">feed</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">data</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.buffered_pipe-pysrc.html#BufferedPipe.feed">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Feed new data into this pipe. This method is assumed to be called
+ from a separate thread, so synchronization is done.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>data</code></strong> (str) - the data to add</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="read_ready"></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">read_ready</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.buffered_pipe-pysrc.html#BufferedPipe.read_ready">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Returns true if data is buffered and ready to be read from this
+ feeder. A <code>False</code> result does not mean that the feeder has
+ closed; it means you may need to wait before more data arrives.</p>
+ <dl class="fields">
+ <dt>Returns: bool</dt>
+ <dd><code>True</code> if a <a
+ href="paramiko.buffered_pipe.BufferedPipe-class.html#read"
+ class="link">read</a> call would immediately return at least one
+ byte; <code>False</code> otherwise.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="read"></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">read</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">nbytes</span>,
+ <span class="sig-arg">timeout</span>=<span class="sig-default">None</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.buffered_pipe-pysrc.html#BufferedPipe.read">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Read data from the pipe. The return value is a string representing
+ the data received. The maximum amount of data to be received at once is
+ specified by <code>nbytes</code>. If a string of length zero is
+ returned, the pipe has been closed.</p>
+ <p>The optional <code>timeout</code> argument can be a nonnegative float
+ expressing seconds, or <code>None</code> for no timeout. If a float is
+ given, a <code>PipeTimeout</code> will be raised if the timeout period
+ value has elapsed before any data arrives.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>nbytes</code></strong> (int) - maximum number of bytes to read</li>
+ <li><strong class="pname"><code>timeout</code></strong> (float) - maximum seconds to wait (or <code>None</code>, the default, to
+ wait forever)</li>
+ </ul></dd>
+ <dt>Returns: str</dt>
+ <dd>data</dd>
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'><a href="paramiko.buffered_pipe.PipeTimeout-class.html">PipeTimeout</a></strong></code> - if a timeout was specified and no data was ready before that
+ timeout</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="empty"></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">empty</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.buffered_pipe-pysrc.html#BufferedPipe.empty">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Clear out the buffer and return all data that was in it.</p>
+ <dl class="fields">
+ <dt>Returns: str</dt>
+ <dd>any data that was in the buffer prior to clearing it out</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="close"></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">close</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.buffered_pipe-pysrc.html#BufferedPipe.close">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Close this pipe object. Future calls to <a
+ href="paramiko.buffered_pipe.BufferedPipe-class.html#read"
+ class="link">read</a> after the buffer has been emptied will return
+ immediately with an empty string.</p>
+ <dl class="fields">
+ </dl>
+</td></tr></table>
+</div>
+<a name="__len__"></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">__len__</span>(<span class="sig-arg">self</span>)</span>
+ <br /><em class="fname">(Length operator)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.buffered_pipe-pysrc.html#BufferedPipe.__len__">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Return the number of bytes buffered.</p>
+ <dl class="fields">
+ <dt>Returns: int</dt>
+ <dd>number of bytes bufferes</dd>
+ </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 Jul 6 18:30:30 2008
+ </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.buffered_pipe.PipeTimeout-class.html b/docs/paramiko.buffered_pipe.PipeTimeout-class.html
new file mode 100644
index 0000000..60ec323
--- /dev/null
+++ b/docs/paramiko.buffered_pipe.PipeTimeout-class.html
@@ -0,0 +1,182 @@
+<?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.buffered_pipe.PipeTimeout</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.buffered_pipe-module.html" onclick="show_private();">Module&nbsp;buffered_pipe</a> ::
+ Class&nbsp;PipeTimeout
+ </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.buffered_pipe.PipeTimeout-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class PipeTimeout</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.buffered_pipe-pysrc.html#PipeTimeout">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+ object --+
+ |
+exceptions.BaseException --+
+ |
+ exceptions.Exception --+
+ |
+ exceptions.StandardError --+
+ |
+ exceptions.EnvironmentError --+
+ |
+ exceptions.IOError --+
+ |
+ <strong class="uidshort">PipeTimeout</strong>
+</pre>
+
+<hr />
+<p>Indicates that a timeout was reached on a read from a <a
+ href="paramiko.buffered_pipe.BufferedPipe-class.html"
+ class="link">BufferedPipe</a>.</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 colspan="2" class="summary">
+ <p class="indent-wrapped-lines"><b>Inherited from <code>exceptions.IOError</code></b>:
+ <code>__init__</code>,
+ <code>__new__</code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>exceptions.EnvironmentError</code></b>:
+ <code>__reduce__</code>,
+ <code>__str__</code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>exceptions.BaseException</code></b>:
+ <code>__delattr__</code>,
+ <code>__getattribute__</code>,
+ <code>__getitem__</code>,
+ <code>__repr__</code>,
+ <code>__setattr__</code>,
+ <code>__setstate__</code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__hash__</code>,
+ <code>__reduce_ex__</code>
+ </p>
+ </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>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>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__class__</code>
+ </p>
+ </td>
+ </tr>
+</table>
+<!-- ==================== 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 Jul 6 18:30:30 2008
+ </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.channel-module.html b/docs/paramiko.channel-module.html
new file mode 100644
index 0000000..f8c74ce
--- /dev/null
+++ b/docs/paramiko.channel-module.html
@@ -0,0 +1,547 @@
+<?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.channel</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> ::
+ Module&nbsp;channel
+ </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.channel-module.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module channel</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.channel-pysrc.html">source&nbsp;code</a></span></p>
+<p>Abstraction for an SSH2 channel.</p>
+
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></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">Classes</span></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.channel.ChannelStderrFile-class.html" class="summary-name">ChannelStderrFile</a>
+ </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="MIN_PACKET_SIZE"></a><span class="summary-name">MIN_PACKET_SIZE</span> = <code title="1024">1024</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>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
+ <a name="AUTH_PARTIALLY_SUCCESSFUL"></a><span class="summary-name">AUTH_PARTIALLY_SUCCESSFUL</span> = <code title="1">1</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_SUCCESSFUL"></a><span class="summary-name">AUTH_SUCCESSFUL</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 href="paramiko.channel-module.html#CONNECTION_FAILED_CODE" class="summary-name">CONNECTION_FAILED_CODE</a> = <code title="{1: 'Administratively prohibited',
+ 2: 'Connect failed',
+ 3: 'Unknown channel type',
+ 4: 'Resource shortage'}"><code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Administratively prohibited</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-op">:</code><code class="variable-ellipsis">...</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="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="DEBUG"></a><span class="summary-name">DEBUG</span> = <code title="10">10</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="DISCONNECT_AUTH_CANCELLED_BY_USER"></a><span class="summary-name">DISCONNECT_AUTH_CANCELLED_BY_USER</span> = <code title="13">13</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="DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE"></a><span class="summary-name">DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE</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="DISCONNECT_SERVICE_NOT_AVAILABLE"></a><span class="summary-name">DISCONNECT_SERVICE_NOT_AVAILABLE</span> = <code title="7">7</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="ERROR"></a><span class="summary-name">ERROR</span> = <code title="40">40</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="INFO"></a><span class="summary-name">INFO</span> = <code title="20">20</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="MSG_CHANNEL_CLOSE"></a><span class="summary-name">MSG_CHANNEL_CLOSE</span> = <code title="97">97</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="MSG_CHANNEL_DATA"></a><span class="summary-name">MSG_CHANNEL_DATA</span> = <code title="94">94</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="MSG_CHANNEL_EOF"></a><span class="summary-name">MSG_CHANNEL_EOF</span> = <code title="96">96</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="MSG_CHANNEL_EXTENDED_DATA"></a><span class="summary-name">MSG_CHANNEL_EXTENDED_DATA</span> = <code title="95">95</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="MSG_CHANNEL_FAILURE"></a><span class="summary-name">MSG_CHANNEL_FAILURE</span> = <code title="100">100</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="MSG_CHANNEL_OPEN"></a><span class="summary-name">MSG_CHANNEL_OPEN</span> = <code title="90">90</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="MSG_CHANNEL_OPEN_FAILURE"></a><span class="summary-name">MSG_CHANNEL_OPEN_FAILURE</span> = <code title="92">92</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="MSG_CHANNEL_OPEN_SUCCESS"></a><span class="summary-name">MSG_CHANNEL_OPEN_SUCCESS</span> = <code title="91">91</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="MSG_CHANNEL_REQUEST"></a><span class="summary-name">MSG_CHANNEL_REQUEST</span> = <code title="98">98</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="MSG_CHANNEL_SUCCESS"></a><span class="summary-name">MSG_CHANNEL_SUCCESS</span> = <code title="99">99</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="MSG_CHANNEL_WINDOW_ADJUST"></a><span class="summary-name">MSG_CHANNEL_WINDOW_ADJUST</span> = <code title="93">93</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="MSG_DEBUG"></a><span class="summary-name">MSG_DEBUG</span> = <code title="4">4</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="MSG_DISCONNECT"></a><span class="summary-name">MSG_DISCONNECT</span> = <code title="1">1</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="MSG_GLOBAL_REQUEST"></a><span class="summary-name">MSG_GLOBAL_REQUEST</span> = <code title="80">80</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="MSG_IGNORE"></a><span class="summary-name">MSG_IGNORE</span> = <code title="2">2</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="MSG_KEXINIT"></a><span class="summary-name">MSG_KEXINIT</span> = <code title="20">20</code>
+ </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.channel-module.html#MSG_NAMES" class="summary-name">MSG_NAMES</a> = <code title="{1: 'disconnect',
+ 2: 'ignore',
+ 3: 'unimplemented',
+ 4: 'debug',
+ 5: 'service-request',
+ 6: 'service-accept',
+ 20: 'kexinit',
+ 21: 'newkeys',
+..."><code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">disconnect</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">ignore</code><code class="variable-quote">'</code><code class="variable-op">, </code>3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">unimplemented</code><code class="variable-quote">'</code><code class="variable-op">,</code><code class="variable-ellipsis">...</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="MSG_NEWKEYS"></a><span class="summary-name">MSG_NEWKEYS</span> = <code title="21">21</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="MSG_REQUEST_FAILURE"></a><span class="summary-name">MSG_REQUEST_FAILURE</span> = <code title="82">82</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="MSG_REQUEST_SUCCESS"></a><span class="summary-name">MSG_REQUEST_SUCCESS</span> = <code title="81">81</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="MSG_SERVICE_ACCEPT"></a><span class="summary-name">MSG_SERVICE_ACCEPT</span> = <code title="6">6</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="MSG_SERVICE_REQUEST"></a><span class="summary-name">MSG_SERVICE_REQUEST</span> = <code title="5">5</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="MSG_UNIMPLEMENTED"></a><span class="summary-name">MSG_UNIMPLEMENTED</span> = <code title="3">3</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="MSG_USERAUTH_BANNER"></a><span class="summary-name">MSG_USERAUTH_BANNER</span> = <code title="53">53</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="MSG_USERAUTH_FAILURE"></a><span class="summary-name">MSG_USERAUTH_FAILURE</span> = <code title="51">51</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="MSG_USERAUTH_INFO_REQUEST"></a><span class="summary-name">MSG_USERAUTH_INFO_REQUEST</span> = <code title="60">60</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="MSG_USERAUTH_INFO_RESPONSE"></a><span class="summary-name">MSG_USERAUTH_INFO_RESPONSE</span> = <code title="61">61</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="MSG_USERAUTH_PK_OK"></a><span class="summary-name">MSG_USERAUTH_PK_OK</span> = <code title="60">60</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="MSG_USERAUTH_REQUEST"></a><span class="summary-name">MSG_USERAUTH_REQUEST</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="MSG_USERAUTH_SUCCESS"></a><span class="summary-name">MSG_USERAUTH_SUCCESS</span> = <code title="52">52</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="OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED"></a><span class="summary-name">OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED</span> = <code title="1">1</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="OPEN_FAILED_CONNECT_FAILED"></a><span class="summary-name">OPEN_FAILED_CONNECT_FAILED</span> = <code title="2">2</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="OPEN_FAILED_RESOURCE_SHORTAGE"></a><span class="summary-name">OPEN_FAILED_RESOURCE_SHORTAGE</span> = <code title="4">4</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="OPEN_FAILED_UNKNOWN_CHANNEL_TYPE"></a><span class="summary-name">OPEN_FAILED_UNKNOWN_CHANNEL_TYPE</span> = <code title="3">3</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="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="PY22"></a><span class="summary-name">PY22</span> = <code title="False">False</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="WARNING"></a><span class="summary-name">WARNING</span> = <code title="30">30</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>
+</table>
+<!-- ==================== VARIABLES DETAILS ==================== -->
+<a name="section-VariablesDetails"></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">Variables Details</span></td>
+</tr>
+</table>
+<a name="CONNECTION_FAILED_CODE"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">CONNECTION_FAILED_CODE</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Administratively prohibited</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Connect failed</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Unknown channel type</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Resource shortage</code><code class="variable-quote">'</code><code class="variable-group">}</code>
+</pre></td></tr></table>
+</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="MSG_NAMES"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">MSG_NAMES</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">disconnect</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">ignore</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">unimplemented</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">debug</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 5<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">service-request</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 6<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">service-accept</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 20<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">kexinit</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 21<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">newkeys</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+ </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 Jul 6 18:30:26 2008
+ </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.channel-pysrc.html b/docs/paramiko.channel-pysrc.html
new file mode 100644
index 0000000..614cab3
--- /dev/null
+++ b/docs/paramiko.channel-pysrc.html
@@ -0,0 +1,2083 @@
+<?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.channel</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> ::
+ Module&nbsp;channel
+ </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.channel-pysrc.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</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="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>
+<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">import</tt> <tt class="py-name">binascii</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">sys</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">time</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">socket</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">os</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.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="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-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>
+<a name="L32"></a><tt class="py-lineno"> 32</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-4" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-4', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-5" class="py-name" targets="Module paramiko.message=paramiko.message-module.html"><a title="paramiko.message" class="py-name" href="#" onclick="return doclink('link-5', 'message', 'link-5');">message</a></tt> <tt class="py-keyword">import</tt> <tt id="link-6" class="py-name" targets="Class paramiko.Message=paramiko.Message-class.html"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-6', 'Message', 'link-6');">Message</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-7" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-7', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-8" 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-8', 'ssh_exception', 'link-8');">ssh_exception</a></tt> <tt class="py-keyword">import</tt> <tt id="link-9" class="py-name" targets="Class paramiko.SSHException=paramiko.SSHException-class.html"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-9', 'SSHException', 'link-9');">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-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="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-11', 'file', 'link-11');">file</a></tt> <tt class="py-keyword">import</tt> <tt id="link-12" class="py-name" targets="Class paramiko.BufferedFile=paramiko.BufferedFile-class.html"><a title="paramiko.BufferedFile" class="py-name" href="#" onclick="return doclink('link-12', 'BufferedFile', 'link-12');">BufferedFile</a></tt> </tt>
+<a name="L35"></a><tt class="py-lineno"> 35</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-13" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-13', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-14" class="py-name" targets="Module paramiko.buffered_pipe=paramiko.buffered_pipe-module.html"><a title="paramiko.buffered_pipe" class="py-name" href="#" onclick="return doclink('link-14', 'buffered_pipe', 'link-14');">buffered_pipe</a></tt> <tt class="py-keyword">import</tt> <tt id="link-15" class="py-name" targets="Class paramiko.buffered_pipe.BufferedPipe=paramiko.buffered_pipe.BufferedPipe-class.html"><a title="paramiko.buffered_pipe.BufferedPipe" class="py-name" href="#" onclick="return doclink('link-15', 'BufferedPipe', 'link-15');">BufferedPipe</a></tt><tt class="py-op">,</tt> <tt id="link-16" 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-16', 'PipeTimeout', 'link-16');">PipeTimeout</a></tt> </tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-17" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-17', 'paramiko', 'link-0');">paramiko</a></tt> <tt class="py-keyword">import</tt> <tt id="link-18" class="py-name" targets="Module paramiko.pipe=paramiko.pipe-module.html"><a title="paramiko.pipe" class="py-name" href="#" onclick="return doclink('link-18', 'pipe', 'link-18');">pipe</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="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="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>
+</div><div id="Channel-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="Channel-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"> A secure tunnel across an SSH L{Transport}. A Channel is meant to behave</tt> </tt>
+<a name="L46"></a><tt class="py-lineno"> 46</tt> <tt class="py-line"><tt class="py-docstring"> like a socket, and has an API that should be indistinguishable from the</tt> </tt>
+<a name="L47"></a><tt class="py-lineno"> 47</tt> <tt class="py-line"><tt class="py-docstring"> python socket API.</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"> Because SSH2 has a windowing kind of flow control, if you stop reading data</tt> </tt>
+<a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"><tt class="py-docstring"> from a Channel and its buffer fills up, the server will be unable to send</tt> </tt>
+<a name="L51"></a><tt class="py-lineno"> 51</tt> <tt class="py-line"><tt class="py-docstring"> you any more data until you read some of it. (This won't affect other</tt> </tt>
+<a name="L52"></a><tt class="py-lineno"> 52</tt> <tt class="py-line"><tt class="py-docstring"> channels on the same transport -- all channels on a single transport are</tt> </tt>
+<a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"><tt class="py-docstring"> flow-controlled independently.) Similarly, if the server isn't reading</tt> </tt>
+<a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line"><tt class="py-docstring"> data you send, calls to L{send} may block, unless you set a timeout. This</tt> </tt>
+<a name="L55"></a><tt class="py-lineno"> 55</tt> <tt class="py-line"><tt class="py-docstring"> is exactly like a normal network socket, so it shouldn't be too surprising.</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="Channel.__init__"></a><div id="Channel.__init__-def"><a name="L58"></a><tt class="py-lineno"> 58</tt> <a class="py-toggle" href="#" id="Channel.__init__-toggle" onclick="return toggle('Channel.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.channel.Channel-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">chanid</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Channel.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel.__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 a new channel. The channel is not associated with any</tt> </tt>
+<a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"><tt class="py-docstring"> particular session or L{Transport} until the Transport attaches it.</tt> </tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"><tt class="py-docstring"> Normally you would only call this method from the constructor of a</tt> </tt>
+<a name="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"><tt class="py-docstring"> subclass of L{Channel}.</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 chanid: the ID of this channel, as passed by an existing</tt> </tt>
+<a name="L66"></a><tt class="py-lineno"> 66</tt> <tt class="py-line"><tt class="py-docstring"> L{Transport}.</tt> </tt>
+<a name="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line"><tt class="py-docstring"> @type chanid: int</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">chanid</tt> <tt class="py-op">=</tt> <tt class="py-name">chanid</tt> </tt>
+<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">remote_chanid</tt> <tt class="py-op">=</tt> <tt class="py-number">0</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-20" class="py-name" targets="Module paramiko.transport=paramiko.transport-module.html"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-20', 'transport', 'link-20');">transport</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</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">active</tt> <tt class="py-op">=</tt> <tt class="py-name">False</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">eof_received</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">eof_sent</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">in_buffer</tt> <tt class="py-op">=</tt> <tt id="link-21" class="py-name"><a title="paramiko.buffered_pipe.BufferedPipe" class="py-name" href="#" onclick="return doclink('link-21', 'BufferedPipe', 'link-15');">BufferedPipe</a></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">in_stderr_buffer</tt> <tt class="py-op">=</tt> <tt id="link-22" class="py-name"><a title="paramiko.buffered_pipe.BufferedPipe" class="py-name" href="#" onclick="return doclink('link-22', 'BufferedPipe', 'link-15');">BufferedPipe</a></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">timeout</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-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="L79"></a><tt class="py-lineno"> 79</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="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">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="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">out_buffer_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="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">in_window_size</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">out_window_size</tt> <tt class="py-op">=</tt> <tt class="py-number">0</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">in_max_packet_size</tt> <tt class="py-op">=</tt> <tt class="py-number">0</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">out_max_packet_size</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</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-number">0</tt> </tt>
+<a name="L87"></a><tt class="py-lineno"> 87</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="L88"></a><tt class="py-lineno"> 88</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">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="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">_name</tt> <tt class="py-op">=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">chanid</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 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
+paramiko.BufferedFile.close
+paramiko.Channel.close
+paramiko.SFTPClient.close
+paramiko.SFTPFile.close
+paramiko.SFTPHandle.close
+paramiko.SSHClient.close
+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-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
+paramiko.channel.MSG_CHANNEL_REQUEST
+paramiko.client.MSG_CHANNEL_REQUEST
+paramiko.common.MSG_CHANNEL_REQUEST
+paramiko.dsskey.MSG_CHANNEL_REQUEST
+paramiko.hostkeys.MSG_CHANNEL_REQUEST
+paramiko.kex_gex.MSG_CHANNEL_REQUEST
+paramiko.kex_group1.MSG_CHANNEL_REQUEST
+paramiko.packet.MSG_CHANNEL_REQUEST
+paramiko.pkey.MSG_CHANNEL_REQUEST
+paramiko.rsakey.MSG_CHANNEL_REQUEST
+paramiko.server.MSG_CHANNEL_REQUEST
+paramiko.sftp.MSG_CHANNEL_REQUEST
+paramiko.sftp_attr.MSG_CHANNEL_REQUEST
+paramiko.sftp_client.MSG_CHANNEL_REQUEST
+paramiko.sftp_file.MSG_CHANNEL_REQUEST
+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-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
+paramiko.channel.MSG_CHANNEL_REQUEST
+paramiko.client.MSG_CHANNEL_REQUEST
+paramiko.common.MSG_CHANNEL_REQUEST
+paramiko.dsskey.MSG_CHANNEL_REQUEST
+paramiko.hostkeys.MSG_CHANNEL_REQUEST
+paramiko.kex_gex.MSG_CHANNEL_REQUEST
+paramiko.kex_group1.MSG_CHANNEL_REQUEST
+paramiko.packet.MSG_CHANNEL_REQUEST
+paramiko.pkey.MSG_CHANNEL_REQUEST
+paramiko.rsakey.MSG_CHANNEL_REQUEST
+paramiko.server.MSG_CHANNEL_REQUEST
+paramiko.sftp.MSG_CHANNEL_REQUEST
+paramiko.sftp_attr.MSG_CHANNEL_REQUEST
+paramiko.sftp_client.MSG_CHANNEL_REQUEST
+paramiko.sftp_file.MSG_CHANNEL_REQUEST
+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.channel.MSG_CHANNEL_REQUEST
+paramiko.client.MSG_CHANNEL_REQUEST
+paramiko.common.MSG_CHANNEL_REQUEST
+paramiko.dsskey.MSG_CHANNEL_REQUEST
+paramiko.hostkeys.MSG_CHANNEL_REQUEST
+paramiko.kex_gex.MSG_CHANNEL_REQUEST
+paramiko.kex_group1.MSG_CHANNEL_REQUEST
+paramiko.packet.MSG_CHANNEL_REQUEST
+paramiko.pkey.MSG_CHANNEL_REQUEST
+paramiko.rsakey.MSG_CHANNEL_REQUEST
+paramiko.server.MSG_CHANNEL_REQUEST
+paramiko.sftp.MSG_CHANNEL_REQUEST
+paramiko.sftp_attr.MSG_CHANNEL_REQUEST
+paramiko.sftp_client.MSG_CHANNEL_REQUEST
+paramiko.sftp_file.MSG_CHANNEL_REQUEST
+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.channel.MSG_CHANNEL_REQUEST
+paramiko.client.MSG_CHANNEL_REQUEST
+paramiko.common.MSG_CHANNEL_REQUEST
+paramiko.dsskey.MSG_CHANNEL_REQUEST
+paramiko.hostkeys.MSG_CHANNEL_REQUEST
+paramiko.kex_gex.MSG_CHANNEL_REQUEST
+paramiko.kex_group1.MSG_CHANNEL_REQUEST
+paramiko.packet.MSG_CHANNEL_REQUEST
+paramiko.pkey.MSG_CHANNEL_REQUEST
+paramiko.rsakey.MSG_CHANNEL_REQUEST
+paramiko.server.MSG_CHANNEL_REQUEST
+paramiko.sftp.MSG_CHANNEL_REQUEST
+paramiko.sftp_attr.MSG_CHANNEL_REQUEST
+paramiko.sftp_client.MSG_CHANNEL_REQUEST
+paramiko.sftp_file.MSG_CHANNEL_REQUEST
+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.channel.MSG_CHANNEL_REQUEST
+paramiko.client.MSG_CHANNEL_REQUEST
+paramiko.common.MSG_CHANNEL_REQUEST
+paramiko.dsskey.MSG_CHANNEL_REQUEST
+paramiko.hostkeys.MSG_CHANNEL_REQUEST
+paramiko.kex_gex.MSG_CHANNEL_REQUEST
+paramiko.kex_group1.MSG_CHANNEL_REQUEST
+paramiko.packet.MSG_CHANNEL_REQUEST
+paramiko.pkey.MSG_CHANNEL_REQUEST
+paramiko.rsakey.MSG_CHANNEL_REQUEST
+paramiko.server.MSG_CHANNEL_REQUEST
+paramiko.sftp.MSG_CHANNEL_REQUEST
+paramiko.sftp_attr.MSG_CHANNEL_REQUEST
+paramiko.sftp_client.MSG_CHANNEL_REQUEST
+paramiko.sftp_file.MSG_CHANNEL_REQUEST
+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.channel.MSG_CHANNEL_REQUEST
+paramiko.client.MSG_CHANNEL_REQUEST
+paramiko.common.MSG_CHANNEL_REQUEST
+paramiko.dsskey.MSG_CHANNEL_REQUEST
+paramiko.hostkeys.MSG_CHANNEL_REQUEST
+paramiko.kex_gex.MSG_CHANNEL_REQUEST
+paramiko.kex_group1.MSG_CHANNEL_REQUEST
+paramiko.packet.MSG_CHANNEL_REQUEST
+paramiko.pkey.MSG_CHANNEL_REQUEST
+paramiko.rsakey.MSG_CHANNEL_REQUEST
+paramiko.server.MSG_CHANNEL_REQUEST
+paramiko.sftp.MSG_CHANNEL_REQUEST
+paramiko.sftp_attr.MSG_CHANNEL_REQUEST
+paramiko.sftp_client.MSG_CHANNEL_REQUEST
+paramiko.sftp_file.MSG_CHANNEL_REQUEST
+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.channel.randpool
+paramiko.client.randpool
+paramiko.common.randpool
+paramiko.dsskey.randpool
+paramiko.hostkeys.randpool
+paramiko.kex_gex.randpool
+paramiko.kex_group1.randpool
+paramiko.packet.randpool
+paramiko.pkey.randpool
+paramiko.rsakey.randpool
+paramiko.server.randpool
+paramiko.sftp.randpool
+paramiko.sftp_attr.randpool
+paramiko.sftp_client.randpool
+paramiko.sftp_file.randpool
+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.channel.MSG_CHANNEL_REQUEST
+paramiko.client.MSG_CHANNEL_REQUEST
+paramiko.common.MSG_CHANNEL_REQUEST
+paramiko.dsskey.MSG_CHANNEL_REQUEST
+paramiko.hostkeys.MSG_CHANNEL_REQUEST
+paramiko.kex_gex.MSG_CHANNEL_REQUEST
+paramiko.kex_group1.MSG_CHANNEL_REQUEST
+paramiko.packet.MSG_CHANNEL_REQUEST
+paramiko.pkey.MSG_CHANNEL_REQUEST
+paramiko.rsakey.MSG_CHANNEL_REQUEST
+paramiko.server.MSG_CHANNEL_REQUEST
+paramiko.sftp.MSG_CHANNEL_REQUEST
+paramiko.sftp_attr.MSG_CHANNEL_REQUEST
+paramiko.sftp_client.MSG_CHANNEL_REQUEST
+paramiko.sftp_file.MSG_CHANNEL_REQUEST
+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.BufferedFile.close
+paramiko.Channel.close
+paramiko.SFTPClient.close
+paramiko.SFTPFile.close
+paramiko.SFTPHandle.close
+paramiko.SSHClient.close
+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.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.channel.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.client.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.common.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.dsskey.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.hostkeys.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.kex_gex.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.kex_group1.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.packet.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.pkey.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.rsakey.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.server.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.sftp.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.sftp_attr.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.sftp_client.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.sftp_file.MSG_CHANNEL_WINDOW_ADJUST
+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.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.channel.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.client.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.common.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.dsskey.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.hostkeys.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.kex_gex.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.kex_group1.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.packet.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.pkey.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.rsakey.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.server.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.sftp.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.sftp_attr.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.sftp_client.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.sftp_file.MSG_CHANNEL_WINDOW_ADJUST
+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.channel.MSG_CHANNEL_DATA
+paramiko.client.MSG_CHANNEL_DATA
+paramiko.common.MSG_CHANNEL_DATA
+paramiko.dsskey.MSG_CHANNEL_DATA
+paramiko.hostkeys.MSG_CHANNEL_DATA
+paramiko.kex_gex.MSG_CHANNEL_DATA
+paramiko.kex_group1.MSG_CHANNEL_DATA
+paramiko.packet.MSG_CHANNEL_DATA
+paramiko.pkey.MSG_CHANNEL_DATA
+paramiko.rsakey.MSG_CHANNEL_DATA
+paramiko.server.MSG_CHANNEL_DATA
+paramiko.sftp.MSG_CHANNEL_DATA
+paramiko.sftp_attr.MSG_CHANNEL_DATA
+paramiko.sftp_client.MSG_CHANNEL_DATA
+paramiko.sftp_file.MSG_CHANNEL_DATA
+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.channel.MSG_CHANNEL_EXTENDED_DATA
+paramiko.client.MSG_CHANNEL_EXTENDED_DATA
+paramiko.common.MSG_CHANNEL_EXTENDED_DATA
+paramiko.dsskey.MSG_CHANNEL_EXTENDED_DATA
+paramiko.hostkeys.MSG_CHANNEL_EXTENDED_DATA
+paramiko.kex_gex.MSG_CHANNEL_EXTENDED_DATA
+paramiko.kex_group1.MSG_CHANNEL_EXTENDED_DATA
+paramiko.packet.MSG_CHANNEL_EXTENDED_DATA
+paramiko.pkey.MSG_CHANNEL_EXTENDED_DATA
+paramiko.rsakey.MSG_CHANNEL_EXTENDED_DATA
+paramiko.server.MSG_CHANNEL_EXTENDED_DATA
+paramiko.sftp.MSG_CHANNEL_EXTENDED_DATA
+paramiko.sftp_attr.MSG_CHANNEL_EXTENDED_DATA
+paramiko.sftp_client.MSG_CHANNEL_EXTENDED_DATA
+paramiko.sftp_file.MSG_CHANNEL_EXTENDED_DATA
+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.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.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.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-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.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-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.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-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.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>
+<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>
+</div><div id="Channel._request_failed-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Channel._request_failed-expanded"><a name="L929"></a><tt class="py-lineno"> 929</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="L930"></a><tt class="py-lineno"> 930</tt> <tt class="py-line"> <tt class="py-keyword">try</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">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="L932"></a><tt class="py-lineno"> 932</tt> <tt class="py-line"> <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<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>
+</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="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>
+</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>
+<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
+paramiko.channel.ERROR
+paramiko.client.ERROR
+paramiko.common.ERROR
+paramiko.dsskey.ERROR
+paramiko.hostkeys.ERROR
+paramiko.kex_gex.ERROR
+paramiko.kex_group1.ERROR
+paramiko.logging22.ERROR
+paramiko.packet.ERROR
+paramiko.pkey.ERROR
+paramiko.rsakey.ERROR
+paramiko.server.ERROR
+paramiko.sftp.ERROR
+paramiko.sftp_attr.ERROR
+paramiko.sftp_client.ERROR
+paramiko.sftp_file.ERROR
+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>
+<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>
+</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>
+<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
+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-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>
+<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>
+<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
+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>
+<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="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="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="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="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="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="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="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="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="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="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="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="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="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
+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-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>
+<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="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
+paramiko.channel.MSG_CHANNEL_SUCCESS
+paramiko.client.MSG_CHANNEL_SUCCESS
+paramiko.common.MSG_CHANNEL_SUCCESS
+paramiko.dsskey.MSG_CHANNEL_SUCCESS
+paramiko.hostkeys.MSG_CHANNEL_SUCCESS
+paramiko.kex_gex.MSG_CHANNEL_SUCCESS
+paramiko.kex_group1.MSG_CHANNEL_SUCCESS
+paramiko.packet.MSG_CHANNEL_SUCCESS
+paramiko.pkey.MSG_CHANNEL_SUCCESS
+paramiko.rsakey.MSG_CHANNEL_SUCCESS
+paramiko.server.MSG_CHANNEL_SUCCESS
+paramiko.sftp.MSG_CHANNEL_SUCCESS
+paramiko.sftp_attr.MSG_CHANNEL_SUCCESS
+paramiko.sftp_client.MSG_CHANNEL_SUCCESS
+paramiko.sftp_file.MSG_CHANNEL_SUCCESS
+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>
+<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
+paramiko.channel.MSG_CHANNEL_FAILURE
+paramiko.client.MSG_CHANNEL_FAILURE
+paramiko.common.MSG_CHANNEL_FAILURE
+paramiko.dsskey.MSG_CHANNEL_FAILURE
+paramiko.hostkeys.MSG_CHANNEL_FAILURE
+paramiko.kex_gex.MSG_CHANNEL_FAILURE
+paramiko.kex_group1.MSG_CHANNEL_FAILURE
+paramiko.packet.MSG_CHANNEL_FAILURE
+paramiko.pkey.MSG_CHANNEL_FAILURE
+paramiko.rsakey.MSG_CHANNEL_FAILURE
+paramiko.server.MSG_CHANNEL_FAILURE
+paramiko.sftp.MSG_CHANNEL_FAILURE
+paramiko.sftp_attr.MSG_CHANNEL_FAILURE
+paramiko.sftp_client.MSG_CHANNEL_FAILURE
+paramiko.sftp_file.MSG_CHANNEL_FAILURE
+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>
+</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
+paramiko.BufferedFile.close
+paramiko.Channel.close
+paramiko.SFTPClient.close
+paramiko.SFTPFile.close
+paramiko.SFTPHandle.close
+paramiko.SSHClient.close
+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.BufferedFile.close
+paramiko.Channel.close
+paramiko.SFTPClient.close
+paramiko.SFTPFile.close
+paramiko.SFTPHandle.close
+paramiko.SSHClient.close
+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>
+<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="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
+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-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>
+</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="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>
+</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="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><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
+paramiko.BufferedFile.close
+paramiko.Channel.close
+paramiko.SFTPClient.close
+paramiko.SFTPFile.close
+paramiko.SFTPHandle.close
+paramiko.SSHClient.close
+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.BufferedFile.close
+paramiko.Channel.close
+paramiko.SFTPClient.close
+paramiko.SFTPFile.close
+paramiko.SFTPHandle.close
+paramiko.SSHClient.close
+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.channel.MSG_CHANNEL_EOF
+paramiko.client.MSG_CHANNEL_EOF
+paramiko.common.MSG_CHANNEL_EOF
+paramiko.dsskey.MSG_CHANNEL_EOF
+paramiko.hostkeys.MSG_CHANNEL_EOF
+paramiko.kex_gex.MSG_CHANNEL_EOF
+paramiko.kex_group1.MSG_CHANNEL_EOF
+paramiko.packet.MSG_CHANNEL_EOF
+paramiko.pkey.MSG_CHANNEL_EOF
+paramiko.rsakey.MSG_CHANNEL_EOF
+paramiko.server.MSG_CHANNEL_EOF
+paramiko.sftp.MSG_CHANNEL_EOF
+paramiko.sftp_attr.MSG_CHANNEL_EOF
+paramiko.sftp_client.MSG_CHANNEL_EOF
+paramiko.sftp_file.MSG_CHANNEL_EOF
+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.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-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.channel.MSG_CHANNEL_CLOSE
+paramiko.client.MSG_CHANNEL_CLOSE
+paramiko.common.MSG_CHANNEL_CLOSE
+paramiko.dsskey.MSG_CHANNEL_CLOSE
+paramiko.hostkeys.MSG_CHANNEL_CLOSE
+paramiko.kex_gex.MSG_CHANNEL_CLOSE
+paramiko.kex_group1.MSG_CHANNEL_CLOSE
+paramiko.packet.MSG_CHANNEL_CLOSE
+paramiko.pkey.MSG_CHANNEL_CLOSE
+paramiko.rsakey.MSG_CHANNEL_CLOSE
+paramiko.server.MSG_CHANNEL_CLOSE
+paramiko.sftp.MSG_CHANNEL_CLOSE
+paramiko.sftp_attr.MSG_CHANNEL_CLOSE
+paramiko.sftp_client.MSG_CHANNEL_CLOSE
+paramiko.sftp_file.MSG_CHANNEL_CLOSE
+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.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-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.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-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.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-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.AgentKey.__init__
+paramiko.BadAuthenticationType.__init__
+paramiko.BadHostKeyException.__init__
+paramiko.BufferedFile.__init__
+paramiko.Channel.__init__
+paramiko.ChannelException.__init__
+paramiko.DSSKey.__init__
+paramiko.HostKeys.__init__
+paramiko.Message.__init__
+paramiko.PKey.__init__
+paramiko.RSAKey.__init__
+paramiko.SFTPAttributes.__init__
+paramiko.SFTPClient.__init__
+paramiko.SFTPFile.__init__
+paramiko.SFTPHandle.__init__
+paramiko.SFTPServer.__init__
+paramiko.SFTPServerInterface.__init__
+paramiko.SSHClient.__init__
+paramiko.SSHConfig.__init__
+paramiko.SecurityOptions.__init__
+paramiko.SubsystemHandler.__init__
+paramiko.Transport.__init__
+paramiko.ber.BER.__init__
+paramiko.buffered_pipe.BufferedPipe.__init__
+paramiko.channel.ChannelStderrFile.__init__
+paramiko.compress.ZlibCompressor.__init__
+paramiko.compress.ZlibDecompressor.__init__
+paramiko.hostkeys.HostKeyEntry.__init__
+paramiko.kex_gex.KexGex.__init__
+paramiko.kex_group1.KexGroup1.__init__
+paramiko.logging22.Formatter.__init__
+paramiko.logging22.StreamHandler.__init__
+paramiko.logging22.logger.__init__
+paramiko.pipe.OrPipe.__init__
+paramiko.pipe.PosixPipe.__init__
+paramiko.pipe.WindowsPipe.__init__
+paramiko.primes.ModulusPack.__init__
+paramiko.rng.StrongLockingRandomPool.__init__
+paramiko.ssh_exception.PartialAuthentication.__init__
+paramiko.transport.ChannelMap.__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.AgentKey.__init__
+paramiko.BadAuthenticationType.__init__
+paramiko.BadHostKeyException.__init__
+paramiko.BufferedFile.__init__
+paramiko.Channel.__init__
+paramiko.ChannelException.__init__
+paramiko.DSSKey.__init__
+paramiko.HostKeys.__init__
+paramiko.Message.__init__
+paramiko.PKey.__init__
+paramiko.RSAKey.__init__
+paramiko.SFTPAttributes.__init__
+paramiko.SFTPClient.__init__
+paramiko.SFTPFile.__init__
+paramiko.SFTPHandle.__init__
+paramiko.SFTPServer.__init__
+paramiko.SFTPServerInterface.__init__
+paramiko.SSHClient.__init__
+paramiko.SSHConfig.__init__
+paramiko.SecurityOptions.__init__
+paramiko.SubsystemHandler.__init__
+paramiko.Transport.__init__
+paramiko.ber.BER.__init__
+paramiko.buffered_pipe.BufferedPipe.__init__
+paramiko.channel.ChannelStderrFile.__init__
+paramiko.compress.ZlibCompressor.__init__
+paramiko.compress.ZlibDecompressor.__init__
+paramiko.hostkeys.HostKeyEntry.__init__
+paramiko.kex_gex.KexGex.__init__
+paramiko.kex_group1.KexGroup1.__init__
+paramiko.logging22.Formatter.__init__
+paramiko.logging22.StreamHandler.__init__
+paramiko.logging22.logger.__init__
+paramiko.pipe.OrPipe.__init__
+paramiko.pipe.PosixPipe.__init__
+paramiko.pipe.WindowsPipe.__init__
+paramiko.primes.ModulusPack.__init__
+paramiko.rng.StrongLockingRandomPool.__init__
+paramiko.ssh_exception.PartialAuthentication.__init__
+paramiko.transport.ChannelMap.__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">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<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 Jul 6 18:30:34 2008
+ </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.channel.ChannelStderrFile-class.html b/docs/paramiko.channel.ChannelStderrFile-class.html
new file mode 100644
index 0000000..c9faf36
--- /dev/null
+++ b/docs/paramiko.channel.ChannelStderrFile-class.html
@@ -0,0 +1,254 @@
+<?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.channel.ChannelStderrFile</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.channel-module.html" onclick="show_private();">Module&nbsp;channel</a> ::
+ Class&nbsp;ChannelStderrFile
+ </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.channel.ChannelStderrFile-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class ChannelStderrFile</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.channel-pysrc.html#ChannelStderrFile">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+ object --+
+ |
+<a href="paramiko.BufferedFile-class.html">BufferedFile</a> --+
+ |
+ ChannelFile --+
+ |
+ <strong class="uidshort">ChannelStderrFile</strong>
+</pre>
+
+<hr />
+<!-- ==================== 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.channel.ChannelStderrFile-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">channel</span>,
+ <span class="summary-sig-arg">mode</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string">r</code><code class="variable-quote">'</code></span>,
+ <span class="summary-sig-arg">bufsize</span>=<span class="summary-sig-default">-1</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.channel-pysrc.html#ChannelStderrFile.__init__">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>ChannelFile</code></b>:
+ <code>__repr__</code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code><a href="paramiko.BufferedFile-class.html">BufferedFile</a></code></b>:
+ <code><a href="paramiko.BufferedFile-class.html#__del__">__del__</a></code>,
+ <code><a href="paramiko.BufferedFile-class.html#__iter__">__iter__</a></code>,
+ <code><a href="paramiko.BufferedFile-class.html#close">close</a></code>,
+ <code><a href="paramiko.BufferedFile-class.html#flush">flush</a></code>,
+ <code><a href="paramiko.BufferedFile-class.html#next">next</a></code>,
+ <code><a href="paramiko.BufferedFile-class.html#read">read</a></code>,
+ <code><a href="paramiko.BufferedFile-class.html#readline">readline</a></code>,
+ <code><a href="paramiko.BufferedFile-class.html#readlines">readlines</a></code>,
+ <code><a href="paramiko.BufferedFile-class.html#seek">seek</a></code>,
+ <code><a href="paramiko.BufferedFile-class.html#tell">tell</a></code>,
+ <code><a href="paramiko.BufferedFile-class.html#write">write</a></code>,
+ <code><a href="paramiko.BufferedFile-class.html#writelines">writelines</a></code>,
+ <code><a href="paramiko.BufferedFile-class.html#xreadlines">xreadlines</a></code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__delattr__</code>,
+ <code>__getattribute__</code>,
+ <code>__hash__</code>,
+ <code>__new__</code>,
+ <code>__reduce__</code>,
+ <code>__reduce_ex__</code>,
+ <code>__setattr__</code>,
+ <code>__str__</code>
+ </p>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS VARIABLES ==================== -->
+<a name="section-ClassVariables"></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 Variables</span></td>
+</tr>
+ <tr>
+ <td colspan="2" class="summary">
+ <p class="indent-wrapped-lines"><b>Inherited from <code><a href="paramiko.BufferedFile-class.html">BufferedFile</a></code></b>:
+ <code><a href="paramiko.BufferedFile-class.html#FLAG_APPEND">FLAG_APPEND</a></code>,
+ <code><a href="paramiko.BufferedFile-class.html#FLAG_BINARY">FLAG_BINARY</a></code>,
+ <code><a href="paramiko.BufferedFile-class.html#FLAG_BUFFERED">FLAG_BUFFERED</a></code>,
+ <code><a href="paramiko.BufferedFile-class.html#FLAG_LINE_BUFFERED">FLAG_LINE_BUFFERED</a></code>,
+ <code><a href="paramiko.BufferedFile-class.html#FLAG_READ">FLAG_READ</a></code>,
+ <code><a href="paramiko.BufferedFile-class.html#FLAG_UNIVERSAL_NEWLINE">FLAG_UNIVERSAL_NEWLINE</a></code>,
+ <code><a href="paramiko.BufferedFile-class.html#FLAG_WRITE">FLAG_WRITE</a></code>,
+ <code><a href="paramiko.BufferedFile-class.html#SEEK_CUR">SEEK_CUR</a></code>,
+ <code><a href="paramiko.BufferedFile-class.html#SEEK_END">SEEK_END</a></code>,
+ <code><a href="paramiko.BufferedFile-class.html#SEEK_SET">SEEK_SET</a></code>
+ </p>
+ </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">channel</span>,
+ <span class="sig-arg">mode</span>=<span class="sig-default"><code class="variable-quote">'</code><code class="variable-string">r</code><code class="variable-quote">'</code></span>,
+ <span class="sig-arg">bufsize</span>=<span class="sig-default">-1</span>)</span>
+ <br /><em class="fname">(Constructor)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.channel-pysrc.html#ChannelStderrFile.__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 Jul 6 18:30:30 2008
+ </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.client-module.html b/docs/paramiko.client-module.html
new file mode 100644
index 0000000..a5a17b2
--- /dev/null
+++ b/docs/paramiko.client-module.html
@@ -0,0 +1,525 @@
+<?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.client</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> ::
+ Module&nbsp;client
+ </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.client-module.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module client</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.client-pysrc.html">source&nbsp;code</a></span></p>
+<p><a href="paramiko.SSHClient-class.html"
+ class="link">SSHClient</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="AUTH_FAILED"></a><span class="summary-name">AUTH_FAILED</span> = <code title="2">2</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_PARTIALLY_SUCCESSFUL"></a><span class="summary-name">AUTH_PARTIALLY_SUCCESSFUL</span> = <code title="1">1</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_SUCCESSFUL"></a><span class="summary-name">AUTH_SUCCESSFUL</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 href="paramiko.client-module.html#CONNECTION_FAILED_CODE" class="summary-name">CONNECTION_FAILED_CODE</a> = <code title="{1: 'Administratively prohibited',
+ 2: 'Connect failed',
+ 3: 'Unknown channel type',
+ 4: 'Resource shortage'}"><code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Administratively prohibited</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-op">:</code><code class="variable-ellipsis">...</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="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="DEBUG"></a><span class="summary-name">DEBUG</span> = <code title="10">10</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="DISCONNECT_AUTH_CANCELLED_BY_USER"></a><span class="summary-name">DISCONNECT_AUTH_CANCELLED_BY_USER</span> = <code title="13">13</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="DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE"></a><span class="summary-name">DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE</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="DISCONNECT_SERVICE_NOT_AVAILABLE"></a><span class="summary-name">DISCONNECT_SERVICE_NOT_AVAILABLE</span> = <code title="7">7</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="ERROR"></a><span class="summary-name">ERROR</span> = <code title="40">40</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="INFO"></a><span class="summary-name">INFO</span> = <code title="20">20</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="MSG_CHANNEL_CLOSE"></a><span class="summary-name">MSG_CHANNEL_CLOSE</span> = <code title="97">97</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="MSG_CHANNEL_DATA"></a><span class="summary-name">MSG_CHANNEL_DATA</span> = <code title="94">94</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="MSG_CHANNEL_EOF"></a><span class="summary-name">MSG_CHANNEL_EOF</span> = <code title="96">96</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="MSG_CHANNEL_EXTENDED_DATA"></a><span class="summary-name">MSG_CHANNEL_EXTENDED_DATA</span> = <code title="95">95</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="MSG_CHANNEL_FAILURE"></a><span class="summary-name">MSG_CHANNEL_FAILURE</span> = <code title="100">100</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="MSG_CHANNEL_OPEN"></a><span class="summary-name">MSG_CHANNEL_OPEN</span> = <code title="90">90</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="MSG_CHANNEL_OPEN_FAILURE"></a><span class="summary-name">MSG_CHANNEL_OPEN_FAILURE</span> = <code title="92">92</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="MSG_CHANNEL_OPEN_SUCCESS"></a><span class="summary-name">MSG_CHANNEL_OPEN_SUCCESS</span> = <code title="91">91</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="MSG_CHANNEL_REQUEST"></a><span class="summary-name">MSG_CHANNEL_REQUEST</span> = <code title="98">98</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="MSG_CHANNEL_SUCCESS"></a><span class="summary-name">MSG_CHANNEL_SUCCESS</span> = <code title="99">99</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="MSG_CHANNEL_WINDOW_ADJUST"></a><span class="summary-name">MSG_CHANNEL_WINDOW_ADJUST</span> = <code title="93">93</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="MSG_DEBUG"></a><span class="summary-name">MSG_DEBUG</span> = <code title="4">4</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="MSG_DISCONNECT"></a><span class="summary-name">MSG_DISCONNECT</span> = <code title="1">1</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="MSG_GLOBAL_REQUEST"></a><span class="summary-name">MSG_GLOBAL_REQUEST</span> = <code title="80">80</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="MSG_IGNORE"></a><span class="summary-name">MSG_IGNORE</span> = <code title="2">2</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="MSG_KEXINIT"></a><span class="summary-name">MSG_KEXINIT</span> = <code title="20">20</code>
+ </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.client-module.html#MSG_NAMES" class="summary-name">MSG_NAMES</a> = <code title="{1: 'disconnect',
+ 2: 'ignore',
+ 3: 'unimplemented',
+ 4: 'debug',
+ 5: 'service-request',
+ 6: 'service-accept',
+ 20: 'kexinit',
+ 21: 'newkeys',
+..."><code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">disconnect</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">ignore</code><code class="variable-quote">'</code><code class="variable-op">, </code>3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">unimplemented</code><code class="variable-quote">'</code><code class="variable-op">,</code><code class="variable-ellipsis">...</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="MSG_NEWKEYS"></a><span class="summary-name">MSG_NEWKEYS</span> = <code title="21">21</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="MSG_REQUEST_FAILURE"></a><span class="summary-name">MSG_REQUEST_FAILURE</span> = <code title="82">82</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="MSG_REQUEST_SUCCESS"></a><span class="summary-name">MSG_REQUEST_SUCCESS</span> = <code title="81">81</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="MSG_SERVICE_ACCEPT"></a><span class="summary-name">MSG_SERVICE_ACCEPT</span> = <code title="6">6</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="MSG_SERVICE_REQUEST"></a><span class="summary-name">MSG_SERVICE_REQUEST</span> = <code title="5">5</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="MSG_UNIMPLEMENTED"></a><span class="summary-name">MSG_UNIMPLEMENTED</span> = <code title="3">3</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="MSG_USERAUTH_BANNER"></a><span class="summary-name">MSG_USERAUTH_BANNER</span> = <code title="53">53</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="MSG_USERAUTH_FAILURE"></a><span class="summary-name">MSG_USERAUTH_FAILURE</span> = <code title="51">51</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="MSG_USERAUTH_INFO_REQUEST"></a><span class="summary-name">MSG_USERAUTH_INFO_REQUEST</span> = <code title="60">60</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="MSG_USERAUTH_INFO_RESPONSE"></a><span class="summary-name">MSG_USERAUTH_INFO_RESPONSE</span> = <code title="61">61</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="MSG_USERAUTH_PK_OK"></a><span class="summary-name">MSG_USERAUTH_PK_OK</span> = <code title="60">60</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="MSG_USERAUTH_REQUEST"></a><span class="summary-name">MSG_USERAUTH_REQUEST</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="MSG_USERAUTH_SUCCESS"></a><span class="summary-name">MSG_USERAUTH_SUCCESS</span> = <code title="52">52</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="OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED"></a><span class="summary-name">OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED</span> = <code title="1">1</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="OPEN_FAILED_CONNECT_FAILED"></a><span class="summary-name">OPEN_FAILED_CONNECT_FAILED</span> = <code title="2">2</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="OPEN_FAILED_RESOURCE_SHORTAGE"></a><span class="summary-name">OPEN_FAILED_RESOURCE_SHORTAGE</span> = <code title="4">4</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="OPEN_FAILED_UNKNOWN_CHANNEL_TYPE"></a><span class="summary-name">OPEN_FAILED_UNKNOWN_CHANNEL_TYPE</span> = <code title="3">3</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="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="PY22"></a><span class="summary-name">PY22</span> = <code title="False">False</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="WARNING"></a><span class="summary-name">WARNING</span> = <code title="30">30</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>
+</table>
+<!-- ==================== VARIABLES DETAILS ==================== -->
+<a name="section-VariablesDetails"></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">Variables Details</span></td>
+</tr>
+</table>
+<a name="CONNECTION_FAILED_CODE"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">CONNECTION_FAILED_CODE</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Administratively prohibited</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Connect failed</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Unknown channel type</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Resource shortage</code><code class="variable-quote">'</code><code class="variable-group">}</code>
+</pre></td></tr></table>
+</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="MSG_NAMES"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">MSG_NAMES</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">disconnect</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">ignore</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">unimplemented</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">debug</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 5<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">service-request</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 6<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">service-accept</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 20<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">kexinit</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 21<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">newkeys</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+ </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 Jul 6 18:30:26 2008
+ </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.client-pysrc.html b/docs/paramiko.client-pysrc.html
new file mode 100644
index 0000000..760992c
--- /dev/null
+++ b/docs/paramiko.client-pysrc.html
@@ -0,0 +1,766 @@
+<?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.client</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> ::
+ Module&nbsp;client
+ </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.client-pysrc.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</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="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>
+<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">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">getpass</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">socket</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">warnings</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.agent=paramiko.agent-module.html"><a title="paramiko.agent" class="py-name" href="#" onclick="return doclink('link-1', 'agent', 'link-1');">agent</a></tt> <tt class="py-keyword">import</tt> <tt id="link-2" class="py-name" targets="Class paramiko.Agent=paramiko.Agent-class.html"><a title="paramiko.Agent" class="py-name" href="#" onclick="return doclink('link-2', 'Agent', 'link-2');">Agent</a></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-3" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-3', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-4" class="py-name" targets="Module paramiko.common=paramiko.common-module.html"><a title="paramiko.common" class="py-name" href="#" onclick="return doclink('link-4', 'common', 'link-4');">common</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-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.dsskey=paramiko.dsskey-module.html"><a title="paramiko.dsskey" class="py-name" href="#" onclick="return doclink('link-6', 'dsskey', 'link-6');">dsskey</a></tt> <tt class="py-keyword">import</tt> <tt id="link-7" class="py-name" targets="Class paramiko.DSSKey=paramiko.DSSKey-class.html"><a title="paramiko.DSSKey" class="py-name" href="#" onclick="return doclink('link-7', 'DSSKey', 'link-7');">DSSKey</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-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.hostkeys=paramiko.hostkeys-module.html"><a title="paramiko.hostkeys" class="py-name" href="#" onclick="return doclink('link-9', 'hostkeys', 'link-9');">hostkeys</a></tt> <tt class="py-keyword">import</tt> <tt id="link-10" class="py-name" targets="Class paramiko.HostKeys=paramiko.HostKeys-class.html"><a title="paramiko.HostKeys" class="py-name" href="#" onclick="return doclink('link-10', 'HostKeys', 'link-10');">HostKeys</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-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.resource=paramiko.resource-module.html"><a title="paramiko.resource" class="py-name" href="#" onclick="return doclink('link-12', 'resource', 'link-12');">resource</a></tt> <tt class="py-keyword">import</tt> <tt id="link-13" 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-13', 'ResourceManager', 'link-13');">ResourceManager</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-14" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-14', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-15" class="py-name" targets="Module paramiko.rsakey=paramiko.rsakey-module.html"><a title="paramiko.rsakey" class="py-name" href="#" onclick="return doclink('link-15', 'rsakey', 'link-15');">rsakey</a></tt> <tt class="py-keyword">import</tt> <tt id="link-16" class="py-name" targets="Class paramiko.RSAKey=paramiko.RSAKey-class.html"><a title="paramiko.RSAKey" class="py-name" href="#" onclick="return doclink('link-16', 'RSAKey', 'link-16');">RSAKey</a></tt> </tt>
+<a name="L35"></a><tt class="py-lineno"> 35</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-17" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-17', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-18" 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-18', 'ssh_exception', 'link-18');">ssh_exception</a></tt> <tt class="py-keyword">import</tt> <tt id="link-19" class="py-name" targets="Class paramiko.SSHException=paramiko.SSHException-class.html"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-19', 'SSHException', 'link-19');">SSHException</a></tt><tt class="py-op">,</tt> <tt id="link-20" class="py-name" targets="Class paramiko.BadHostKeyException=paramiko.BadHostKeyException-class.html"><a title="paramiko.BadHostKeyException" class="py-name" href="#" onclick="return doclink('link-20', 'BadHostKeyException', 'link-20');">BadHostKeyException</a></tt> </tt>
+<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
+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.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-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.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.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-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.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.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.BufferedFile.close
+paramiko.Channel.close
+paramiko.SFTPClient.close
+paramiko.SFTPFile.close
+paramiko.SFTPHandle.close
+paramiko.SSHClient.close
+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.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.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.BufferedFile.close
+paramiko.Channel.close
+paramiko.SFTPClient.close
+paramiko.SFTPFile.close
+paramiko.SFTPHandle.close
+paramiko.SSHClient.close
+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>
+<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
+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-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.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-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.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-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.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-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">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<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 Jul 6 18:30:37 2008
+ </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.common-module.html b/docs/paramiko.common-module.html
new file mode 100644
index 0000000..75d880c
--- /dev/null
+++ b/docs/paramiko.common-module.html
@@ -0,0 +1,524 @@
+<?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.common</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> ::
+ Module&nbsp;common
+ </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.common-module.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module common</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.common-pysrc.html">source&nbsp;code</a></span></p>
+<p>Common constants and global variables.</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="MSG_USERAUTH_PK_OK"></a><span class="summary-name">MSG_USERAUTH_PK_OK</span> = <code title="60">60</code>
+ </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.common-module.html#MSG_NAMES" class="summary-name">MSG_NAMES</a> = <code title="{1: 'disconnect',
+ 2: 'ignore',
+ 3: 'unimplemented',
+ 4: 'debug',
+ 5: 'service-request',
+ 6: 'service-accept',
+ 20: 'kexinit',
+ 21: 'newkeys',
+..."><code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">disconnect</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">ignore</code><code class="variable-quote">'</code><code class="variable-op">, </code>3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">unimplemented</code><code class="variable-quote">'</code><code class="variable-op">,</code><code class="variable-ellipsis">...</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 href="paramiko.common-module.html#CONNECTION_FAILED_CODE" class="summary-name">CONNECTION_FAILED_CODE</a> = <code title="{1: 'Administratively prohibited',
+ 2: 'Connect failed',
+ 3: 'Unknown channel type',
+ 4: 'Resource shortage'}"><code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Administratively prohibited</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-op">:</code><code class="variable-ellipsis">...</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>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
+ <a name="PY22"></a><span class="summary-name">PY22</span> = <code title="False">False</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="DEBUG"></a><span class="summary-name">DEBUG</span> = <code title="10">10</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="INFO"></a><span class="summary-name">INFO</span> = <code title="20">20</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="WARNING"></a><span class="summary-name">WARNING</span> = <code title="30">30</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="ERROR"></a><span class="summary-name">ERROR</span> = <code title="40">40</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="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="AUTH_FAILED"></a><span class="summary-name">AUTH_FAILED</span> = <code title="2">2</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_PARTIALLY_SUCCESSFUL"></a><span class="summary-name">AUTH_PARTIALLY_SUCCESSFUL</span> = <code title="1">1</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_SUCCESSFUL"></a><span class="summary-name">AUTH_SUCCESSFUL</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="DISCONNECT_AUTH_CANCELLED_BY_USER"></a><span class="summary-name">DISCONNECT_AUTH_CANCELLED_BY_USER</span> = <code title="13">13</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="DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE"></a><span class="summary-name">DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE</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="DISCONNECT_SERVICE_NOT_AVAILABLE"></a><span class="summary-name">DISCONNECT_SERVICE_NOT_AVAILABLE</span> = <code title="7">7</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="MSG_CHANNEL_CLOSE"></a><span class="summary-name">MSG_CHANNEL_CLOSE</span> = <code title="97">97</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="MSG_CHANNEL_DATA"></a><span class="summary-name">MSG_CHANNEL_DATA</span> = <code title="94">94</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="MSG_CHANNEL_EOF"></a><span class="summary-name">MSG_CHANNEL_EOF</span> = <code title="96">96</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="MSG_CHANNEL_EXTENDED_DATA"></a><span class="summary-name">MSG_CHANNEL_EXTENDED_DATA</span> = <code title="95">95</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="MSG_CHANNEL_FAILURE"></a><span class="summary-name">MSG_CHANNEL_FAILURE</span> = <code title="100">100</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="MSG_CHANNEL_OPEN"></a><span class="summary-name">MSG_CHANNEL_OPEN</span> = <code title="90">90</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="MSG_CHANNEL_OPEN_FAILURE"></a><span class="summary-name">MSG_CHANNEL_OPEN_FAILURE</span> = <code title="92">92</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="MSG_CHANNEL_OPEN_SUCCESS"></a><span class="summary-name">MSG_CHANNEL_OPEN_SUCCESS</span> = <code title="91">91</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="MSG_CHANNEL_REQUEST"></a><span class="summary-name">MSG_CHANNEL_REQUEST</span> = <code title="98">98</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="MSG_CHANNEL_SUCCESS"></a><span class="summary-name">MSG_CHANNEL_SUCCESS</span> = <code title="99">99</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="MSG_CHANNEL_WINDOW_ADJUST"></a><span class="summary-name">MSG_CHANNEL_WINDOW_ADJUST</span> = <code title="93">93</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="MSG_DEBUG"></a><span class="summary-name">MSG_DEBUG</span> = <code title="4">4</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="MSG_DISCONNECT"></a><span class="summary-name">MSG_DISCONNECT</span> = <code title="1">1</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="MSG_GLOBAL_REQUEST"></a><span class="summary-name">MSG_GLOBAL_REQUEST</span> = <code title="80">80</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="MSG_IGNORE"></a><span class="summary-name">MSG_IGNORE</span> = <code title="2">2</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="MSG_KEXINIT"></a><span class="summary-name">MSG_KEXINIT</span> = <code title="20">20</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="MSG_NEWKEYS"></a><span class="summary-name">MSG_NEWKEYS</span> = <code title="21">21</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="MSG_REQUEST_FAILURE"></a><span class="summary-name">MSG_REQUEST_FAILURE</span> = <code title="82">82</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="MSG_REQUEST_SUCCESS"></a><span class="summary-name">MSG_REQUEST_SUCCESS</span> = <code title="81">81</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="MSG_SERVICE_ACCEPT"></a><span class="summary-name">MSG_SERVICE_ACCEPT</span> = <code title="6">6</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="MSG_SERVICE_REQUEST"></a><span class="summary-name">MSG_SERVICE_REQUEST</span> = <code title="5">5</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="MSG_UNIMPLEMENTED"></a><span class="summary-name">MSG_UNIMPLEMENTED</span> = <code title="3">3</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="MSG_USERAUTH_BANNER"></a><span class="summary-name">MSG_USERAUTH_BANNER</span> = <code title="53">53</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="MSG_USERAUTH_FAILURE"></a><span class="summary-name">MSG_USERAUTH_FAILURE</span> = <code title="51">51</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="MSG_USERAUTH_INFO_REQUEST"></a><span class="summary-name">MSG_USERAUTH_INFO_REQUEST</span> = <code title="60">60</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="MSG_USERAUTH_INFO_RESPONSE"></a><span class="summary-name">MSG_USERAUTH_INFO_RESPONSE</span> = <code title="61">61</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="MSG_USERAUTH_REQUEST"></a><span class="summary-name">MSG_USERAUTH_REQUEST</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="MSG_USERAUTH_SUCCESS"></a><span class="summary-name">MSG_USERAUTH_SUCCESS</span> = <code title="52">52</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="OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED"></a><span class="summary-name">OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED</span> = <code title="1">1</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="OPEN_FAILED_CONNECT_FAILED"></a><span class="summary-name">OPEN_FAILED_CONNECT_FAILED</span> = <code title="2">2</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="OPEN_FAILED_RESOURCE_SHORTAGE"></a><span class="summary-name">OPEN_FAILED_RESOURCE_SHORTAGE</span> = <code title="4">4</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="OPEN_FAILED_UNKNOWN_CHANNEL_TYPE"></a><span class="summary-name">OPEN_FAILED_UNKNOWN_CHANNEL_TYPE</span> = <code title="3">3</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="OPEN_SUCCEEDED"></a><span class="summary-name">OPEN_SUCCEEDED</span> = <code title="0">0</code>
+ </td>
+ </tr>
+</table>
+<!-- ==================== VARIABLES DETAILS ==================== -->
+<a name="section-VariablesDetails"></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">Variables Details</span></td>
+</tr>
+</table>
+<a name="MSG_NAMES"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">MSG_NAMES</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">disconnect</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">ignore</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">unimplemented</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">debug</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 5<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">service-request</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 6<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">service-accept</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 20<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">kexinit</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 21<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">newkeys</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="CONNECTION_FAILED_CODE"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">CONNECTION_FAILED_CODE</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Administratively prohibited</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Connect failed</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Unknown channel type</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Resource shortage</code><code class="variable-quote">'</code><code class="variable-group">}</code>
+</pre></td></tr></table>
+</dd>
+ </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 Jul 6 18:30:26 2008
+ </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.common-pysrc.html b/docs/paramiko.common-pysrc.html
new file mode 100644
index 0000000..31c5a24
--- /dev/null
+++ b/docs/paramiko.common-pysrc.html
@@ -0,0 +1,1905 @@
+<?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.common</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> ::
+ Module&nbsp;common
+ </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.common-pysrc.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</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="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>
+<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 id="link-0" 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
+paramiko.dsskey.MSG_DISCONNECT
+paramiko.hostkeys.MSG_DISCONNECT
+paramiko.kex_gex.MSG_DISCONNECT
+paramiko.kex_group1.MSG_DISCONNECT
+paramiko.packet.MSG_DISCONNECT
+paramiko.pkey.MSG_DISCONNECT
+paramiko.rsakey.MSG_DISCONNECT
+paramiko.server.MSG_DISCONNECT
+paramiko.sftp.MSG_DISCONNECT
+paramiko.sftp_attr.MSG_DISCONNECT
+paramiko.sftp_client.MSG_DISCONNECT
+paramiko.sftp_file.MSG_DISCONNECT
+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-0', 'MSG_DISCONNECT', 'link-0');">MSG_DISCONNECT</a></tt><tt class="py-op">,</tt> <tt id="link-1" 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
+paramiko.dsskey.MSG_IGNORE
+paramiko.hostkeys.MSG_IGNORE
+paramiko.kex_gex.MSG_IGNORE
+paramiko.kex_group1.MSG_IGNORE
+paramiko.packet.MSG_IGNORE
+paramiko.pkey.MSG_IGNORE
+paramiko.rsakey.MSG_IGNORE
+paramiko.server.MSG_IGNORE
+paramiko.sftp.MSG_IGNORE
+paramiko.sftp_attr.MSG_IGNORE
+paramiko.sftp_client.MSG_IGNORE
+paramiko.sftp_file.MSG_IGNORE
+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-1', 'MSG_IGNORE', 'link-1');">MSG_IGNORE</a></tt><tt class="py-op">,</tt> <tt id="link-2" 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
+paramiko.dsskey.MSG_UNIMPLEMENTED
+paramiko.hostkeys.MSG_UNIMPLEMENTED
+paramiko.kex_gex.MSG_UNIMPLEMENTED
+paramiko.kex_group1.MSG_UNIMPLEMENTED
+paramiko.packet.MSG_UNIMPLEMENTED
+paramiko.pkey.MSG_UNIMPLEMENTED
+paramiko.rsakey.MSG_UNIMPLEMENTED
+paramiko.server.MSG_UNIMPLEMENTED
+paramiko.sftp.MSG_UNIMPLEMENTED
+paramiko.sftp_attr.MSG_UNIMPLEMENTED
+paramiko.sftp_client.MSG_UNIMPLEMENTED
+paramiko.sftp_file.MSG_UNIMPLEMENTED
+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-2', 'MSG_UNIMPLEMENTED', 'link-2');">MSG_UNIMPLEMENTED</a></tt><tt class="py-op">,</tt> <tt id="link-3" 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
+paramiko.dsskey.MSG_DEBUG
+paramiko.hostkeys.MSG_DEBUG
+paramiko.kex_gex.MSG_DEBUG
+paramiko.kex_group1.MSG_DEBUG
+paramiko.packet.MSG_DEBUG
+paramiko.pkey.MSG_DEBUG
+paramiko.rsakey.MSG_DEBUG
+paramiko.server.MSG_DEBUG
+paramiko.sftp.MSG_DEBUG
+paramiko.sftp_attr.MSG_DEBUG
+paramiko.sftp_client.MSG_DEBUG
+paramiko.sftp_file.MSG_DEBUG
+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-3', 'MSG_DEBUG', 'link-3');">MSG_DEBUG</a></tt><tt class="py-op">,</tt> <tt id="link-4" class="py-name" targets="Variable paramiko.auth_handler.MSG_SERVICE_REQUEST=paramiko.auth_handler-module.html#MSG_SERVICE_REQUEST,Variable paramiko.channel.MSG_SERVICE_REQUEST=paramiko.channel-module.html#MSG_SERVICE_REQUEST,Variable paramiko.client.MSG_SERVICE_REQUEST=paramiko.client-module.html#MSG_SERVICE_REQUEST,Variable paramiko.common.MSG_SERVICE_REQUEST=paramiko.common-module.html#MSG_SERVICE_REQUEST,Variable paramiko.dsskey.MSG_SERVICE_REQUEST=paramiko.dsskey-module.html#MSG_SERVICE_REQUEST,Variable paramiko.hostkeys.MSG_SERVICE_REQUEST=paramiko.hostkeys-module.html#MSG_SERVICE_REQUEST,Variable paramiko.kex_gex.MSG_SERVICE_REQUEST=paramiko.kex_gex-module.html#MSG_SERVICE_REQUEST,Variable paramiko.kex_group1.MSG_SERVICE_REQUEST=paramiko.kex_group1-module.html#MSG_SERVICE_REQUEST,Variable paramiko.packet.MSG_SERVICE_REQUEST=paramiko.packet-module.html#MSG_SERVICE_REQUEST,Variable paramiko.pkey.MSG_SERVICE_REQUEST=paramiko.pkey-module.html#MSG_SERVICE_REQUEST,Variable paramiko.rsakey.MSG_SERVICE_REQUEST=paramiko.rsakey-module.html#MSG_SERVICE_REQUEST,Variable paramiko.server.MSG_SERVICE_REQUEST=paramiko.server-module.html#MSG_SERVICE_REQUEST,Variable paramiko.sftp.MSG_SERVICE_REQUEST=paramiko.sftp-module.html#MSG_SERVICE_REQUEST,Variable paramiko.sftp_attr.MSG_SERVICE_REQUEST=paramiko.sftp_attr-module.html#MSG_SERVICE_REQUEST,Variable paramiko.sftp_client.MSG_SERVICE_REQUEST=paramiko.sftp_client-module.html#MSG_SERVICE_REQUEST,Variable paramiko.sftp_file.MSG_SERVICE_REQUEST=paramiko.sftp_file-module.html#MSG_SERVICE_REQUEST,Variable paramiko.sftp_handle.MSG_SERVICE_REQUEST=paramiko.sftp_handle-module.html#MSG_SERVICE_REQUEST,Variable paramiko.sftp_server.MSG_SERVICE_REQUEST=paramiko.sftp_server-module.html#MSG_SERVICE_REQUEST,Variable paramiko.sftp_si.MSG_SERVICE_REQUEST=paramiko.sftp_si-module.html#MSG_SERVICE_REQUEST,Variable paramiko.transport.MSG_SERVICE_REQUEST=paramiko.transport-module.html#MSG_SERVICE_REQUEST,Variable paramiko.util.MSG_SERVICE_REQUEST=paramiko.util-module.html#MSG_SERVICE_REQUEST"><a title="paramiko.auth_handler.MSG_SERVICE_REQUEST
+paramiko.channel.MSG_SERVICE_REQUEST
+paramiko.client.MSG_SERVICE_REQUEST
+paramiko.common.MSG_SERVICE_REQUEST
+paramiko.dsskey.MSG_SERVICE_REQUEST
+paramiko.hostkeys.MSG_SERVICE_REQUEST
+paramiko.kex_gex.MSG_SERVICE_REQUEST
+paramiko.kex_group1.MSG_SERVICE_REQUEST
+paramiko.packet.MSG_SERVICE_REQUEST
+paramiko.pkey.MSG_SERVICE_REQUEST
+paramiko.rsakey.MSG_SERVICE_REQUEST
+paramiko.server.MSG_SERVICE_REQUEST
+paramiko.sftp.MSG_SERVICE_REQUEST
+paramiko.sftp_attr.MSG_SERVICE_REQUEST
+paramiko.sftp_client.MSG_SERVICE_REQUEST
+paramiko.sftp_file.MSG_SERVICE_REQUEST
+paramiko.sftp_handle.MSG_SERVICE_REQUEST
+paramiko.sftp_server.MSG_SERVICE_REQUEST
+paramiko.sftp_si.MSG_SERVICE_REQUEST
+paramiko.transport.MSG_SERVICE_REQUEST
+paramiko.util.MSG_SERVICE_REQUEST" class="py-name" href="#" onclick="return doclink('link-4', 'MSG_SERVICE_REQUEST', 'link-4');">MSG_SERVICE_REQUEST</a></tt><tt class="py-op">,</tt> \ </tt>
+<a name="L24"></a><tt class="py-lineno"> 24</tt> <tt class="py-line"> <tt id="link-5" 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
+paramiko.common.MSG_SERVICE_ACCEPT
+paramiko.dsskey.MSG_SERVICE_ACCEPT
+paramiko.hostkeys.MSG_SERVICE_ACCEPT
+paramiko.kex_gex.MSG_SERVICE_ACCEPT
+paramiko.kex_group1.MSG_SERVICE_ACCEPT
+paramiko.packet.MSG_SERVICE_ACCEPT
+paramiko.pkey.MSG_SERVICE_ACCEPT
+paramiko.rsakey.MSG_SERVICE_ACCEPT
+paramiko.server.MSG_SERVICE_ACCEPT
+paramiko.sftp.MSG_SERVICE_ACCEPT
+paramiko.sftp_attr.MSG_SERVICE_ACCEPT
+paramiko.sftp_client.MSG_SERVICE_ACCEPT
+paramiko.sftp_file.MSG_SERVICE_ACCEPT
+paramiko.sftp_handle.MSG_SERVICE_ACCEPT
+paramiko.sftp_server.MSG_SERVICE_ACCEPT
+paramiko.sftp_si.MSG_SERVICE_ACCEPT
+paramiko.transport.MSG_SERVICE_ACCEPT
+paramiko.util.MSG_SERVICE_ACCEPT" class="py-name" href="#" onclick="return doclink('link-5', 'MSG_SERVICE_ACCEPT', 'link-5');">MSG_SERVICE_ACCEPT</a></tt> <tt class="py-op">=</tt> <tt class="py-name">range</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>
+<a name="L25"></a><tt class="py-lineno"> 25</tt> <tt class="py-line"><tt id="link-6" 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
+paramiko.dsskey.MSG_KEXINIT
+paramiko.hostkeys.MSG_KEXINIT
+paramiko.kex_gex.MSG_KEXINIT
+paramiko.kex_group1.MSG_KEXINIT
+paramiko.packet.MSG_KEXINIT
+paramiko.pkey.MSG_KEXINIT
+paramiko.rsakey.MSG_KEXINIT
+paramiko.server.MSG_KEXINIT
+paramiko.sftp.MSG_KEXINIT
+paramiko.sftp_attr.MSG_KEXINIT
+paramiko.sftp_client.MSG_KEXINIT
+paramiko.sftp_file.MSG_KEXINIT
+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-6', 'MSG_KEXINIT', 'link-6');">MSG_KEXINIT</a></tt><tt class="py-op">,</tt> <tt id="link-7" 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
+paramiko.dsskey.MSG_NEWKEYS
+paramiko.hostkeys.MSG_NEWKEYS
+paramiko.kex_gex.MSG_NEWKEYS
+paramiko.kex_group1.MSG_NEWKEYS
+paramiko.packet.MSG_NEWKEYS
+paramiko.pkey.MSG_NEWKEYS
+paramiko.rsakey.MSG_NEWKEYS
+paramiko.server.MSG_NEWKEYS
+paramiko.sftp.MSG_NEWKEYS
+paramiko.sftp_attr.MSG_NEWKEYS
+paramiko.sftp_client.MSG_NEWKEYS
+paramiko.sftp_file.MSG_NEWKEYS
+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-7', 'MSG_NEWKEYS', 'link-7');">MSG_NEWKEYS</a></tt> <tt class="py-op">=</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">20</tt><tt class="py-op">,</tt> <tt class="py-number">22</tt><tt class="py-op">)</tt> </tt>
+<a name="L26"></a><tt class="py-lineno"> 26</tt> <tt class="py-line"><tt id="link-8" class="py-name" targets="Variable paramiko.auth_handler.MSG_USERAUTH_REQUEST=paramiko.auth_handler-module.html#MSG_USERAUTH_REQUEST,Variable paramiko.channel.MSG_USERAUTH_REQUEST=paramiko.channel-module.html#MSG_USERAUTH_REQUEST,Variable paramiko.client.MSG_USERAUTH_REQUEST=paramiko.client-module.html#MSG_USERAUTH_REQUEST,Variable paramiko.common.MSG_USERAUTH_REQUEST=paramiko.common-module.html#MSG_USERAUTH_REQUEST,Variable paramiko.dsskey.MSG_USERAUTH_REQUEST=paramiko.dsskey-module.html#MSG_USERAUTH_REQUEST,Variable paramiko.hostkeys.MSG_USERAUTH_REQUEST=paramiko.hostkeys-module.html#MSG_USERAUTH_REQUEST,Variable paramiko.kex_gex.MSG_USERAUTH_REQUEST=paramiko.kex_gex-module.html#MSG_USERAUTH_REQUEST,Variable paramiko.kex_group1.MSG_USERAUTH_REQUEST=paramiko.kex_group1-module.html#MSG_USERAUTH_REQUEST,Variable paramiko.packet.MSG_USERAUTH_REQUEST=paramiko.packet-module.html#MSG_USERAUTH_REQUEST,Variable paramiko.pkey.MSG_USERAUTH_REQUEST=paramiko.pkey-module.html#MSG_USERAUTH_REQUEST,Variable paramiko.rsakey.MSG_USERAUTH_REQUEST=paramiko.rsakey-module.html#MSG_USERAUTH_REQUEST,Variable paramiko.server.MSG_USERAUTH_REQUEST=paramiko.server-module.html#MSG_USERAUTH_REQUEST,Variable paramiko.sftp.MSG_USERAUTH_REQUEST=paramiko.sftp-module.html#MSG_USERAUTH_REQUEST,Variable paramiko.sftp_attr.MSG_USERAUTH_REQUEST=paramiko.sftp_attr-module.html#MSG_USERAUTH_REQUEST,Variable paramiko.sftp_client.MSG_USERAUTH_REQUEST=paramiko.sftp_client-module.html#MSG_USERAUTH_REQUEST,Variable paramiko.sftp_file.MSG_USERAUTH_REQUEST=paramiko.sftp_file-module.html#MSG_USERAUTH_REQUEST,Variable paramiko.sftp_handle.MSG_USERAUTH_REQUEST=paramiko.sftp_handle-module.html#MSG_USERAUTH_REQUEST,Variable paramiko.sftp_server.MSG_USERAUTH_REQUEST=paramiko.sftp_server-module.html#MSG_USERAUTH_REQUEST,Variable paramiko.sftp_si.MSG_USERAUTH_REQUEST=paramiko.sftp_si-module.html#MSG_USERAUTH_REQUEST,Variable paramiko.transport.MSG_USERAUTH_REQUEST=paramiko.transport-module.html#MSG_USERAUTH_REQUEST,Variable paramiko.util.MSG_USERAUTH_REQUEST=paramiko.util-module.html#MSG_USERAUTH_REQUEST"><a title="paramiko.auth_handler.MSG_USERAUTH_REQUEST
+paramiko.channel.MSG_USERAUTH_REQUEST
+paramiko.client.MSG_USERAUTH_REQUEST
+paramiko.common.MSG_USERAUTH_REQUEST
+paramiko.dsskey.MSG_USERAUTH_REQUEST
+paramiko.hostkeys.MSG_USERAUTH_REQUEST
+paramiko.kex_gex.MSG_USERAUTH_REQUEST
+paramiko.kex_group1.MSG_USERAUTH_REQUEST
+paramiko.packet.MSG_USERAUTH_REQUEST
+paramiko.pkey.MSG_USERAUTH_REQUEST
+paramiko.rsakey.MSG_USERAUTH_REQUEST
+paramiko.server.MSG_USERAUTH_REQUEST
+paramiko.sftp.MSG_USERAUTH_REQUEST
+paramiko.sftp_attr.MSG_USERAUTH_REQUEST
+paramiko.sftp_client.MSG_USERAUTH_REQUEST
+paramiko.sftp_file.MSG_USERAUTH_REQUEST
+paramiko.sftp_handle.MSG_USERAUTH_REQUEST
+paramiko.sftp_server.MSG_USERAUTH_REQUEST
+paramiko.sftp_si.MSG_USERAUTH_REQUEST
+paramiko.transport.MSG_USERAUTH_REQUEST
+paramiko.util.MSG_USERAUTH_REQUEST" class="py-name" href="#" onclick="return doclink('link-8', 'MSG_USERAUTH_REQUEST', 'link-8');">MSG_USERAUTH_REQUEST</a></tt><tt class="py-op">,</tt> <tt id="link-9" class="py-name" targets="Variable paramiko.auth_handler.MSG_USERAUTH_FAILURE=paramiko.auth_handler-module.html#MSG_USERAUTH_FAILURE,Variable paramiko.channel.MSG_USERAUTH_FAILURE=paramiko.channel-module.html#MSG_USERAUTH_FAILURE,Variable paramiko.client.MSG_USERAUTH_FAILURE=paramiko.client-module.html#MSG_USERAUTH_FAILURE,Variable paramiko.common.MSG_USERAUTH_FAILURE=paramiko.common-module.html#MSG_USERAUTH_FAILURE,Variable paramiko.dsskey.MSG_USERAUTH_FAILURE=paramiko.dsskey-module.html#MSG_USERAUTH_FAILURE,Variable paramiko.hostkeys.MSG_USERAUTH_FAILURE=paramiko.hostkeys-module.html#MSG_USERAUTH_FAILURE,Variable paramiko.kex_gex.MSG_USERAUTH_FAILURE=paramiko.kex_gex-module.html#MSG_USERAUTH_FAILURE,Variable paramiko.kex_group1.MSG_USERAUTH_FAILURE=paramiko.kex_group1-module.html#MSG_USERAUTH_FAILURE,Variable paramiko.packet.MSG_USERAUTH_FAILURE=paramiko.packet-module.html#MSG_USERAUTH_FAILURE,Variable paramiko.pkey.MSG_USERAUTH_FAILURE=paramiko.pkey-module.html#MSG_USERAUTH_FAILURE,Variable paramiko.rsakey.MSG_USERAUTH_FAILURE=paramiko.rsakey-module.html#MSG_USERAUTH_FAILURE,Variable paramiko.server.MSG_USERAUTH_FAILURE=paramiko.server-module.html#MSG_USERAUTH_FAILURE,Variable paramiko.sftp.MSG_USERAUTH_FAILURE=paramiko.sftp-module.html#MSG_USERAUTH_FAILURE,Variable paramiko.sftp_attr.MSG_USERAUTH_FAILURE=paramiko.sftp_attr-module.html#MSG_USERAUTH_FAILURE,Variable paramiko.sftp_client.MSG_USERAUTH_FAILURE=paramiko.sftp_client-module.html#MSG_USERAUTH_FAILURE,Variable paramiko.sftp_file.MSG_USERAUTH_FAILURE=paramiko.sftp_file-module.html#MSG_USERAUTH_FAILURE,Variable paramiko.sftp_handle.MSG_USERAUTH_FAILURE=paramiko.sftp_handle-module.html#MSG_USERAUTH_FAILURE,Variable paramiko.sftp_server.MSG_USERAUTH_FAILURE=paramiko.sftp_server-module.html#MSG_USERAUTH_FAILURE,Variable paramiko.sftp_si.MSG_USERAUTH_FAILURE=paramiko.sftp_si-module.html#MSG_USERAUTH_FAILURE,Variable paramiko.transport.MSG_USERAUTH_FAILURE=paramiko.transport-module.html#MSG_USERAUTH_FAILURE,Variable paramiko.util.MSG_USERAUTH_FAILURE=paramiko.util-module.html#MSG_USERAUTH_FAILURE"><a title="paramiko.auth_handler.MSG_USERAUTH_FAILURE
+paramiko.channel.MSG_USERAUTH_FAILURE
+paramiko.client.MSG_USERAUTH_FAILURE
+paramiko.common.MSG_USERAUTH_FAILURE
+paramiko.dsskey.MSG_USERAUTH_FAILURE
+paramiko.hostkeys.MSG_USERAUTH_FAILURE
+paramiko.kex_gex.MSG_USERAUTH_FAILURE
+paramiko.kex_group1.MSG_USERAUTH_FAILURE
+paramiko.packet.MSG_USERAUTH_FAILURE
+paramiko.pkey.MSG_USERAUTH_FAILURE
+paramiko.rsakey.MSG_USERAUTH_FAILURE
+paramiko.server.MSG_USERAUTH_FAILURE
+paramiko.sftp.MSG_USERAUTH_FAILURE
+paramiko.sftp_attr.MSG_USERAUTH_FAILURE
+paramiko.sftp_client.MSG_USERAUTH_FAILURE
+paramiko.sftp_file.MSG_USERAUTH_FAILURE
+paramiko.sftp_handle.MSG_USERAUTH_FAILURE
+paramiko.sftp_server.MSG_USERAUTH_FAILURE
+paramiko.sftp_si.MSG_USERAUTH_FAILURE
+paramiko.transport.MSG_USERAUTH_FAILURE
+paramiko.util.MSG_USERAUTH_FAILURE" class="py-name" href="#" onclick="return doclink('link-9', 'MSG_USERAUTH_FAILURE', 'link-9');">MSG_USERAUTH_FAILURE</a></tt><tt class="py-op">,</tt> <tt id="link-10" class="py-name" targets="Variable paramiko.auth_handler.MSG_USERAUTH_SUCCESS=paramiko.auth_handler-module.html#MSG_USERAUTH_SUCCESS,Variable paramiko.channel.MSG_USERAUTH_SUCCESS=paramiko.channel-module.html#MSG_USERAUTH_SUCCESS,Variable paramiko.client.MSG_USERAUTH_SUCCESS=paramiko.client-module.html#MSG_USERAUTH_SUCCESS,Variable paramiko.common.MSG_USERAUTH_SUCCESS=paramiko.common-module.html#MSG_USERAUTH_SUCCESS,Variable paramiko.dsskey.MSG_USERAUTH_SUCCESS=paramiko.dsskey-module.html#MSG_USERAUTH_SUCCESS,Variable paramiko.hostkeys.MSG_USERAUTH_SUCCESS=paramiko.hostkeys-module.html#MSG_USERAUTH_SUCCESS,Variable paramiko.kex_gex.MSG_USERAUTH_SUCCESS=paramiko.kex_gex-module.html#MSG_USERAUTH_SUCCESS,Variable paramiko.kex_group1.MSG_USERAUTH_SUCCESS=paramiko.kex_group1-module.html#MSG_USERAUTH_SUCCESS,Variable paramiko.packet.MSG_USERAUTH_SUCCESS=paramiko.packet-module.html#MSG_USERAUTH_SUCCESS,Variable paramiko.pkey.MSG_USERAUTH_SUCCESS=paramiko.pkey-module.html#MSG_USERAUTH_SUCCESS,Variable paramiko.rsakey.MSG_USERAUTH_SUCCESS=paramiko.rsakey-module.html#MSG_USERAUTH_SUCCESS,Variable paramiko.server.MSG_USERAUTH_SUCCESS=paramiko.server-module.html#MSG_USERAUTH_SUCCESS,Variable paramiko.sftp.MSG_USERAUTH_SUCCESS=paramiko.sftp-module.html#MSG_USERAUTH_SUCCESS,Variable paramiko.sftp_attr.MSG_USERAUTH_SUCCESS=paramiko.sftp_attr-module.html#MSG_USERAUTH_SUCCESS,Variable paramiko.sftp_client.MSG_USERAUTH_SUCCESS=paramiko.sftp_client-module.html#MSG_USERAUTH_SUCCESS,Variable paramiko.sftp_file.MSG_USERAUTH_SUCCESS=paramiko.sftp_file-module.html#MSG_USERAUTH_SUCCESS,Variable paramiko.sftp_handle.MSG_USERAUTH_SUCCESS=paramiko.sftp_handle-module.html#MSG_USERAUTH_SUCCESS,Variable paramiko.sftp_server.MSG_USERAUTH_SUCCESS=paramiko.sftp_server-module.html#MSG_USERAUTH_SUCCESS,Variable paramiko.sftp_si.MSG_USERAUTH_SUCCESS=paramiko.sftp_si-module.html#MSG_USERAUTH_SUCCESS,Variable paramiko.transport.MSG_USERAUTH_SUCCESS=paramiko.transport-module.html#MSG_USERAUTH_SUCCESS,Variable paramiko.util.MSG_USERAUTH_SUCCESS=paramiko.util-module.html#MSG_USERAUTH_SUCCESS"><a title="paramiko.auth_handler.MSG_USERAUTH_SUCCESS
+paramiko.channel.MSG_USERAUTH_SUCCESS
+paramiko.client.MSG_USERAUTH_SUCCESS
+paramiko.common.MSG_USERAUTH_SUCCESS
+paramiko.dsskey.MSG_USERAUTH_SUCCESS
+paramiko.hostkeys.MSG_USERAUTH_SUCCESS
+paramiko.kex_gex.MSG_USERAUTH_SUCCESS
+paramiko.kex_group1.MSG_USERAUTH_SUCCESS
+paramiko.packet.MSG_USERAUTH_SUCCESS
+paramiko.pkey.MSG_USERAUTH_SUCCESS
+paramiko.rsakey.MSG_USERAUTH_SUCCESS
+paramiko.server.MSG_USERAUTH_SUCCESS
+paramiko.sftp.MSG_USERAUTH_SUCCESS
+paramiko.sftp_attr.MSG_USERAUTH_SUCCESS
+paramiko.sftp_client.MSG_USERAUTH_SUCCESS
+paramiko.sftp_file.MSG_USERAUTH_SUCCESS
+paramiko.sftp_handle.MSG_USERAUTH_SUCCESS
+paramiko.sftp_server.MSG_USERAUTH_SUCCESS
+paramiko.sftp_si.MSG_USERAUTH_SUCCESS
+paramiko.transport.MSG_USERAUTH_SUCCESS
+paramiko.util.MSG_USERAUTH_SUCCESS" class="py-name" href="#" onclick="return doclink('link-10', 'MSG_USERAUTH_SUCCESS', 'link-10');">MSG_USERAUTH_SUCCESS</a></tt><tt class="py-op">,</tt> \ </tt>
+<a name="L27"></a><tt class="py-lineno"> 27</tt> <tt class="py-line"> <tt id="link-11" class="py-name" targets="Variable paramiko.auth_handler.MSG_USERAUTH_BANNER=paramiko.auth_handler-module.html#MSG_USERAUTH_BANNER,Variable paramiko.channel.MSG_USERAUTH_BANNER=paramiko.channel-module.html#MSG_USERAUTH_BANNER,Variable paramiko.client.MSG_USERAUTH_BANNER=paramiko.client-module.html#MSG_USERAUTH_BANNER,Variable paramiko.common.MSG_USERAUTH_BANNER=paramiko.common-module.html#MSG_USERAUTH_BANNER,Variable paramiko.dsskey.MSG_USERAUTH_BANNER=paramiko.dsskey-module.html#MSG_USERAUTH_BANNER,Variable paramiko.hostkeys.MSG_USERAUTH_BANNER=paramiko.hostkeys-module.html#MSG_USERAUTH_BANNER,Variable paramiko.kex_gex.MSG_USERAUTH_BANNER=paramiko.kex_gex-module.html#MSG_USERAUTH_BANNER,Variable paramiko.kex_group1.MSG_USERAUTH_BANNER=paramiko.kex_group1-module.html#MSG_USERAUTH_BANNER,Variable paramiko.packet.MSG_USERAUTH_BANNER=paramiko.packet-module.html#MSG_USERAUTH_BANNER,Variable paramiko.pkey.MSG_USERAUTH_BANNER=paramiko.pkey-module.html#MSG_USERAUTH_BANNER,Variable paramiko.rsakey.MSG_USERAUTH_BANNER=paramiko.rsakey-module.html#MSG_USERAUTH_BANNER,Variable paramiko.server.MSG_USERAUTH_BANNER=paramiko.server-module.html#MSG_USERAUTH_BANNER,Variable paramiko.sftp.MSG_USERAUTH_BANNER=paramiko.sftp-module.html#MSG_USERAUTH_BANNER,Variable paramiko.sftp_attr.MSG_USERAUTH_BANNER=paramiko.sftp_attr-module.html#MSG_USERAUTH_BANNER,Variable paramiko.sftp_client.MSG_USERAUTH_BANNER=paramiko.sftp_client-module.html#MSG_USERAUTH_BANNER,Variable paramiko.sftp_file.MSG_USERAUTH_BANNER=paramiko.sftp_file-module.html#MSG_USERAUTH_BANNER,Variable paramiko.sftp_handle.MSG_USERAUTH_BANNER=paramiko.sftp_handle-module.html#MSG_USERAUTH_BANNER,Variable paramiko.sftp_server.MSG_USERAUTH_BANNER=paramiko.sftp_server-module.html#MSG_USERAUTH_BANNER,Variable paramiko.sftp_si.MSG_USERAUTH_BANNER=paramiko.sftp_si-module.html#MSG_USERAUTH_BANNER,Variable paramiko.transport.MSG_USERAUTH_BANNER=paramiko.transport-module.html#MSG_USERAUTH_BANNER,Variable paramiko.util.MSG_USERAUTH_BANNER=paramiko.util-module.html#MSG_USERAUTH_BANNER"><a title="paramiko.auth_handler.MSG_USERAUTH_BANNER
+paramiko.channel.MSG_USERAUTH_BANNER
+paramiko.client.MSG_USERAUTH_BANNER
+paramiko.common.MSG_USERAUTH_BANNER
+paramiko.dsskey.MSG_USERAUTH_BANNER
+paramiko.hostkeys.MSG_USERAUTH_BANNER
+paramiko.kex_gex.MSG_USERAUTH_BANNER
+paramiko.kex_group1.MSG_USERAUTH_BANNER
+paramiko.packet.MSG_USERAUTH_BANNER
+paramiko.pkey.MSG_USERAUTH_BANNER
+paramiko.rsakey.MSG_USERAUTH_BANNER
+paramiko.server.MSG_USERAUTH_BANNER
+paramiko.sftp.MSG_USERAUTH_BANNER
+paramiko.sftp_attr.MSG_USERAUTH_BANNER
+paramiko.sftp_client.MSG_USERAUTH_BANNER
+paramiko.sftp_file.MSG_USERAUTH_BANNER
+paramiko.sftp_handle.MSG_USERAUTH_BANNER
+paramiko.sftp_server.MSG_USERAUTH_BANNER
+paramiko.sftp_si.MSG_USERAUTH_BANNER
+paramiko.transport.MSG_USERAUTH_BANNER
+paramiko.util.MSG_USERAUTH_BANNER" class="py-name" href="#" onclick="return doclink('link-11', 'MSG_USERAUTH_BANNER', 'link-11');">MSG_USERAUTH_BANNER</a></tt> <tt class="py-op">=</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">50</tt><tt class="py-op">,</tt> <tt class="py-number">54</tt><tt class="py-op">)</tt> </tt>
+<a name="L28"></a><tt class="py-lineno"> 28</tt> <tt class="py-line"><tt id="link-12" 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
+paramiko.common.MSG_USERAUTH_PK_OK
+paramiko.dsskey.MSG_USERAUTH_PK_OK
+paramiko.hostkeys.MSG_USERAUTH_PK_OK
+paramiko.kex_gex.MSG_USERAUTH_PK_OK
+paramiko.kex_group1.MSG_USERAUTH_PK_OK
+paramiko.packet.MSG_USERAUTH_PK_OK
+paramiko.pkey.MSG_USERAUTH_PK_OK
+paramiko.rsakey.MSG_USERAUTH_PK_OK
+paramiko.server.MSG_USERAUTH_PK_OK
+paramiko.sftp.MSG_USERAUTH_PK_OK
+paramiko.sftp_attr.MSG_USERAUTH_PK_OK
+paramiko.sftp_client.MSG_USERAUTH_PK_OK
+paramiko.sftp_file.MSG_USERAUTH_PK_OK
+paramiko.sftp_handle.MSG_USERAUTH_PK_OK
+paramiko.sftp_server.MSG_USERAUTH_PK_OK
+paramiko.sftp_si.MSG_USERAUTH_PK_OK
+paramiko.transport.MSG_USERAUTH_PK_OK
+paramiko.util.MSG_USERAUTH_PK_OK" class="py-name" href="#" onclick="return doclink('link-12', 'MSG_USERAUTH_PK_OK', 'link-12');">MSG_USERAUTH_PK_OK</a></tt> <tt class="py-op">=</tt> <tt class="py-number">60</tt> </tt>
+<a name="L29"></a><tt class="py-lineno"> 29</tt> <tt class="py-line"><tt id="link-13" 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
+paramiko.common.MSG_USERAUTH_INFO_REQUEST
+paramiko.dsskey.MSG_USERAUTH_INFO_REQUEST
+paramiko.hostkeys.MSG_USERAUTH_INFO_REQUEST
+paramiko.kex_gex.MSG_USERAUTH_INFO_REQUEST
+paramiko.kex_group1.MSG_USERAUTH_INFO_REQUEST
+paramiko.packet.MSG_USERAUTH_INFO_REQUEST
+paramiko.pkey.MSG_USERAUTH_INFO_REQUEST
+paramiko.rsakey.MSG_USERAUTH_INFO_REQUEST
+paramiko.server.MSG_USERAUTH_INFO_REQUEST
+paramiko.sftp.MSG_USERAUTH_INFO_REQUEST
+paramiko.sftp_attr.MSG_USERAUTH_INFO_REQUEST
+paramiko.sftp_client.MSG_USERAUTH_INFO_REQUEST
+paramiko.sftp_file.MSG_USERAUTH_INFO_REQUEST
+paramiko.sftp_handle.MSG_USERAUTH_INFO_REQUEST
+paramiko.sftp_server.MSG_USERAUTH_INFO_REQUEST
+paramiko.sftp_si.MSG_USERAUTH_INFO_REQUEST
+paramiko.transport.MSG_USERAUTH_INFO_REQUEST
+paramiko.util.MSG_USERAUTH_INFO_REQUEST" class="py-name" href="#" onclick="return doclink('link-13', 'MSG_USERAUTH_INFO_REQUEST', 'link-13');">MSG_USERAUTH_INFO_REQUEST</a></tt><tt class="py-op">,</tt> <tt id="link-14" class="py-name" targets="Variable paramiko.auth_handler.MSG_USERAUTH_INFO_RESPONSE=paramiko.auth_handler-module.html#MSG_USERAUTH_INFO_RESPONSE,Variable paramiko.channel.MSG_USERAUTH_INFO_RESPONSE=paramiko.channel-module.html#MSG_USERAUTH_INFO_RESPONSE,Variable paramiko.client.MSG_USERAUTH_INFO_RESPONSE=paramiko.client-module.html#MSG_USERAUTH_INFO_RESPONSE,Variable paramiko.common.MSG_USERAUTH_INFO_RESPONSE=paramiko.common-module.html#MSG_USERAUTH_INFO_RESPONSE,Variable paramiko.dsskey.MSG_USERAUTH_INFO_RESPONSE=paramiko.dsskey-module.html#MSG_USERAUTH_INFO_RESPONSE,Variable paramiko.hostkeys.MSG_USERAUTH_INFO_RESPONSE=paramiko.hostkeys-module.html#MSG_USERAUTH_INFO_RESPONSE,Variable paramiko.kex_gex.MSG_USERAUTH_INFO_RESPONSE=paramiko.kex_gex-module.html#MSG_USERAUTH_INFO_RESPONSE,Variable paramiko.kex_group1.MSG_USERAUTH_INFO_RESPONSE=paramiko.kex_group1-module.html#MSG_USERAUTH_INFO_RESPONSE,Variable paramiko.packet.MSG_USERAUTH_INFO_RESPONSE=paramiko.packet-module.html#MSG_USERAUTH_INFO_RESPONSE,Variable paramiko.pkey.MSG_USERAUTH_INFO_RESPONSE=paramiko.pkey-module.html#MSG_USERAUTH_INFO_RESPONSE,Variable paramiko.rsakey.MSG_USERAUTH_INFO_RESPONSE=paramiko.rsakey-module.html#MSG_USERAUTH_INFO_RESPONSE,Variable paramiko.server.MSG_USERAUTH_INFO_RESPONSE=paramiko.server-module.html#MSG_USERAUTH_INFO_RESPONSE,Variable paramiko.sftp.MSG_USERAUTH_INFO_RESPONSE=paramiko.sftp-module.html#MSG_USERAUTH_INFO_RESPONSE,Variable paramiko.sftp_attr.MSG_USERAUTH_INFO_RESPONSE=paramiko.sftp_attr-module.html#MSG_USERAUTH_INFO_RESPONSE,Variable paramiko.sftp_client.MSG_USERAUTH_INFO_RESPONSE=paramiko.sftp_client-module.html#MSG_USERAUTH_INFO_RESPONSE,Variable paramiko.sftp_file.MSG_USERAUTH_INFO_RESPONSE=paramiko.sftp_file-module.html#MSG_USERAUTH_INFO_RESPONSE,Variable paramiko.sftp_handle.MSG_USERAUTH_INFO_RESPONSE=paramiko.sftp_handle-module.html#MSG_USERAUTH_INFO_RESPONSE,Variable paramiko.sftp_server.MSG_USERAUTH_INFO_RESPONSE=paramiko.sftp_server-module.html#MSG_USERAUTH_INFO_RESPONSE,Variable paramiko.sftp_si.MSG_USERAUTH_INFO_RESPONSE=paramiko.sftp_si-module.html#MSG_USERAUTH_INFO_RESPONSE,Variable paramiko.transport.MSG_USERAUTH_INFO_RESPONSE=paramiko.transport-module.html#MSG_USERAUTH_INFO_RESPONSE,Variable paramiko.util.MSG_USERAUTH_INFO_RESPONSE=paramiko.util-module.html#MSG_USERAUTH_INFO_RESPONSE"><a title="paramiko.auth_handler.MSG_USERAUTH_INFO_RESPONSE
+paramiko.channel.MSG_USERAUTH_INFO_RESPONSE
+paramiko.client.MSG_USERAUTH_INFO_RESPONSE
+paramiko.common.MSG_USERAUTH_INFO_RESPONSE
+paramiko.dsskey.MSG_USERAUTH_INFO_RESPONSE
+paramiko.hostkeys.MSG_USERAUTH_INFO_RESPONSE
+paramiko.kex_gex.MSG_USERAUTH_INFO_RESPONSE
+paramiko.kex_group1.MSG_USERAUTH_INFO_RESPONSE
+paramiko.packet.MSG_USERAUTH_INFO_RESPONSE
+paramiko.pkey.MSG_USERAUTH_INFO_RESPONSE
+paramiko.rsakey.MSG_USERAUTH_INFO_RESPONSE
+paramiko.server.MSG_USERAUTH_INFO_RESPONSE
+paramiko.sftp.MSG_USERAUTH_INFO_RESPONSE
+paramiko.sftp_attr.MSG_USERAUTH_INFO_RESPONSE
+paramiko.sftp_client.MSG_USERAUTH_INFO_RESPONSE
+paramiko.sftp_file.MSG_USERAUTH_INFO_RESPONSE
+paramiko.sftp_handle.MSG_USERAUTH_INFO_RESPONSE
+paramiko.sftp_server.MSG_USERAUTH_INFO_RESPONSE
+paramiko.sftp_si.MSG_USERAUTH_INFO_RESPONSE
+paramiko.transport.MSG_USERAUTH_INFO_RESPONSE
+paramiko.util.MSG_USERAUTH_INFO_RESPONSE" class="py-name" href="#" onclick="return doclink('link-14', 'MSG_USERAUTH_INFO_RESPONSE', 'link-14');">MSG_USERAUTH_INFO_RESPONSE</a></tt> <tt class="py-op">=</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">60</tt><tt class="py-op">,</tt> <tt class="py-number">62</tt><tt class="py-op">)</tt> </tt>
+<a name="L30"></a><tt class="py-lineno"> 30</tt> <tt class="py-line"><tt id="link-15" 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
+paramiko.dsskey.MSG_GLOBAL_REQUEST
+paramiko.hostkeys.MSG_GLOBAL_REQUEST
+paramiko.kex_gex.MSG_GLOBAL_REQUEST
+paramiko.kex_group1.MSG_GLOBAL_REQUEST
+paramiko.packet.MSG_GLOBAL_REQUEST
+paramiko.pkey.MSG_GLOBAL_REQUEST
+paramiko.rsakey.MSG_GLOBAL_REQUEST
+paramiko.server.MSG_GLOBAL_REQUEST
+paramiko.sftp.MSG_GLOBAL_REQUEST
+paramiko.sftp_attr.MSG_GLOBAL_REQUEST
+paramiko.sftp_client.MSG_GLOBAL_REQUEST
+paramiko.sftp_file.MSG_GLOBAL_REQUEST
+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-15', 'MSG_GLOBAL_REQUEST', 'link-15');">MSG_GLOBAL_REQUEST</a></tt><tt class="py-op">,</tt> <tt id="link-16" 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
+paramiko.dsskey.MSG_REQUEST_SUCCESS
+paramiko.hostkeys.MSG_REQUEST_SUCCESS
+paramiko.kex_gex.MSG_REQUEST_SUCCESS
+paramiko.kex_group1.MSG_REQUEST_SUCCESS
+paramiko.packet.MSG_REQUEST_SUCCESS
+paramiko.pkey.MSG_REQUEST_SUCCESS
+paramiko.rsakey.MSG_REQUEST_SUCCESS
+paramiko.server.MSG_REQUEST_SUCCESS
+paramiko.sftp.MSG_REQUEST_SUCCESS
+paramiko.sftp_attr.MSG_REQUEST_SUCCESS
+paramiko.sftp_client.MSG_REQUEST_SUCCESS
+paramiko.sftp_file.MSG_REQUEST_SUCCESS
+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-16', 'MSG_REQUEST_SUCCESS', 'link-16');">MSG_REQUEST_SUCCESS</a></tt><tt class="py-op">,</tt> <tt id="link-17" 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
+paramiko.dsskey.MSG_REQUEST_FAILURE
+paramiko.hostkeys.MSG_REQUEST_FAILURE
+paramiko.kex_gex.MSG_REQUEST_FAILURE
+paramiko.kex_group1.MSG_REQUEST_FAILURE
+paramiko.packet.MSG_REQUEST_FAILURE
+paramiko.pkey.MSG_REQUEST_FAILURE
+paramiko.rsakey.MSG_REQUEST_FAILURE
+paramiko.server.MSG_REQUEST_FAILURE
+paramiko.sftp.MSG_REQUEST_FAILURE
+paramiko.sftp_attr.MSG_REQUEST_FAILURE
+paramiko.sftp_client.MSG_REQUEST_FAILURE
+paramiko.sftp_file.MSG_REQUEST_FAILURE
+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-17', 'MSG_REQUEST_FAILURE', 'link-17');">MSG_REQUEST_FAILURE</a></tt> <tt class="py-op">=</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">80</tt><tt class="py-op">,</tt> <tt class="py-number">83</tt><tt class="py-op">)</tt> </tt>
+<a name="L31"></a><tt class="py-lineno"> 31</tt> <tt class="py-line"><tt id="link-18" 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
+paramiko.dsskey.MSG_CHANNEL_OPEN
+paramiko.hostkeys.MSG_CHANNEL_OPEN
+paramiko.kex_gex.MSG_CHANNEL_OPEN
+paramiko.kex_group1.MSG_CHANNEL_OPEN
+paramiko.packet.MSG_CHANNEL_OPEN
+paramiko.pkey.MSG_CHANNEL_OPEN
+paramiko.rsakey.MSG_CHANNEL_OPEN
+paramiko.server.MSG_CHANNEL_OPEN
+paramiko.sftp.MSG_CHANNEL_OPEN
+paramiko.sftp_attr.MSG_CHANNEL_OPEN
+paramiko.sftp_client.MSG_CHANNEL_OPEN
+paramiko.sftp_file.MSG_CHANNEL_OPEN
+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-18', 'MSG_CHANNEL_OPEN', 'link-18');">MSG_CHANNEL_OPEN</a></tt><tt class="py-op">,</tt> <tt id="link-19" 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
+paramiko.dsskey.MSG_CHANNEL_OPEN_SUCCESS
+paramiko.hostkeys.MSG_CHANNEL_OPEN_SUCCESS
+paramiko.kex_gex.MSG_CHANNEL_OPEN_SUCCESS
+paramiko.kex_group1.MSG_CHANNEL_OPEN_SUCCESS
+paramiko.packet.MSG_CHANNEL_OPEN_SUCCESS
+paramiko.pkey.MSG_CHANNEL_OPEN_SUCCESS
+paramiko.rsakey.MSG_CHANNEL_OPEN_SUCCESS
+paramiko.server.MSG_CHANNEL_OPEN_SUCCESS
+paramiko.sftp.MSG_CHANNEL_OPEN_SUCCESS
+paramiko.sftp_attr.MSG_CHANNEL_OPEN_SUCCESS
+paramiko.sftp_client.MSG_CHANNEL_OPEN_SUCCESS
+paramiko.sftp_file.MSG_CHANNEL_OPEN_SUCCESS
+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-19', 'MSG_CHANNEL_OPEN_SUCCESS', 'link-19');">MSG_CHANNEL_OPEN_SUCCESS</a></tt><tt class="py-op">,</tt> <tt id="link-20" 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
+paramiko.dsskey.MSG_CHANNEL_OPEN_FAILURE
+paramiko.hostkeys.MSG_CHANNEL_OPEN_FAILURE
+paramiko.kex_gex.MSG_CHANNEL_OPEN_FAILURE
+paramiko.kex_group1.MSG_CHANNEL_OPEN_FAILURE
+paramiko.packet.MSG_CHANNEL_OPEN_FAILURE
+paramiko.pkey.MSG_CHANNEL_OPEN_FAILURE
+paramiko.rsakey.MSG_CHANNEL_OPEN_FAILURE
+paramiko.server.MSG_CHANNEL_OPEN_FAILURE
+paramiko.sftp.MSG_CHANNEL_OPEN_FAILURE
+paramiko.sftp_attr.MSG_CHANNEL_OPEN_FAILURE
+paramiko.sftp_client.MSG_CHANNEL_OPEN_FAILURE
+paramiko.sftp_file.MSG_CHANNEL_OPEN_FAILURE
+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-20', 'MSG_CHANNEL_OPEN_FAILURE', 'link-20');">MSG_CHANNEL_OPEN_FAILURE</a></tt><tt class="py-op">,</tt> \ </tt>
+<a name="L32"></a><tt class="py-lineno"> 32</tt> <tt class="py-line"> <tt id="link-21" 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
+paramiko.dsskey.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.hostkeys.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.kex_gex.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.kex_group1.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.packet.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.pkey.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.rsakey.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.server.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.sftp.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.sftp_attr.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.sftp_client.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.sftp_file.MSG_CHANNEL_WINDOW_ADJUST
+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-21', 'MSG_CHANNEL_WINDOW_ADJUST', 'link-21');">MSG_CHANNEL_WINDOW_ADJUST</a></tt><tt class="py-op">,</tt> <tt id="link-22" 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
+paramiko.dsskey.MSG_CHANNEL_DATA
+paramiko.hostkeys.MSG_CHANNEL_DATA
+paramiko.kex_gex.MSG_CHANNEL_DATA
+paramiko.kex_group1.MSG_CHANNEL_DATA
+paramiko.packet.MSG_CHANNEL_DATA
+paramiko.pkey.MSG_CHANNEL_DATA
+paramiko.rsakey.MSG_CHANNEL_DATA
+paramiko.server.MSG_CHANNEL_DATA
+paramiko.sftp.MSG_CHANNEL_DATA
+paramiko.sftp_attr.MSG_CHANNEL_DATA
+paramiko.sftp_client.MSG_CHANNEL_DATA
+paramiko.sftp_file.MSG_CHANNEL_DATA
+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-22', 'MSG_CHANNEL_DATA', 'link-22');">MSG_CHANNEL_DATA</a></tt><tt class="py-op">,</tt> <tt id="link-23" 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
+paramiko.dsskey.MSG_CHANNEL_EXTENDED_DATA
+paramiko.hostkeys.MSG_CHANNEL_EXTENDED_DATA
+paramiko.kex_gex.MSG_CHANNEL_EXTENDED_DATA
+paramiko.kex_group1.MSG_CHANNEL_EXTENDED_DATA
+paramiko.packet.MSG_CHANNEL_EXTENDED_DATA
+paramiko.pkey.MSG_CHANNEL_EXTENDED_DATA
+paramiko.rsakey.MSG_CHANNEL_EXTENDED_DATA
+paramiko.server.MSG_CHANNEL_EXTENDED_DATA
+paramiko.sftp.MSG_CHANNEL_EXTENDED_DATA
+paramiko.sftp_attr.MSG_CHANNEL_EXTENDED_DATA
+paramiko.sftp_client.MSG_CHANNEL_EXTENDED_DATA
+paramiko.sftp_file.MSG_CHANNEL_EXTENDED_DATA
+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-23', 'MSG_CHANNEL_EXTENDED_DATA', 'link-23');">MSG_CHANNEL_EXTENDED_DATA</a></tt><tt class="py-op">,</tt> \ </tt>
+<a name="L33"></a><tt class="py-lineno"> 33</tt> <tt class="py-line"> <tt id="link-24" 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
+paramiko.dsskey.MSG_CHANNEL_EOF
+paramiko.hostkeys.MSG_CHANNEL_EOF
+paramiko.kex_gex.MSG_CHANNEL_EOF
+paramiko.kex_group1.MSG_CHANNEL_EOF
+paramiko.packet.MSG_CHANNEL_EOF
+paramiko.pkey.MSG_CHANNEL_EOF
+paramiko.rsakey.MSG_CHANNEL_EOF
+paramiko.server.MSG_CHANNEL_EOF
+paramiko.sftp.MSG_CHANNEL_EOF
+paramiko.sftp_attr.MSG_CHANNEL_EOF
+paramiko.sftp_client.MSG_CHANNEL_EOF
+paramiko.sftp_file.MSG_CHANNEL_EOF
+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-24', 'MSG_CHANNEL_EOF', 'link-24');">MSG_CHANNEL_EOF</a></tt><tt class="py-op">,</tt> <tt id="link-25" 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
+paramiko.dsskey.MSG_CHANNEL_CLOSE
+paramiko.hostkeys.MSG_CHANNEL_CLOSE
+paramiko.kex_gex.MSG_CHANNEL_CLOSE
+paramiko.kex_group1.MSG_CHANNEL_CLOSE
+paramiko.packet.MSG_CHANNEL_CLOSE
+paramiko.pkey.MSG_CHANNEL_CLOSE
+paramiko.rsakey.MSG_CHANNEL_CLOSE
+paramiko.server.MSG_CHANNEL_CLOSE
+paramiko.sftp.MSG_CHANNEL_CLOSE
+paramiko.sftp_attr.MSG_CHANNEL_CLOSE
+paramiko.sftp_client.MSG_CHANNEL_CLOSE
+paramiko.sftp_file.MSG_CHANNEL_CLOSE
+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-25', 'MSG_CHANNEL_CLOSE', 'link-25');">MSG_CHANNEL_CLOSE</a></tt><tt class="py-op">,</tt> <tt id="link-26" 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
+paramiko.dsskey.MSG_CHANNEL_REQUEST
+paramiko.hostkeys.MSG_CHANNEL_REQUEST
+paramiko.kex_gex.MSG_CHANNEL_REQUEST
+paramiko.kex_group1.MSG_CHANNEL_REQUEST
+paramiko.packet.MSG_CHANNEL_REQUEST
+paramiko.pkey.MSG_CHANNEL_REQUEST
+paramiko.rsakey.MSG_CHANNEL_REQUEST
+paramiko.server.MSG_CHANNEL_REQUEST
+paramiko.sftp.MSG_CHANNEL_REQUEST
+paramiko.sftp_attr.MSG_CHANNEL_REQUEST
+paramiko.sftp_client.MSG_CHANNEL_REQUEST
+paramiko.sftp_file.MSG_CHANNEL_REQUEST
+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-26', 'MSG_CHANNEL_REQUEST', 'link-26');">MSG_CHANNEL_REQUEST</a></tt><tt class="py-op">,</tt> \ </tt>
+<a name="L34"></a><tt class="py-lineno"> 34</tt> <tt class="py-line"> <tt id="link-27" 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
+paramiko.dsskey.MSG_CHANNEL_SUCCESS
+paramiko.hostkeys.MSG_CHANNEL_SUCCESS
+paramiko.kex_gex.MSG_CHANNEL_SUCCESS
+paramiko.kex_group1.MSG_CHANNEL_SUCCESS
+paramiko.packet.MSG_CHANNEL_SUCCESS
+paramiko.pkey.MSG_CHANNEL_SUCCESS
+paramiko.rsakey.MSG_CHANNEL_SUCCESS
+paramiko.server.MSG_CHANNEL_SUCCESS
+paramiko.sftp.MSG_CHANNEL_SUCCESS
+paramiko.sftp_attr.MSG_CHANNEL_SUCCESS
+paramiko.sftp_client.MSG_CHANNEL_SUCCESS
+paramiko.sftp_file.MSG_CHANNEL_SUCCESS
+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-27', 'MSG_CHANNEL_SUCCESS', 'link-27');">MSG_CHANNEL_SUCCESS</a></tt><tt class="py-op">,</tt> <tt id="link-28" 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
+paramiko.dsskey.MSG_CHANNEL_FAILURE
+paramiko.hostkeys.MSG_CHANNEL_FAILURE
+paramiko.kex_gex.MSG_CHANNEL_FAILURE
+paramiko.kex_group1.MSG_CHANNEL_FAILURE
+paramiko.packet.MSG_CHANNEL_FAILURE
+paramiko.pkey.MSG_CHANNEL_FAILURE
+paramiko.rsakey.MSG_CHANNEL_FAILURE
+paramiko.server.MSG_CHANNEL_FAILURE
+paramiko.sftp.MSG_CHANNEL_FAILURE
+paramiko.sftp_attr.MSG_CHANNEL_FAILURE
+paramiko.sftp_client.MSG_CHANNEL_FAILURE
+paramiko.sftp_file.MSG_CHANNEL_FAILURE
+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-28', 'MSG_CHANNEL_FAILURE', 'link-28');">MSG_CHANNEL_FAILURE</a></tt> <tt class="py-op">=</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">90</tt><tt class="py-op">,</tt> <tt class="py-number">101</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>
+<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
+paramiko.channel.MSG_NAMES
+paramiko.client.MSG_NAMES
+paramiko.common.MSG_NAMES
+paramiko.dsskey.MSG_NAMES
+paramiko.hostkeys.MSG_NAMES
+paramiko.kex_gex.MSG_NAMES
+paramiko.kex_group1.MSG_NAMES
+paramiko.packet.MSG_NAMES
+paramiko.pkey.MSG_NAMES
+paramiko.rsakey.MSG_NAMES
+paramiko.server.MSG_NAMES
+paramiko.sftp.MSG_NAMES
+paramiko.sftp_attr.MSG_NAMES
+paramiko.sftp_client.MSG_NAMES
+paramiko.sftp_file.MSG_NAMES
+paramiko.sftp_handle.MSG_NAMES
+paramiko.sftp_server.MSG_NAMES
+paramiko.sftp_si.MSG_NAMES
+paramiko.transport.MSG_NAMES
+paramiko.util.MSG_NAMES" class="py-name" href="#" onclick="return doclink('link-29', 'MSG_NAMES', 'link-29');">MSG_NAMES</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L39"></a><tt class="py-lineno"> 39</tt> <tt class="py-line"> <tt id="link-30" class="py-name"><a title="paramiko.auth_handler.MSG_DISCONNECT
+paramiko.channel.MSG_DISCONNECT
+paramiko.client.MSG_DISCONNECT
+paramiko.common.MSG_DISCONNECT
+paramiko.dsskey.MSG_DISCONNECT
+paramiko.hostkeys.MSG_DISCONNECT
+paramiko.kex_gex.MSG_DISCONNECT
+paramiko.kex_group1.MSG_DISCONNECT
+paramiko.packet.MSG_DISCONNECT
+paramiko.pkey.MSG_DISCONNECT
+paramiko.rsakey.MSG_DISCONNECT
+paramiko.server.MSG_DISCONNECT
+paramiko.sftp.MSG_DISCONNECT
+paramiko.sftp_attr.MSG_DISCONNECT
+paramiko.sftp_client.MSG_DISCONNECT
+paramiko.sftp_file.MSG_DISCONNECT
+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-30', 'MSG_DISCONNECT', 'link-0');">MSG_DISCONNECT</a></tt><tt class="py-op">:</tt> <tt class="py-string">'disconnect'</tt><tt class="py-op">,</tt> </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</tt> <tt class="py-line"> <tt id="link-31" class="py-name"><a title="paramiko.auth_handler.MSG_IGNORE
+paramiko.channel.MSG_IGNORE
+paramiko.client.MSG_IGNORE
+paramiko.common.MSG_IGNORE
+paramiko.dsskey.MSG_IGNORE
+paramiko.hostkeys.MSG_IGNORE
+paramiko.kex_gex.MSG_IGNORE
+paramiko.kex_group1.MSG_IGNORE
+paramiko.packet.MSG_IGNORE
+paramiko.pkey.MSG_IGNORE
+paramiko.rsakey.MSG_IGNORE
+paramiko.server.MSG_IGNORE
+paramiko.sftp.MSG_IGNORE
+paramiko.sftp_attr.MSG_IGNORE
+paramiko.sftp_client.MSG_IGNORE
+paramiko.sftp_file.MSG_IGNORE
+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-31', 'MSG_IGNORE', 'link-1');">MSG_IGNORE</a></tt><tt class="py-op">:</tt> <tt class="py-string">'ignore'</tt><tt class="py-op">,</tt> </tt>
+<a name="L41"></a><tt class="py-lineno"> 41</tt> <tt class="py-line"> <tt id="link-32" class="py-name"><a title="paramiko.auth_handler.MSG_UNIMPLEMENTED
+paramiko.channel.MSG_UNIMPLEMENTED
+paramiko.client.MSG_UNIMPLEMENTED
+paramiko.common.MSG_UNIMPLEMENTED
+paramiko.dsskey.MSG_UNIMPLEMENTED
+paramiko.hostkeys.MSG_UNIMPLEMENTED
+paramiko.kex_gex.MSG_UNIMPLEMENTED
+paramiko.kex_group1.MSG_UNIMPLEMENTED
+paramiko.packet.MSG_UNIMPLEMENTED
+paramiko.pkey.MSG_UNIMPLEMENTED
+paramiko.rsakey.MSG_UNIMPLEMENTED
+paramiko.server.MSG_UNIMPLEMENTED
+paramiko.sftp.MSG_UNIMPLEMENTED
+paramiko.sftp_attr.MSG_UNIMPLEMENTED
+paramiko.sftp_client.MSG_UNIMPLEMENTED
+paramiko.sftp_file.MSG_UNIMPLEMENTED
+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-32', 'MSG_UNIMPLEMENTED', 'link-2');">MSG_UNIMPLEMENTED</a></tt><tt class="py-op">:</tt> <tt class="py-string">'unimplemented'</tt><tt class="py-op">,</tt> </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt> <tt class="py-line"> <tt id="link-33" class="py-name"><a title="paramiko.auth_handler.MSG_DEBUG
+paramiko.channel.MSG_DEBUG
+paramiko.client.MSG_DEBUG
+paramiko.common.MSG_DEBUG
+paramiko.dsskey.MSG_DEBUG
+paramiko.hostkeys.MSG_DEBUG
+paramiko.kex_gex.MSG_DEBUG
+paramiko.kex_group1.MSG_DEBUG
+paramiko.packet.MSG_DEBUG
+paramiko.pkey.MSG_DEBUG
+paramiko.rsakey.MSG_DEBUG
+paramiko.server.MSG_DEBUG
+paramiko.sftp.MSG_DEBUG
+paramiko.sftp_attr.MSG_DEBUG
+paramiko.sftp_client.MSG_DEBUG
+paramiko.sftp_file.MSG_DEBUG
+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-33', 'MSG_DEBUG', 'link-3');">MSG_DEBUG</a></tt><tt class="py-op">:</tt> <tt class="py-string">'debug'</tt><tt class="py-op">,</tt> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt> <tt class="py-line"> <tt id="link-34" class="py-name"><a title="paramiko.auth_handler.MSG_SERVICE_REQUEST
+paramiko.channel.MSG_SERVICE_REQUEST
+paramiko.client.MSG_SERVICE_REQUEST
+paramiko.common.MSG_SERVICE_REQUEST
+paramiko.dsskey.MSG_SERVICE_REQUEST
+paramiko.hostkeys.MSG_SERVICE_REQUEST
+paramiko.kex_gex.MSG_SERVICE_REQUEST
+paramiko.kex_group1.MSG_SERVICE_REQUEST
+paramiko.packet.MSG_SERVICE_REQUEST
+paramiko.pkey.MSG_SERVICE_REQUEST
+paramiko.rsakey.MSG_SERVICE_REQUEST
+paramiko.server.MSG_SERVICE_REQUEST
+paramiko.sftp.MSG_SERVICE_REQUEST
+paramiko.sftp_attr.MSG_SERVICE_REQUEST
+paramiko.sftp_client.MSG_SERVICE_REQUEST
+paramiko.sftp_file.MSG_SERVICE_REQUEST
+paramiko.sftp_handle.MSG_SERVICE_REQUEST
+paramiko.sftp_server.MSG_SERVICE_REQUEST
+paramiko.sftp_si.MSG_SERVICE_REQUEST
+paramiko.transport.MSG_SERVICE_REQUEST
+paramiko.util.MSG_SERVICE_REQUEST" class="py-name" href="#" onclick="return doclink('link-34', 'MSG_SERVICE_REQUEST', 'link-4');">MSG_SERVICE_REQUEST</a></tt><tt class="py-op">:</tt> <tt class="py-string">'service-request'</tt><tt class="py-op">,</tt> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"> <tt id="link-35" class="py-name"><a title="paramiko.auth_handler.MSG_SERVICE_ACCEPT
+paramiko.channel.MSG_SERVICE_ACCEPT
+paramiko.client.MSG_SERVICE_ACCEPT
+paramiko.common.MSG_SERVICE_ACCEPT
+paramiko.dsskey.MSG_SERVICE_ACCEPT
+paramiko.hostkeys.MSG_SERVICE_ACCEPT
+paramiko.kex_gex.MSG_SERVICE_ACCEPT
+paramiko.kex_group1.MSG_SERVICE_ACCEPT
+paramiko.packet.MSG_SERVICE_ACCEPT
+paramiko.pkey.MSG_SERVICE_ACCEPT
+paramiko.rsakey.MSG_SERVICE_ACCEPT
+paramiko.server.MSG_SERVICE_ACCEPT
+paramiko.sftp.MSG_SERVICE_ACCEPT
+paramiko.sftp_attr.MSG_SERVICE_ACCEPT
+paramiko.sftp_client.MSG_SERVICE_ACCEPT
+paramiko.sftp_file.MSG_SERVICE_ACCEPT
+paramiko.sftp_handle.MSG_SERVICE_ACCEPT
+paramiko.sftp_server.MSG_SERVICE_ACCEPT
+paramiko.sftp_si.MSG_SERVICE_ACCEPT
+paramiko.transport.MSG_SERVICE_ACCEPT
+paramiko.util.MSG_SERVICE_ACCEPT" class="py-name" href="#" onclick="return doclink('link-35', 'MSG_SERVICE_ACCEPT', 'link-5');">MSG_SERVICE_ACCEPT</a></tt><tt class="py-op">:</tt> <tt class="py-string">'service-accept'</tt><tt class="py-op">,</tt> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt> <tt class="py-line"> <tt id="link-36" class="py-name"><a title="paramiko.auth_handler.MSG_KEXINIT
+paramiko.channel.MSG_KEXINIT
+paramiko.client.MSG_KEXINIT
+paramiko.common.MSG_KEXINIT
+paramiko.dsskey.MSG_KEXINIT
+paramiko.hostkeys.MSG_KEXINIT
+paramiko.kex_gex.MSG_KEXINIT
+paramiko.kex_group1.MSG_KEXINIT
+paramiko.packet.MSG_KEXINIT
+paramiko.pkey.MSG_KEXINIT
+paramiko.rsakey.MSG_KEXINIT
+paramiko.server.MSG_KEXINIT
+paramiko.sftp.MSG_KEXINIT
+paramiko.sftp_attr.MSG_KEXINIT
+paramiko.sftp_client.MSG_KEXINIT
+paramiko.sftp_file.MSG_KEXINIT
+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-36', 'MSG_KEXINIT', 'link-6');">MSG_KEXINIT</a></tt><tt class="py-op">:</tt> <tt class="py-string">'kexinit'</tt><tt class="py-op">,</tt> </tt>
+<a name="L46"></a><tt class="py-lineno"> 46</tt> <tt class="py-line"> <tt id="link-37" class="py-name"><a title="paramiko.auth_handler.MSG_NEWKEYS
+paramiko.channel.MSG_NEWKEYS
+paramiko.client.MSG_NEWKEYS
+paramiko.common.MSG_NEWKEYS
+paramiko.dsskey.MSG_NEWKEYS
+paramiko.hostkeys.MSG_NEWKEYS
+paramiko.kex_gex.MSG_NEWKEYS
+paramiko.kex_group1.MSG_NEWKEYS
+paramiko.packet.MSG_NEWKEYS
+paramiko.pkey.MSG_NEWKEYS
+paramiko.rsakey.MSG_NEWKEYS
+paramiko.server.MSG_NEWKEYS
+paramiko.sftp.MSG_NEWKEYS
+paramiko.sftp_attr.MSG_NEWKEYS
+paramiko.sftp_client.MSG_NEWKEYS
+paramiko.sftp_file.MSG_NEWKEYS
+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-37', 'MSG_NEWKEYS', 'link-7');">MSG_NEWKEYS</a></tt><tt class="py-op">:</tt> <tt class="py-string">'newkeys'</tt><tt class="py-op">,</tt> </tt>
+<a name="L47"></a><tt class="py-lineno"> 47</tt> <tt class="py-line"> <tt class="py-number">30</tt><tt class="py-op">:</tt> <tt class="py-string">'kex30'</tt><tt class="py-op">,</tt> </tt>
+<a name="L48"></a><tt class="py-lineno"> 48</tt> <tt class="py-line"> <tt class="py-number">31</tt><tt class="py-op">:</tt> <tt class="py-string">'kex31'</tt><tt class="py-op">,</tt> </tt>
+<a name="L49"></a><tt class="py-lineno"> 49</tt> <tt class="py-line"> <tt class="py-number">32</tt><tt class="py-op">:</tt> <tt class="py-string">'kex32'</tt><tt class="py-op">,</tt> </tt>
+<a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"> <tt class="py-number">33</tt><tt class="py-op">:</tt> <tt class="py-string">'kex33'</tt><tt class="py-op">,</tt> </tt>
+<a name="L51"></a><tt class="py-lineno"> 51</tt> <tt class="py-line"> <tt class="py-number">34</tt><tt class="py-op">:</tt> <tt class="py-string">'kex34'</tt><tt class="py-op">,</tt> </tt>
+<a name="L52"></a><tt class="py-lineno"> 52</tt> <tt class="py-line"> <tt id="link-38" class="py-name"><a title="paramiko.auth_handler.MSG_USERAUTH_REQUEST
+paramiko.channel.MSG_USERAUTH_REQUEST
+paramiko.client.MSG_USERAUTH_REQUEST
+paramiko.common.MSG_USERAUTH_REQUEST
+paramiko.dsskey.MSG_USERAUTH_REQUEST
+paramiko.hostkeys.MSG_USERAUTH_REQUEST
+paramiko.kex_gex.MSG_USERAUTH_REQUEST
+paramiko.kex_group1.MSG_USERAUTH_REQUEST
+paramiko.packet.MSG_USERAUTH_REQUEST
+paramiko.pkey.MSG_USERAUTH_REQUEST
+paramiko.rsakey.MSG_USERAUTH_REQUEST
+paramiko.server.MSG_USERAUTH_REQUEST
+paramiko.sftp.MSG_USERAUTH_REQUEST
+paramiko.sftp_attr.MSG_USERAUTH_REQUEST
+paramiko.sftp_client.MSG_USERAUTH_REQUEST
+paramiko.sftp_file.MSG_USERAUTH_REQUEST
+paramiko.sftp_handle.MSG_USERAUTH_REQUEST
+paramiko.sftp_server.MSG_USERAUTH_REQUEST
+paramiko.sftp_si.MSG_USERAUTH_REQUEST
+paramiko.transport.MSG_USERAUTH_REQUEST
+paramiko.util.MSG_USERAUTH_REQUEST" class="py-name" href="#" onclick="return doclink('link-38', 'MSG_USERAUTH_REQUEST', 'link-8');">MSG_USERAUTH_REQUEST</a></tt><tt class="py-op">:</tt> <tt class="py-string">'userauth-request'</tt><tt class="py-op">,</tt> </tt>
+<a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"> <tt id="link-39" class="py-name"><a title="paramiko.auth_handler.MSG_USERAUTH_FAILURE
+paramiko.channel.MSG_USERAUTH_FAILURE
+paramiko.client.MSG_USERAUTH_FAILURE
+paramiko.common.MSG_USERAUTH_FAILURE
+paramiko.dsskey.MSG_USERAUTH_FAILURE
+paramiko.hostkeys.MSG_USERAUTH_FAILURE
+paramiko.kex_gex.MSG_USERAUTH_FAILURE
+paramiko.kex_group1.MSG_USERAUTH_FAILURE
+paramiko.packet.MSG_USERAUTH_FAILURE
+paramiko.pkey.MSG_USERAUTH_FAILURE
+paramiko.rsakey.MSG_USERAUTH_FAILURE
+paramiko.server.MSG_USERAUTH_FAILURE
+paramiko.sftp.MSG_USERAUTH_FAILURE
+paramiko.sftp_attr.MSG_USERAUTH_FAILURE
+paramiko.sftp_client.MSG_USERAUTH_FAILURE
+paramiko.sftp_file.MSG_USERAUTH_FAILURE
+paramiko.sftp_handle.MSG_USERAUTH_FAILURE
+paramiko.sftp_server.MSG_USERAUTH_FAILURE
+paramiko.sftp_si.MSG_USERAUTH_FAILURE
+paramiko.transport.MSG_USERAUTH_FAILURE
+paramiko.util.MSG_USERAUTH_FAILURE" class="py-name" href="#" onclick="return doclink('link-39', 'MSG_USERAUTH_FAILURE', 'link-9');">MSG_USERAUTH_FAILURE</a></tt><tt class="py-op">:</tt> <tt class="py-string">'userauth-failure'</tt><tt class="py-op">,</tt> </tt>
+<a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line"> <tt id="link-40" class="py-name"><a title="paramiko.auth_handler.MSG_USERAUTH_SUCCESS
+paramiko.channel.MSG_USERAUTH_SUCCESS
+paramiko.client.MSG_USERAUTH_SUCCESS
+paramiko.common.MSG_USERAUTH_SUCCESS
+paramiko.dsskey.MSG_USERAUTH_SUCCESS
+paramiko.hostkeys.MSG_USERAUTH_SUCCESS
+paramiko.kex_gex.MSG_USERAUTH_SUCCESS
+paramiko.kex_group1.MSG_USERAUTH_SUCCESS
+paramiko.packet.MSG_USERAUTH_SUCCESS
+paramiko.pkey.MSG_USERAUTH_SUCCESS
+paramiko.rsakey.MSG_USERAUTH_SUCCESS
+paramiko.server.MSG_USERAUTH_SUCCESS
+paramiko.sftp.MSG_USERAUTH_SUCCESS
+paramiko.sftp_attr.MSG_USERAUTH_SUCCESS
+paramiko.sftp_client.MSG_USERAUTH_SUCCESS
+paramiko.sftp_file.MSG_USERAUTH_SUCCESS
+paramiko.sftp_handle.MSG_USERAUTH_SUCCESS
+paramiko.sftp_server.MSG_USERAUTH_SUCCESS
+paramiko.sftp_si.MSG_USERAUTH_SUCCESS
+paramiko.transport.MSG_USERAUTH_SUCCESS
+paramiko.util.MSG_USERAUTH_SUCCESS" class="py-name" href="#" onclick="return doclink('link-40', 'MSG_USERAUTH_SUCCESS', 'link-10');">MSG_USERAUTH_SUCCESS</a></tt><tt class="py-op">:</tt> <tt class="py-string">'userauth-success'</tt><tt class="py-op">,</tt> </tt>
+<a name="L55"></a><tt class="py-lineno"> 55</tt> <tt class="py-line"> <tt id="link-41" class="py-name"><a title="paramiko.auth_handler.MSG_USERAUTH_BANNER
+paramiko.channel.MSG_USERAUTH_BANNER
+paramiko.client.MSG_USERAUTH_BANNER
+paramiko.common.MSG_USERAUTH_BANNER
+paramiko.dsskey.MSG_USERAUTH_BANNER
+paramiko.hostkeys.MSG_USERAUTH_BANNER
+paramiko.kex_gex.MSG_USERAUTH_BANNER
+paramiko.kex_group1.MSG_USERAUTH_BANNER
+paramiko.packet.MSG_USERAUTH_BANNER
+paramiko.pkey.MSG_USERAUTH_BANNER
+paramiko.rsakey.MSG_USERAUTH_BANNER
+paramiko.server.MSG_USERAUTH_BANNER
+paramiko.sftp.MSG_USERAUTH_BANNER
+paramiko.sftp_attr.MSG_USERAUTH_BANNER
+paramiko.sftp_client.MSG_USERAUTH_BANNER
+paramiko.sftp_file.MSG_USERAUTH_BANNER
+paramiko.sftp_handle.MSG_USERAUTH_BANNER
+paramiko.sftp_server.MSG_USERAUTH_BANNER
+paramiko.sftp_si.MSG_USERAUTH_BANNER
+paramiko.transport.MSG_USERAUTH_BANNER
+paramiko.util.MSG_USERAUTH_BANNER" class="py-name" href="#" onclick="return doclink('link-41', 'MSG_USERAUTH_BANNER', 'link-11');">MSG_USERAUTH_BANNER</a></tt><tt class="py-op">:</tt> <tt class="py-string">'userauth--banner'</tt><tt class="py-op">,</tt> </tt>
+<a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"> <tt id="link-42" class="py-name"><a title="paramiko.auth_handler.MSG_USERAUTH_PK_OK
+paramiko.channel.MSG_USERAUTH_PK_OK
+paramiko.client.MSG_USERAUTH_PK_OK
+paramiko.common.MSG_USERAUTH_PK_OK
+paramiko.dsskey.MSG_USERAUTH_PK_OK
+paramiko.hostkeys.MSG_USERAUTH_PK_OK
+paramiko.kex_gex.MSG_USERAUTH_PK_OK
+paramiko.kex_group1.MSG_USERAUTH_PK_OK
+paramiko.packet.MSG_USERAUTH_PK_OK
+paramiko.pkey.MSG_USERAUTH_PK_OK
+paramiko.rsakey.MSG_USERAUTH_PK_OK
+paramiko.server.MSG_USERAUTH_PK_OK
+paramiko.sftp.MSG_USERAUTH_PK_OK
+paramiko.sftp_attr.MSG_USERAUTH_PK_OK
+paramiko.sftp_client.MSG_USERAUTH_PK_OK
+paramiko.sftp_file.MSG_USERAUTH_PK_OK
+paramiko.sftp_handle.MSG_USERAUTH_PK_OK
+paramiko.sftp_server.MSG_USERAUTH_PK_OK
+paramiko.sftp_si.MSG_USERAUTH_PK_OK
+paramiko.transport.MSG_USERAUTH_PK_OK
+paramiko.util.MSG_USERAUTH_PK_OK" class="py-name" href="#" onclick="return doclink('link-42', 'MSG_USERAUTH_PK_OK', 'link-12');">MSG_USERAUTH_PK_OK</a></tt><tt class="py-op">:</tt> <tt class="py-string">'userauth-60(pk-ok/info-request)'</tt><tt class="py-op">,</tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"> <tt id="link-43" class="py-name"><a title="paramiko.auth_handler.MSG_USERAUTH_INFO_RESPONSE
+paramiko.channel.MSG_USERAUTH_INFO_RESPONSE
+paramiko.client.MSG_USERAUTH_INFO_RESPONSE
+paramiko.common.MSG_USERAUTH_INFO_RESPONSE
+paramiko.dsskey.MSG_USERAUTH_INFO_RESPONSE
+paramiko.hostkeys.MSG_USERAUTH_INFO_RESPONSE
+paramiko.kex_gex.MSG_USERAUTH_INFO_RESPONSE
+paramiko.kex_group1.MSG_USERAUTH_INFO_RESPONSE
+paramiko.packet.MSG_USERAUTH_INFO_RESPONSE
+paramiko.pkey.MSG_USERAUTH_INFO_RESPONSE
+paramiko.rsakey.MSG_USERAUTH_INFO_RESPONSE
+paramiko.server.MSG_USERAUTH_INFO_RESPONSE
+paramiko.sftp.MSG_USERAUTH_INFO_RESPONSE
+paramiko.sftp_attr.MSG_USERAUTH_INFO_RESPONSE
+paramiko.sftp_client.MSG_USERAUTH_INFO_RESPONSE
+paramiko.sftp_file.MSG_USERAUTH_INFO_RESPONSE
+paramiko.sftp_handle.MSG_USERAUTH_INFO_RESPONSE
+paramiko.sftp_server.MSG_USERAUTH_INFO_RESPONSE
+paramiko.sftp_si.MSG_USERAUTH_INFO_RESPONSE
+paramiko.transport.MSG_USERAUTH_INFO_RESPONSE
+paramiko.util.MSG_USERAUTH_INFO_RESPONSE" class="py-name" href="#" onclick="return doclink('link-43', 'MSG_USERAUTH_INFO_RESPONSE', 'link-14');">MSG_USERAUTH_INFO_RESPONSE</a></tt><tt class="py-op">:</tt> <tt class="py-string">'userauth-info-response'</tt><tt class="py-op">,</tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"> <tt id="link-44" 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
+paramiko.dsskey.MSG_GLOBAL_REQUEST
+paramiko.hostkeys.MSG_GLOBAL_REQUEST
+paramiko.kex_gex.MSG_GLOBAL_REQUEST
+paramiko.kex_group1.MSG_GLOBAL_REQUEST
+paramiko.packet.MSG_GLOBAL_REQUEST
+paramiko.pkey.MSG_GLOBAL_REQUEST
+paramiko.rsakey.MSG_GLOBAL_REQUEST
+paramiko.server.MSG_GLOBAL_REQUEST
+paramiko.sftp.MSG_GLOBAL_REQUEST
+paramiko.sftp_attr.MSG_GLOBAL_REQUEST
+paramiko.sftp_client.MSG_GLOBAL_REQUEST
+paramiko.sftp_file.MSG_GLOBAL_REQUEST
+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-44', 'MSG_GLOBAL_REQUEST', 'link-15');">MSG_GLOBAL_REQUEST</a></tt><tt class="py-op">:</tt> <tt class="py-string">'global-request'</tt><tt class="py-op">,</tt> </tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"> <tt id="link-45" 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
+paramiko.dsskey.MSG_REQUEST_SUCCESS
+paramiko.hostkeys.MSG_REQUEST_SUCCESS
+paramiko.kex_gex.MSG_REQUEST_SUCCESS
+paramiko.kex_group1.MSG_REQUEST_SUCCESS
+paramiko.packet.MSG_REQUEST_SUCCESS
+paramiko.pkey.MSG_REQUEST_SUCCESS
+paramiko.rsakey.MSG_REQUEST_SUCCESS
+paramiko.server.MSG_REQUEST_SUCCESS
+paramiko.sftp.MSG_REQUEST_SUCCESS
+paramiko.sftp_attr.MSG_REQUEST_SUCCESS
+paramiko.sftp_client.MSG_REQUEST_SUCCESS
+paramiko.sftp_file.MSG_REQUEST_SUCCESS
+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-45', 'MSG_REQUEST_SUCCESS', 'link-16');">MSG_REQUEST_SUCCESS</a></tt><tt class="py-op">:</tt> <tt class="py-string">'request-success'</tt><tt class="py-op">,</tt> </tt>
+<a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"> <tt id="link-46" 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
+paramiko.dsskey.MSG_REQUEST_FAILURE
+paramiko.hostkeys.MSG_REQUEST_FAILURE
+paramiko.kex_gex.MSG_REQUEST_FAILURE
+paramiko.kex_group1.MSG_REQUEST_FAILURE
+paramiko.packet.MSG_REQUEST_FAILURE
+paramiko.pkey.MSG_REQUEST_FAILURE
+paramiko.rsakey.MSG_REQUEST_FAILURE
+paramiko.server.MSG_REQUEST_FAILURE
+paramiko.sftp.MSG_REQUEST_FAILURE
+paramiko.sftp_attr.MSG_REQUEST_FAILURE
+paramiko.sftp_client.MSG_REQUEST_FAILURE
+paramiko.sftp_file.MSG_REQUEST_FAILURE
+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-46', 'MSG_REQUEST_FAILURE', 'link-17');">MSG_REQUEST_FAILURE</a></tt><tt class="py-op">:</tt> <tt class="py-string">'request-failure'</tt><tt class="py-op">,</tt> </tt>
+<a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"> <tt id="link-47" 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
+paramiko.dsskey.MSG_CHANNEL_OPEN
+paramiko.hostkeys.MSG_CHANNEL_OPEN
+paramiko.kex_gex.MSG_CHANNEL_OPEN
+paramiko.kex_group1.MSG_CHANNEL_OPEN
+paramiko.packet.MSG_CHANNEL_OPEN
+paramiko.pkey.MSG_CHANNEL_OPEN
+paramiko.rsakey.MSG_CHANNEL_OPEN
+paramiko.server.MSG_CHANNEL_OPEN
+paramiko.sftp.MSG_CHANNEL_OPEN
+paramiko.sftp_attr.MSG_CHANNEL_OPEN
+paramiko.sftp_client.MSG_CHANNEL_OPEN
+paramiko.sftp_file.MSG_CHANNEL_OPEN
+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-47', 'MSG_CHANNEL_OPEN', 'link-18');">MSG_CHANNEL_OPEN</a></tt><tt class="py-op">:</tt> <tt class="py-string">'channel-open'</tt><tt class="py-op">,</tt> </tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"> <tt id="link-48" 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
+paramiko.dsskey.MSG_CHANNEL_OPEN_SUCCESS
+paramiko.hostkeys.MSG_CHANNEL_OPEN_SUCCESS
+paramiko.kex_gex.MSG_CHANNEL_OPEN_SUCCESS
+paramiko.kex_group1.MSG_CHANNEL_OPEN_SUCCESS
+paramiko.packet.MSG_CHANNEL_OPEN_SUCCESS
+paramiko.pkey.MSG_CHANNEL_OPEN_SUCCESS
+paramiko.rsakey.MSG_CHANNEL_OPEN_SUCCESS
+paramiko.server.MSG_CHANNEL_OPEN_SUCCESS
+paramiko.sftp.MSG_CHANNEL_OPEN_SUCCESS
+paramiko.sftp_attr.MSG_CHANNEL_OPEN_SUCCESS
+paramiko.sftp_client.MSG_CHANNEL_OPEN_SUCCESS
+paramiko.sftp_file.MSG_CHANNEL_OPEN_SUCCESS
+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-48', 'MSG_CHANNEL_OPEN_SUCCESS', 'link-19');">MSG_CHANNEL_OPEN_SUCCESS</a></tt><tt class="py-op">:</tt> <tt class="py-string">'channel-open-success'</tt><tt class="py-op">,</tt> </tt>
+<a name="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"> <tt id="link-49" 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
+paramiko.dsskey.MSG_CHANNEL_OPEN_FAILURE
+paramiko.hostkeys.MSG_CHANNEL_OPEN_FAILURE
+paramiko.kex_gex.MSG_CHANNEL_OPEN_FAILURE
+paramiko.kex_group1.MSG_CHANNEL_OPEN_FAILURE
+paramiko.packet.MSG_CHANNEL_OPEN_FAILURE
+paramiko.pkey.MSG_CHANNEL_OPEN_FAILURE
+paramiko.rsakey.MSG_CHANNEL_OPEN_FAILURE
+paramiko.server.MSG_CHANNEL_OPEN_FAILURE
+paramiko.sftp.MSG_CHANNEL_OPEN_FAILURE
+paramiko.sftp_attr.MSG_CHANNEL_OPEN_FAILURE
+paramiko.sftp_client.MSG_CHANNEL_OPEN_FAILURE
+paramiko.sftp_file.MSG_CHANNEL_OPEN_FAILURE
+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-49', 'MSG_CHANNEL_OPEN_FAILURE', 'link-20');">MSG_CHANNEL_OPEN_FAILURE</a></tt><tt class="py-op">:</tt> <tt class="py-string">'channel-open-failure'</tt><tt class="py-op">,</tt> </tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line"> <tt id="link-50" 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
+paramiko.dsskey.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.hostkeys.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.kex_gex.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.kex_group1.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.packet.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.pkey.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.rsakey.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.server.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.sftp.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.sftp_attr.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.sftp_client.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.sftp_file.MSG_CHANNEL_WINDOW_ADJUST
+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-50', 'MSG_CHANNEL_WINDOW_ADJUST', 'link-21');">MSG_CHANNEL_WINDOW_ADJUST</a></tt><tt class="py-op">:</tt> <tt class="py-string">'channel-window-adjust'</tt><tt class="py-op">,</tt> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"> <tt id="link-51" class="py-name"><a title="paramiko.auth_handler.MSG_CHANNEL_DATA
+paramiko.channel.MSG_CHANNEL_DATA
+paramiko.client.MSG_CHANNEL_DATA
+paramiko.common.MSG_CHANNEL_DATA
+paramiko.dsskey.MSG_CHANNEL_DATA
+paramiko.hostkeys.MSG_CHANNEL_DATA
+paramiko.kex_gex.MSG_CHANNEL_DATA
+paramiko.kex_group1.MSG_CHANNEL_DATA
+paramiko.packet.MSG_CHANNEL_DATA
+paramiko.pkey.MSG_CHANNEL_DATA
+paramiko.rsakey.MSG_CHANNEL_DATA
+paramiko.server.MSG_CHANNEL_DATA
+paramiko.sftp.MSG_CHANNEL_DATA
+paramiko.sftp_attr.MSG_CHANNEL_DATA
+paramiko.sftp_client.MSG_CHANNEL_DATA
+paramiko.sftp_file.MSG_CHANNEL_DATA
+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-51', 'MSG_CHANNEL_DATA', 'link-22');">MSG_CHANNEL_DATA</a></tt><tt class="py-op">:</tt> <tt class="py-string">'channel-data'</tt><tt class="py-op">,</tt> </tt>
+<a name="L66"></a><tt class="py-lineno"> 66</tt> <tt class="py-line"> <tt id="link-52" class="py-name"><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
+paramiko.dsskey.MSG_CHANNEL_EXTENDED_DATA
+paramiko.hostkeys.MSG_CHANNEL_EXTENDED_DATA
+paramiko.kex_gex.MSG_CHANNEL_EXTENDED_DATA
+paramiko.kex_group1.MSG_CHANNEL_EXTENDED_DATA
+paramiko.packet.MSG_CHANNEL_EXTENDED_DATA
+paramiko.pkey.MSG_CHANNEL_EXTENDED_DATA
+paramiko.rsakey.MSG_CHANNEL_EXTENDED_DATA
+paramiko.server.MSG_CHANNEL_EXTENDED_DATA
+paramiko.sftp.MSG_CHANNEL_EXTENDED_DATA
+paramiko.sftp_attr.MSG_CHANNEL_EXTENDED_DATA
+paramiko.sftp_client.MSG_CHANNEL_EXTENDED_DATA
+paramiko.sftp_file.MSG_CHANNEL_EXTENDED_DATA
+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-52', 'MSG_CHANNEL_EXTENDED_DATA', 'link-23');">MSG_CHANNEL_EXTENDED_DATA</a></tt><tt class="py-op">:</tt> <tt class="py-string">'channel-extended-data'</tt><tt class="py-op">,</tt> </tt>
+<a name="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line"> <tt id="link-53" class="py-name"><a title="paramiko.auth_handler.MSG_CHANNEL_EOF
+paramiko.channel.MSG_CHANNEL_EOF
+paramiko.client.MSG_CHANNEL_EOF
+paramiko.common.MSG_CHANNEL_EOF
+paramiko.dsskey.MSG_CHANNEL_EOF
+paramiko.hostkeys.MSG_CHANNEL_EOF
+paramiko.kex_gex.MSG_CHANNEL_EOF
+paramiko.kex_group1.MSG_CHANNEL_EOF
+paramiko.packet.MSG_CHANNEL_EOF
+paramiko.pkey.MSG_CHANNEL_EOF
+paramiko.rsakey.MSG_CHANNEL_EOF
+paramiko.server.MSG_CHANNEL_EOF
+paramiko.sftp.MSG_CHANNEL_EOF
+paramiko.sftp_attr.MSG_CHANNEL_EOF
+paramiko.sftp_client.MSG_CHANNEL_EOF
+paramiko.sftp_file.MSG_CHANNEL_EOF
+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-53', 'MSG_CHANNEL_EOF', 'link-24');">MSG_CHANNEL_EOF</a></tt><tt class="py-op">:</tt> <tt class="py-string">'channel-eof'</tt><tt class="py-op">,</tt> </tt>
+<a name="L68"></a><tt class="py-lineno"> 68</tt> <tt class="py-line"> <tt id="link-54" class="py-name"><a title="paramiko.auth_handler.MSG_CHANNEL_CLOSE
+paramiko.channel.MSG_CHANNEL_CLOSE
+paramiko.client.MSG_CHANNEL_CLOSE
+paramiko.common.MSG_CHANNEL_CLOSE
+paramiko.dsskey.MSG_CHANNEL_CLOSE
+paramiko.hostkeys.MSG_CHANNEL_CLOSE
+paramiko.kex_gex.MSG_CHANNEL_CLOSE
+paramiko.kex_group1.MSG_CHANNEL_CLOSE
+paramiko.packet.MSG_CHANNEL_CLOSE
+paramiko.pkey.MSG_CHANNEL_CLOSE
+paramiko.rsakey.MSG_CHANNEL_CLOSE
+paramiko.server.MSG_CHANNEL_CLOSE
+paramiko.sftp.MSG_CHANNEL_CLOSE
+paramiko.sftp_attr.MSG_CHANNEL_CLOSE
+paramiko.sftp_client.MSG_CHANNEL_CLOSE
+paramiko.sftp_file.MSG_CHANNEL_CLOSE
+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-54', 'MSG_CHANNEL_CLOSE', 'link-25');">MSG_CHANNEL_CLOSE</a></tt><tt class="py-op">:</tt> <tt class="py-string">'channel-close'</tt><tt class="py-op">,</tt> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"> <tt id="link-55" 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
+paramiko.dsskey.MSG_CHANNEL_REQUEST
+paramiko.hostkeys.MSG_CHANNEL_REQUEST
+paramiko.kex_gex.MSG_CHANNEL_REQUEST
+paramiko.kex_group1.MSG_CHANNEL_REQUEST
+paramiko.packet.MSG_CHANNEL_REQUEST
+paramiko.pkey.MSG_CHANNEL_REQUEST
+paramiko.rsakey.MSG_CHANNEL_REQUEST
+paramiko.server.MSG_CHANNEL_REQUEST
+paramiko.sftp.MSG_CHANNEL_REQUEST
+paramiko.sftp_attr.MSG_CHANNEL_REQUEST
+paramiko.sftp_client.MSG_CHANNEL_REQUEST
+paramiko.sftp_file.MSG_CHANNEL_REQUEST
+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-26');">MSG_CHANNEL_REQUEST</a></tt><tt class="py-op">:</tt> <tt class="py-string">'channel-request'</tt><tt class="py-op">,</tt> </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line"> <tt id="link-56" class="py-name"><a title="paramiko.auth_handler.MSG_CHANNEL_SUCCESS
+paramiko.channel.MSG_CHANNEL_SUCCESS
+paramiko.client.MSG_CHANNEL_SUCCESS
+paramiko.common.MSG_CHANNEL_SUCCESS
+paramiko.dsskey.MSG_CHANNEL_SUCCESS
+paramiko.hostkeys.MSG_CHANNEL_SUCCESS
+paramiko.kex_gex.MSG_CHANNEL_SUCCESS
+paramiko.kex_group1.MSG_CHANNEL_SUCCESS
+paramiko.packet.MSG_CHANNEL_SUCCESS
+paramiko.pkey.MSG_CHANNEL_SUCCESS
+paramiko.rsakey.MSG_CHANNEL_SUCCESS
+paramiko.server.MSG_CHANNEL_SUCCESS
+paramiko.sftp.MSG_CHANNEL_SUCCESS
+paramiko.sftp_attr.MSG_CHANNEL_SUCCESS
+paramiko.sftp_client.MSG_CHANNEL_SUCCESS
+paramiko.sftp_file.MSG_CHANNEL_SUCCESS
+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-56', 'MSG_CHANNEL_SUCCESS', 'link-27');">MSG_CHANNEL_SUCCESS</a></tt><tt class="py-op">:</tt> <tt class="py-string">'channel-success'</tt><tt class="py-op">,</tt> </tt>
+<a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line"> <tt id="link-57" class="py-name"><a title="paramiko.auth_handler.MSG_CHANNEL_FAILURE
+paramiko.channel.MSG_CHANNEL_FAILURE
+paramiko.client.MSG_CHANNEL_FAILURE
+paramiko.common.MSG_CHANNEL_FAILURE
+paramiko.dsskey.MSG_CHANNEL_FAILURE
+paramiko.hostkeys.MSG_CHANNEL_FAILURE
+paramiko.kex_gex.MSG_CHANNEL_FAILURE
+paramiko.kex_group1.MSG_CHANNEL_FAILURE
+paramiko.packet.MSG_CHANNEL_FAILURE
+paramiko.pkey.MSG_CHANNEL_FAILURE
+paramiko.rsakey.MSG_CHANNEL_FAILURE
+paramiko.server.MSG_CHANNEL_FAILURE
+paramiko.sftp.MSG_CHANNEL_FAILURE
+paramiko.sftp_attr.MSG_CHANNEL_FAILURE
+paramiko.sftp_client.MSG_CHANNEL_FAILURE
+paramiko.sftp_file.MSG_CHANNEL_FAILURE
+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-57', 'MSG_CHANNEL_FAILURE', 'link-28');">MSG_CHANNEL_FAILURE</a></tt><tt class="py-op">:</tt> <tt class="py-string">'channel-failure'</tt> </tt>
+<a name="L72"></a><tt class="py-lineno"> 72</tt> <tt class="py-line"> <tt class="py-op">}</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="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
+paramiko.channel.AUTH_SUCCESSFUL
+paramiko.client.AUTH_SUCCESSFUL
+paramiko.common.AUTH_SUCCESSFUL
+paramiko.dsskey.AUTH_SUCCESSFUL
+paramiko.hostkeys.AUTH_SUCCESSFUL
+paramiko.kex_gex.AUTH_SUCCESSFUL
+paramiko.kex_group1.AUTH_SUCCESSFUL
+paramiko.packet.AUTH_SUCCESSFUL
+paramiko.pkey.AUTH_SUCCESSFUL
+paramiko.rsakey.AUTH_SUCCESSFUL
+paramiko.server.AUTH_SUCCESSFUL
+paramiko.sftp.AUTH_SUCCESSFUL
+paramiko.sftp_attr.AUTH_SUCCESSFUL
+paramiko.sftp_client.AUTH_SUCCESSFUL
+paramiko.sftp_file.AUTH_SUCCESSFUL
+paramiko.sftp_handle.AUTH_SUCCESSFUL
+paramiko.sftp_server.AUTH_SUCCESSFUL
+paramiko.sftp_si.AUTH_SUCCESSFUL
+paramiko.transport.AUTH_SUCCESSFUL
+paramiko.util.AUTH_SUCCESSFUL" class="py-name" href="#" onclick="return doclink('link-58', 'AUTH_SUCCESSFUL', 'link-58');">AUTH_SUCCESSFUL</a></tt><tt class="py-op">,</tt> <tt id="link-59" class="py-name" targets="Variable paramiko.auth_handler.AUTH_PARTIALLY_SUCCESSFUL=paramiko.auth_handler-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.channel.AUTH_PARTIALLY_SUCCESSFUL=paramiko.channel-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.client.AUTH_PARTIALLY_SUCCESSFUL=paramiko.client-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.common.AUTH_PARTIALLY_SUCCESSFUL=paramiko.common-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.dsskey.AUTH_PARTIALLY_SUCCESSFUL=paramiko.dsskey-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.hostkeys.AUTH_PARTIALLY_SUCCESSFUL=paramiko.hostkeys-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.kex_gex.AUTH_PARTIALLY_SUCCESSFUL=paramiko.kex_gex-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.kex_group1.AUTH_PARTIALLY_SUCCESSFUL=paramiko.kex_group1-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.packet.AUTH_PARTIALLY_SUCCESSFUL=paramiko.packet-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.pkey.AUTH_PARTIALLY_SUCCESSFUL=paramiko.pkey-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.rsakey.AUTH_PARTIALLY_SUCCESSFUL=paramiko.rsakey-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.server.AUTH_PARTIALLY_SUCCESSFUL=paramiko.server-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.sftp.AUTH_PARTIALLY_SUCCESSFUL=paramiko.sftp-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.sftp_attr.AUTH_PARTIALLY_SUCCESSFUL=paramiko.sftp_attr-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.sftp_client.AUTH_PARTIALLY_SUCCESSFUL=paramiko.sftp_client-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.sftp_file.AUTH_PARTIALLY_SUCCESSFUL=paramiko.sftp_file-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.sftp_handle.AUTH_PARTIALLY_SUCCESSFUL=paramiko.sftp_handle-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.sftp_server.AUTH_PARTIALLY_SUCCESSFUL=paramiko.sftp_server-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.sftp_si.AUTH_PARTIALLY_SUCCESSFUL=paramiko.sftp_si-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.transport.AUTH_PARTIALLY_SUCCESSFUL=paramiko.transport-module.html#AUTH_PARTIALLY_SUCCESSFUL,Variable paramiko.util.AUTH_PARTIALLY_SUCCESSFUL=paramiko.util-module.html#AUTH_PARTIALLY_SUCCESSFUL"><a title="paramiko.auth_handler.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.channel.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.client.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.common.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.dsskey.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.hostkeys.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.kex_gex.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.kex_group1.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.packet.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.pkey.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.rsakey.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.server.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.sftp.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.sftp_attr.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.sftp_client.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.sftp_file.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.sftp_handle.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.sftp_server.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.sftp_si.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.transport.AUTH_PARTIALLY_SUCCESSFUL
+paramiko.util.AUTH_PARTIALLY_SUCCESSFUL" class="py-name" href="#" onclick="return doclink('link-59', 'AUTH_PARTIALLY_SUCCESSFUL', 'link-59');">AUTH_PARTIALLY_SUCCESSFUL</a></tt><tt class="py-op">,</tt> <tt id="link-60" class="py-name" targets="Variable paramiko.auth_handler.AUTH_FAILED=paramiko.auth_handler-module.html#AUTH_FAILED,Variable paramiko.channel.AUTH_FAILED=paramiko.channel-module.html#AUTH_FAILED,Variable paramiko.client.AUTH_FAILED=paramiko.client-module.html#AUTH_FAILED,Variable paramiko.common.AUTH_FAILED=paramiko.common-module.html#AUTH_FAILED,Variable paramiko.dsskey.AUTH_FAILED=paramiko.dsskey-module.html#AUTH_FAILED,Variable paramiko.hostkeys.AUTH_FAILED=paramiko.hostkeys-module.html#AUTH_FAILED,Variable paramiko.kex_gex.AUTH_FAILED=paramiko.kex_gex-module.html#AUTH_FAILED,Variable paramiko.kex_group1.AUTH_FAILED=paramiko.kex_group1-module.html#AUTH_FAILED,Variable paramiko.packet.AUTH_FAILED=paramiko.packet-module.html#AUTH_FAILED,Variable paramiko.pkey.AUTH_FAILED=paramiko.pkey-module.html#AUTH_FAILED,Variable paramiko.rsakey.AUTH_FAILED=paramiko.rsakey-module.html#AUTH_FAILED,Variable paramiko.server.AUTH_FAILED=paramiko.server-module.html#AUTH_FAILED,Variable paramiko.sftp.AUTH_FAILED=paramiko.sftp-module.html#AUTH_FAILED,Variable paramiko.sftp_attr.AUTH_FAILED=paramiko.sftp_attr-module.html#AUTH_FAILED,Variable paramiko.sftp_client.AUTH_FAILED=paramiko.sftp_client-module.html#AUTH_FAILED,Variable paramiko.sftp_file.AUTH_FAILED=paramiko.sftp_file-module.html#AUTH_FAILED,Variable paramiko.sftp_handle.AUTH_FAILED=paramiko.sftp_handle-module.html#AUTH_FAILED,Variable paramiko.sftp_server.AUTH_FAILED=paramiko.sftp_server-module.html#AUTH_FAILED,Variable paramiko.sftp_si.AUTH_FAILED=paramiko.sftp_si-module.html#AUTH_FAILED,Variable paramiko.transport.AUTH_FAILED=paramiko.transport-module.html#AUTH_FAILED,Variable paramiko.util.AUTH_FAILED=paramiko.util-module.html#AUTH_FAILED"><a title="paramiko.auth_handler.AUTH_FAILED
+paramiko.channel.AUTH_FAILED
+paramiko.client.AUTH_FAILED
+paramiko.common.AUTH_FAILED
+paramiko.dsskey.AUTH_FAILED
+paramiko.hostkeys.AUTH_FAILED
+paramiko.kex_gex.AUTH_FAILED
+paramiko.kex_group1.AUTH_FAILED
+paramiko.packet.AUTH_FAILED
+paramiko.pkey.AUTH_FAILED
+paramiko.rsakey.AUTH_FAILED
+paramiko.server.AUTH_FAILED
+paramiko.sftp.AUTH_FAILED
+paramiko.sftp_attr.AUTH_FAILED
+paramiko.sftp_client.AUTH_FAILED
+paramiko.sftp_file.AUTH_FAILED
+paramiko.sftp_handle.AUTH_FAILED
+paramiko.sftp_server.AUTH_FAILED
+paramiko.sftp_si.AUTH_FAILED
+paramiko.transport.AUTH_FAILED
+paramiko.util.AUTH_FAILED" class="py-name" href="#" onclick="return doclink('link-60', 'AUTH_FAILED', 'link-60');">AUTH_FAILED</a></tt> <tt class="py-op">=</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<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
+paramiko.channel.OPEN_SUCCEEDED
+paramiko.client.OPEN_SUCCEEDED
+paramiko.common.OPEN_SUCCEEDED
+paramiko.dsskey.OPEN_SUCCEEDED
+paramiko.hostkeys.OPEN_SUCCEEDED
+paramiko.kex_gex.OPEN_SUCCEEDED
+paramiko.kex_group1.OPEN_SUCCEEDED
+paramiko.packet.OPEN_SUCCEEDED
+paramiko.pkey.OPEN_SUCCEEDED
+paramiko.rsakey.OPEN_SUCCEEDED
+paramiko.server.OPEN_SUCCEEDED
+paramiko.sftp.OPEN_SUCCEEDED
+paramiko.sftp_attr.OPEN_SUCCEEDED
+paramiko.sftp_client.OPEN_SUCCEEDED
+paramiko.sftp_file.OPEN_SUCCEEDED
+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-61', 'OPEN_SUCCEEDED', 'link-61');">OPEN_SUCCEEDED</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"> <tt id="link-62" 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
+paramiko.dsskey.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.hostkeys.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.kex_gex.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.kex_group1.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.packet.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.pkey.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.rsakey.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.server.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.sftp.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.sftp_attr.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.sftp_client.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.sftp_file.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+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-62', 'OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED', 'link-62');">OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"> <tt id="link-63" class="py-name" targets="Variable paramiko.auth_handler.OPEN_FAILED_CONNECT_FAILED=paramiko.auth_handler-module.html#OPEN_FAILED_CONNECT_FAILED,Variable paramiko.channel.OPEN_FAILED_CONNECT_FAILED=paramiko.channel-module.html#OPEN_FAILED_CONNECT_FAILED,Variable paramiko.client.OPEN_FAILED_CONNECT_FAILED=paramiko.client-module.html#OPEN_FAILED_CONNECT_FAILED,Variable paramiko.common.OPEN_FAILED_CONNECT_FAILED=paramiko.common-module.html#OPEN_FAILED_CONNECT_FAILED,Variable paramiko.dsskey.OPEN_FAILED_CONNECT_FAILED=paramiko.dsskey-module.html#OPEN_FAILED_CONNECT_FAILED,Variable paramiko.hostkeys.OPEN_FAILED_CONNECT_FAILED=paramiko.hostkeys-module.html#OPEN_FAILED_CONNECT_FAILED,Variable paramiko.kex_gex.OPEN_FAILED_CONNECT_FAILED=paramiko.kex_gex-module.html#OPEN_FAILED_CONNECT_FAILED,Variable paramiko.kex_group1.OPEN_FAILED_CONNECT_FAILED=paramiko.kex_group1-module.html#OPEN_FAILED_CONNECT_FAILED,Variable paramiko.packet.OPEN_FAILED_CONNECT_FAILED=paramiko.packet-module.html#OPEN_FAILED_CONNECT_FAILED,Variable paramiko.pkey.OPEN_FAILED_CONNECT_FAILED=paramiko.pkey-module.html#OPEN_FAILED_CONNECT_FAILED,Variable paramiko.rsakey.OPEN_FAILED_CONNECT_FAILED=paramiko.rsakey-module.html#OPEN_FAILED_CONNECT_FAILED,Variable paramiko.server.OPEN_FAILED_CONNECT_FAILED=paramiko.server-module.html#OPEN_FAILED_CONNECT_FAILED,Variable paramiko.sftp.OPEN_FAILED_CONNECT_FAILED=paramiko.sftp-module.html#OPEN_FAILED_CONNECT_FAILED,Variable paramiko.sftp_attr.OPEN_FAILED_CONNECT_FAILED=paramiko.sftp_attr-module.html#OPEN_FAILED_CONNECT_FAILED,Variable paramiko.sftp_client.OPEN_FAILED_CONNECT_FAILED=paramiko.sftp_client-module.html#OPEN_FAILED_CONNECT_FAILED,Variable paramiko.sftp_file.OPEN_FAILED_CONNECT_FAILED=paramiko.sftp_file-module.html#OPEN_FAILED_CONNECT_FAILED,Variable paramiko.sftp_handle.OPEN_FAILED_CONNECT_FAILED=paramiko.sftp_handle-module.html#OPEN_FAILED_CONNECT_FAILED,Variable paramiko.sftp_server.OPEN_FAILED_CONNECT_FAILED=paramiko.sftp_server-module.html#OPEN_FAILED_CONNECT_FAILED,Variable paramiko.sftp_si.OPEN_FAILED_CONNECT_FAILED=paramiko.sftp_si-module.html#OPEN_FAILED_CONNECT_FAILED,Variable paramiko.transport.OPEN_FAILED_CONNECT_FAILED=paramiko.transport-module.html#OPEN_FAILED_CONNECT_FAILED,Variable paramiko.util.OPEN_FAILED_CONNECT_FAILED=paramiko.util-module.html#OPEN_FAILED_CONNECT_FAILED"><a title="paramiko.auth_handler.OPEN_FAILED_CONNECT_FAILED
+paramiko.channel.OPEN_FAILED_CONNECT_FAILED
+paramiko.client.OPEN_FAILED_CONNECT_FAILED
+paramiko.common.OPEN_FAILED_CONNECT_FAILED
+paramiko.dsskey.OPEN_FAILED_CONNECT_FAILED
+paramiko.hostkeys.OPEN_FAILED_CONNECT_FAILED
+paramiko.kex_gex.OPEN_FAILED_CONNECT_FAILED
+paramiko.kex_group1.OPEN_FAILED_CONNECT_FAILED
+paramiko.packet.OPEN_FAILED_CONNECT_FAILED
+paramiko.pkey.OPEN_FAILED_CONNECT_FAILED
+paramiko.rsakey.OPEN_FAILED_CONNECT_FAILED
+paramiko.server.OPEN_FAILED_CONNECT_FAILED
+paramiko.sftp.OPEN_FAILED_CONNECT_FAILED
+paramiko.sftp_attr.OPEN_FAILED_CONNECT_FAILED
+paramiko.sftp_client.OPEN_FAILED_CONNECT_FAILED
+paramiko.sftp_file.OPEN_FAILED_CONNECT_FAILED
+paramiko.sftp_handle.OPEN_FAILED_CONNECT_FAILED
+paramiko.sftp_server.OPEN_FAILED_CONNECT_FAILED
+paramiko.sftp_si.OPEN_FAILED_CONNECT_FAILED
+paramiko.transport.OPEN_FAILED_CONNECT_FAILED
+paramiko.util.OPEN_FAILED_CONNECT_FAILED" class="py-name" href="#" onclick="return doclink('link-63', 'OPEN_FAILED_CONNECT_FAILED', 'link-63');">OPEN_FAILED_CONNECT_FAILED</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"> <tt id="link-64" class="py-name" targets="Variable paramiko.auth_handler.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE=paramiko.auth_handler-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE,Variable paramiko.channel.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE=paramiko.channel-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE,Variable paramiko.client.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE=paramiko.client-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE,Variable paramiko.common.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE=paramiko.common-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE,Variable paramiko.dsskey.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE=paramiko.dsskey-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE,Variable paramiko.hostkeys.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE=paramiko.hostkeys-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE,Variable paramiko.kex_gex.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE=paramiko.kex_gex-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE,Variable paramiko.kex_group1.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE=paramiko.kex_group1-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE,Variable paramiko.packet.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE=paramiko.packet-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE,Variable paramiko.pkey.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE=paramiko.pkey-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE,Variable paramiko.rsakey.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE=paramiko.rsakey-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE,Variable paramiko.server.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE=paramiko.server-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE,Variable paramiko.sftp.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE=paramiko.sftp-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE,Variable paramiko.sftp_attr.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE=paramiko.sftp_attr-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE,Variable paramiko.sftp_client.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE=paramiko.sftp_client-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE,Variable paramiko.sftp_file.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE=paramiko.sftp_file-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE,Variable paramiko.sftp_handle.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE=paramiko.sftp_handle-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE,Variable paramiko.sftp_server.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE=paramiko.sftp_server-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE,Variable paramiko.sftp_si.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE=paramiko.sftp_si-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE,Variable paramiko.transport.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE=paramiko.transport-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE,Variable paramiko.util.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE=paramiko.util-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE"><a title="paramiko.auth_handler.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.channel.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.client.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.common.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.dsskey.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.hostkeys.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.kex_gex.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.kex_group1.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.packet.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.pkey.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.rsakey.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.server.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.sftp.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.sftp_attr.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.sftp_client.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.sftp_file.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.sftp_handle.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.sftp_server.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.sftp_si.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.transport.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE
+paramiko.util.OPEN_FAILED_UNKNOWN_CHANNEL_TYPE" class="py-name" href="#" onclick="return doclink('link-64', 'OPEN_FAILED_UNKNOWN_CHANNEL_TYPE', 'link-64');">OPEN_FAILED_UNKNOWN_CHANNEL_TYPE</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"> <tt id="link-65" class="py-name" targets="Variable paramiko.auth_handler.OPEN_FAILED_RESOURCE_SHORTAGE=paramiko.auth_handler-module.html#OPEN_FAILED_RESOURCE_SHORTAGE,Variable paramiko.channel.OPEN_FAILED_RESOURCE_SHORTAGE=paramiko.channel-module.html#OPEN_FAILED_RESOURCE_SHORTAGE,Variable paramiko.client.OPEN_FAILED_RESOURCE_SHORTAGE=paramiko.client-module.html#OPEN_FAILED_RESOURCE_SHORTAGE,Variable paramiko.common.OPEN_FAILED_RESOURCE_SHORTAGE=paramiko.common-module.html#OPEN_FAILED_RESOURCE_SHORTAGE,Variable paramiko.dsskey.OPEN_FAILED_RESOURCE_SHORTAGE=paramiko.dsskey-module.html#OPEN_FAILED_RESOURCE_SHORTAGE,Variable paramiko.hostkeys.OPEN_FAILED_RESOURCE_SHORTAGE=paramiko.hostkeys-module.html#OPEN_FAILED_RESOURCE_SHORTAGE,Variable paramiko.kex_gex.OPEN_FAILED_RESOURCE_SHORTAGE=paramiko.kex_gex-module.html#OPEN_FAILED_RESOURCE_SHORTAGE,Variable paramiko.kex_group1.OPEN_FAILED_RESOURCE_SHORTAGE=paramiko.kex_group1-module.html#OPEN_FAILED_RESOURCE_SHORTAGE,Variable paramiko.packet.OPEN_FAILED_RESOURCE_SHORTAGE=paramiko.packet-module.html#OPEN_FAILED_RESOURCE_SHORTAGE,Variable paramiko.pkey.OPEN_FAILED_RESOURCE_SHORTAGE=paramiko.pkey-module.html#OPEN_FAILED_RESOURCE_SHORTAGE,Variable paramiko.rsakey.OPEN_FAILED_RESOURCE_SHORTAGE=paramiko.rsakey-module.html#OPEN_FAILED_RESOURCE_SHORTAGE,Variable paramiko.server.OPEN_FAILED_RESOURCE_SHORTAGE=paramiko.server-module.html#OPEN_FAILED_RESOURCE_SHORTAGE,Variable paramiko.sftp.OPEN_FAILED_RESOURCE_SHORTAGE=paramiko.sftp-module.html#OPEN_FAILED_RESOURCE_SHORTAGE,Variable paramiko.sftp_attr.OPEN_FAILED_RESOURCE_SHORTAGE=paramiko.sftp_attr-module.html#OPEN_FAILED_RESOURCE_SHORTAGE,Variable paramiko.sftp_client.OPEN_FAILED_RESOURCE_SHORTAGE=paramiko.sftp_client-module.html#OPEN_FAILED_RESOURCE_SHORTAGE,Variable paramiko.sftp_file.OPEN_FAILED_RESOURCE_SHORTAGE=paramiko.sftp_file-module.html#OPEN_FAILED_RESOURCE_SHORTAGE,Variable paramiko.sftp_handle.OPEN_FAILED_RESOURCE_SHORTAGE=paramiko.sftp_handle-module.html#OPEN_FAILED_RESOURCE_SHORTAGE,Variable paramiko.sftp_server.OPEN_FAILED_RESOURCE_SHORTAGE=paramiko.sftp_server-module.html#OPEN_FAILED_RESOURCE_SHORTAGE,Variable paramiko.sftp_si.OPEN_FAILED_RESOURCE_SHORTAGE=paramiko.sftp_si-module.html#OPEN_FAILED_RESOURCE_SHORTAGE,Variable paramiko.transport.OPEN_FAILED_RESOURCE_SHORTAGE=paramiko.transport-module.html#OPEN_FAILED_RESOURCE_SHORTAGE,Variable paramiko.util.OPEN_FAILED_RESOURCE_SHORTAGE=paramiko.util-module.html#OPEN_FAILED_RESOURCE_SHORTAGE"><a title="paramiko.auth_handler.OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.channel.OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.client.OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.common.OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.dsskey.OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.hostkeys.OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.kex_gex.OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.kex_group1.OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.packet.OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.pkey.OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.rsakey.OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.server.OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.sftp.OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.sftp_attr.OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.sftp_client.OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.sftp_file.OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.sftp_handle.OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.sftp_server.OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.sftp_si.OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.transport.OPEN_FAILED_RESOURCE_SHORTAGE
+paramiko.util.OPEN_FAILED_RESOURCE_SHORTAGE" class="py-name" href="#" onclick="return doclink('link-65', 'OPEN_FAILED_RESOURCE_SHORTAGE', 'link-65');">OPEN_FAILED_RESOURCE_SHORTAGE</a></tt><tt class="py-op">)</tt> <tt class="py-op">=</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-number">5</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>
+<a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"><tt id="link-66" 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
+paramiko.dsskey.CONNECTION_FAILED_CODE
+paramiko.hostkeys.CONNECTION_FAILED_CODE
+paramiko.kex_gex.CONNECTION_FAILED_CODE
+paramiko.kex_group1.CONNECTION_FAILED_CODE
+paramiko.packet.CONNECTION_FAILED_CODE
+paramiko.pkey.CONNECTION_FAILED_CODE
+paramiko.rsakey.CONNECTION_FAILED_CODE
+paramiko.server.CONNECTION_FAILED_CODE
+paramiko.sftp.CONNECTION_FAILED_CODE
+paramiko.sftp_attr.CONNECTION_FAILED_CODE
+paramiko.sftp_client.CONNECTION_FAILED_CODE
+paramiko.sftp_file.CONNECTION_FAILED_CODE
+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-66', 'CONNECTION_FAILED_CODE', 'link-66');">CONNECTION_FAILED_CODE</a></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-number">1</tt><tt class="py-op">:</tt> <tt class="py-string">'Administratively prohibited'</tt><tt class="py-op">,</tt> </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"> <tt class="py-number">2</tt><tt class="py-op">:</tt> <tt class="py-string">'Connect failed'</tt><tt class="py-op">,</tt> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"> <tt class="py-number">3</tt><tt class="py-op">:</tt> <tt class="py-string">'Unknown channel type'</tt><tt class="py-op">,</tt> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"> <tt class="py-number">4</tt><tt class="py-op">:</tt> <tt class="py-string">'Resource shortage'</tt> </tt>
+<a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line"><tt class="py-op">}</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>
+<a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"><tt id="link-67" class="py-name" targets="Variable paramiko.auth_handler.DISCONNECT_SERVICE_NOT_AVAILABLE=paramiko.auth_handler-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE,Variable paramiko.channel.DISCONNECT_SERVICE_NOT_AVAILABLE=paramiko.channel-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE,Variable paramiko.client.DISCONNECT_SERVICE_NOT_AVAILABLE=paramiko.client-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE,Variable paramiko.common.DISCONNECT_SERVICE_NOT_AVAILABLE=paramiko.common-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE,Variable paramiko.dsskey.DISCONNECT_SERVICE_NOT_AVAILABLE=paramiko.dsskey-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE,Variable paramiko.hostkeys.DISCONNECT_SERVICE_NOT_AVAILABLE=paramiko.hostkeys-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE,Variable paramiko.kex_gex.DISCONNECT_SERVICE_NOT_AVAILABLE=paramiko.kex_gex-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE,Variable paramiko.kex_group1.DISCONNECT_SERVICE_NOT_AVAILABLE=paramiko.kex_group1-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE,Variable paramiko.packet.DISCONNECT_SERVICE_NOT_AVAILABLE=paramiko.packet-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE,Variable paramiko.pkey.DISCONNECT_SERVICE_NOT_AVAILABLE=paramiko.pkey-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE,Variable paramiko.rsakey.DISCONNECT_SERVICE_NOT_AVAILABLE=paramiko.rsakey-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE,Variable paramiko.server.DISCONNECT_SERVICE_NOT_AVAILABLE=paramiko.server-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE,Variable paramiko.sftp.DISCONNECT_SERVICE_NOT_AVAILABLE=paramiko.sftp-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE,Variable paramiko.sftp_attr.DISCONNECT_SERVICE_NOT_AVAILABLE=paramiko.sftp_attr-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE,Variable paramiko.sftp_client.DISCONNECT_SERVICE_NOT_AVAILABLE=paramiko.sftp_client-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE,Variable paramiko.sftp_file.DISCONNECT_SERVICE_NOT_AVAILABLE=paramiko.sftp_file-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE,Variable paramiko.sftp_handle.DISCONNECT_SERVICE_NOT_AVAILABLE=paramiko.sftp_handle-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE,Variable paramiko.sftp_server.DISCONNECT_SERVICE_NOT_AVAILABLE=paramiko.sftp_server-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE,Variable paramiko.sftp_si.DISCONNECT_SERVICE_NOT_AVAILABLE=paramiko.sftp_si-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE,Variable paramiko.transport.DISCONNECT_SERVICE_NOT_AVAILABLE=paramiko.transport-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE,Variable paramiko.util.DISCONNECT_SERVICE_NOT_AVAILABLE=paramiko.util-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE"><a title="paramiko.auth_handler.DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.channel.DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.client.DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.common.DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.dsskey.DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.hostkeys.DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.kex_gex.DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.kex_group1.DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.packet.DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.pkey.DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.rsakey.DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.server.DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.sftp.DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.sftp_attr.DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.sftp_client.DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.sftp_file.DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.sftp_handle.DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.sftp_server.DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.sftp_si.DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.transport.DISCONNECT_SERVICE_NOT_AVAILABLE
+paramiko.util.DISCONNECT_SERVICE_NOT_AVAILABLE" class="py-name" href="#" onclick="return doclink('link-67', 'DISCONNECT_SERVICE_NOT_AVAILABLE', 'link-67');">DISCONNECT_SERVICE_NOT_AVAILABLE</a></tt><tt class="py-op">,</tt> <tt id="link-68" class="py-name" targets="Variable paramiko.auth_handler.DISCONNECT_AUTH_CANCELLED_BY_USER=paramiko.auth_handler-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER,Variable paramiko.channel.DISCONNECT_AUTH_CANCELLED_BY_USER=paramiko.channel-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER,Variable paramiko.client.DISCONNECT_AUTH_CANCELLED_BY_USER=paramiko.client-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER,Variable paramiko.common.DISCONNECT_AUTH_CANCELLED_BY_USER=paramiko.common-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER,Variable paramiko.dsskey.DISCONNECT_AUTH_CANCELLED_BY_USER=paramiko.dsskey-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER,Variable paramiko.hostkeys.DISCONNECT_AUTH_CANCELLED_BY_USER=paramiko.hostkeys-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER,Variable paramiko.kex_gex.DISCONNECT_AUTH_CANCELLED_BY_USER=paramiko.kex_gex-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER,Variable paramiko.kex_group1.DISCONNECT_AUTH_CANCELLED_BY_USER=paramiko.kex_group1-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER,Variable paramiko.packet.DISCONNECT_AUTH_CANCELLED_BY_USER=paramiko.packet-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER,Variable paramiko.pkey.DISCONNECT_AUTH_CANCELLED_BY_USER=paramiko.pkey-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER,Variable paramiko.rsakey.DISCONNECT_AUTH_CANCELLED_BY_USER=paramiko.rsakey-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER,Variable paramiko.server.DISCONNECT_AUTH_CANCELLED_BY_USER=paramiko.server-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER,Variable paramiko.sftp.DISCONNECT_AUTH_CANCELLED_BY_USER=paramiko.sftp-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER,Variable paramiko.sftp_attr.DISCONNECT_AUTH_CANCELLED_BY_USER=paramiko.sftp_attr-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER,Variable paramiko.sftp_client.DISCONNECT_AUTH_CANCELLED_BY_USER=paramiko.sftp_client-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER,Variable paramiko.sftp_file.DISCONNECT_AUTH_CANCELLED_BY_USER=paramiko.sftp_file-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER,Variable paramiko.sftp_handle.DISCONNECT_AUTH_CANCELLED_BY_USER=paramiko.sftp_handle-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER,Variable paramiko.sftp_server.DISCONNECT_AUTH_CANCELLED_BY_USER=paramiko.sftp_server-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER,Variable paramiko.sftp_si.DISCONNECT_AUTH_CANCELLED_BY_USER=paramiko.sftp_si-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER,Variable paramiko.transport.DISCONNECT_AUTH_CANCELLED_BY_USER=paramiko.transport-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER,Variable paramiko.util.DISCONNECT_AUTH_CANCELLED_BY_USER=paramiko.util-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER"><a title="paramiko.auth_handler.DISCONNECT_AUTH_CANCELLED_BY_USER
+paramiko.channel.DISCONNECT_AUTH_CANCELLED_BY_USER
+paramiko.client.DISCONNECT_AUTH_CANCELLED_BY_USER
+paramiko.common.DISCONNECT_AUTH_CANCELLED_BY_USER
+paramiko.dsskey.DISCONNECT_AUTH_CANCELLED_BY_USER
+paramiko.hostkeys.DISCONNECT_AUTH_CANCELLED_BY_USER
+paramiko.kex_gex.DISCONNECT_AUTH_CANCELLED_BY_USER
+paramiko.kex_group1.DISCONNECT_AUTH_CANCELLED_BY_USER
+paramiko.packet.DISCONNECT_AUTH_CANCELLED_BY_USER
+paramiko.pkey.DISCONNECT_AUTH_CANCELLED_BY_USER
+paramiko.rsakey.DISCONNECT_AUTH_CANCELLED_BY_USER
+paramiko.server.DISCONNECT_AUTH_CANCELLED_BY_USER
+paramiko.sftp.DISCONNECT_AUTH_CANCELLED_BY_USER
+paramiko.sftp_attr.DISCONNECT_AUTH_CANCELLED_BY_USER
+paramiko.sftp_client.DISCONNECT_AUTH_CANCELLED_BY_USER
+paramiko.sftp_file.DISCONNECT_AUTH_CANCELLED_BY_USER
+paramiko.sftp_handle.DISCONNECT_AUTH_CANCELLED_BY_USER
+paramiko.sftp_server.DISCONNECT_AUTH_CANCELLED_BY_USER
+paramiko.sftp_si.DISCONNECT_AUTH_CANCELLED_BY_USER
+paramiko.transport.DISCONNECT_AUTH_CANCELLED_BY_USER
+paramiko.util.DISCONNECT_AUTH_CANCELLED_BY_USER" class="py-name" href="#" onclick="return doclink('link-68', 'DISCONNECT_AUTH_CANCELLED_BY_USER', 'link-68');">DISCONNECT_AUTH_CANCELLED_BY_USER</a></tt><tt class="py-op">,</tt> \ </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"> <tt id="link-69" class="py-name" targets="Variable paramiko.auth_handler.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE=paramiko.auth_handler-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE,Variable paramiko.channel.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE=paramiko.channel-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE,Variable paramiko.client.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE=paramiko.client-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE,Variable paramiko.common.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE=paramiko.common-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE,Variable paramiko.dsskey.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE=paramiko.dsskey-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE,Variable paramiko.hostkeys.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE=paramiko.hostkeys-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE,Variable paramiko.kex_gex.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE=paramiko.kex_gex-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE,Variable paramiko.kex_group1.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE=paramiko.kex_group1-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE,Variable paramiko.packet.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE=paramiko.packet-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE,Variable paramiko.pkey.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE=paramiko.pkey-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE,Variable paramiko.rsakey.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE=paramiko.rsakey-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE,Variable paramiko.server.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE=paramiko.server-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE,Variable paramiko.sftp.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE=paramiko.sftp-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE,Variable paramiko.sftp_attr.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE=paramiko.sftp_attr-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE,Variable paramiko.sftp_client.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE=paramiko.sftp_client-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE,Variable paramiko.sftp_file.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE=paramiko.sftp_file-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE,Variable paramiko.sftp_handle.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE=paramiko.sftp_handle-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE,Variable paramiko.sftp_server.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE=paramiko.sftp_server-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE,Variable paramiko.sftp_si.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE=paramiko.sftp_si-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE,Variable paramiko.transport.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE=paramiko.transport-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE,Variable paramiko.util.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE=paramiko.util-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE"><a title="paramiko.auth_handler.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.channel.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.client.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.common.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.dsskey.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.hostkeys.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.kex_gex.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.kex_group1.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.packet.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.pkey.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.rsakey.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.server.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.sftp.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.sftp_attr.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.sftp_client.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.sftp_file.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.sftp_handle.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.sftp_server.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.sftp_si.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.transport.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+paramiko.util.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE" class="py-name" href="#" onclick="return doclink('link-69', 'DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE', 'link-69');">DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE</a></tt> <tt class="py-op">=</tt> <tt class="py-number">7</tt><tt class="py-op">,</tt> <tt class="py-number">13</tt><tt class="py-op">,</tt> <tt class="py-number">14</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-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
+paramiko.channel.randpool
+paramiko.client.randpool
+paramiko.common.randpool
+paramiko.dsskey.randpool
+paramiko.hostkeys.randpool
+paramiko.kex_gex.randpool
+paramiko.kex_group1.randpool
+paramiko.packet.randpool
+paramiko.pkey.randpool
+paramiko.rsakey.randpool
+paramiko.server.randpool
+paramiko.sftp.randpool
+paramiko.sftp_attr.randpool
+paramiko.sftp_client.randpool
+paramiko.sftp_file.randpool
+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-72', 'randpool', 'link-72');">randpool</a></tt> <tt class="py-op">=</tt> <tt id="link-73" class="py-name"><a title="paramiko.rng.StrongLockingRandomPool" class="py-name" href="#" onclick="return doclink('link-73', 'StrongLockingRandomPool', 'link-71');">StrongLockingRandomPool</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>
+<a name="L103"></a><tt class="py-lineno">103</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">sys</tt> </tt>
+<a name="L104"></a><tt class="py-lineno">104</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="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"> <tt class="py-keyword">try</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">import</tt> <tt class="py-name">logging</tt> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"> <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line"> <tt class="py-keyword">import</tt> <tt id="link-74" class="py-name" targets="Module paramiko.logging22=paramiko.logging22-module.html"><a title="paramiko.logging22" class="py-name" href="#" onclick="return doclink('link-74', 'logging22', 'link-74');">logging22</a></tt> <tt class="py-keyword">as</tt> <tt class="py-name">logging</tt> </tt>
+<a name="L109"></a><tt class="py-lineno">109</tt> <tt class="py-line"> <tt class="py-keyword">import</tt> <tt class="py-name">select</tt> </tt>
+<a name="L110"></a><tt class="py-lineno">110</tt> <tt class="py-line"> <tt id="link-75" class="py-name" targets="Variable paramiko.auth_handler.PY22=paramiko.auth_handler-module.html#PY22,Variable paramiko.channel.PY22=paramiko.channel-module.html#PY22,Variable paramiko.client.PY22=paramiko.client-module.html#PY22,Variable paramiko.common.PY22=paramiko.common-module.html#PY22,Variable paramiko.dsskey.PY22=paramiko.dsskey-module.html#PY22,Variable paramiko.hostkeys.PY22=paramiko.hostkeys-module.html#PY22,Variable paramiko.kex_gex.PY22=paramiko.kex_gex-module.html#PY22,Variable paramiko.kex_group1.PY22=paramiko.kex_group1-module.html#PY22,Variable paramiko.packet.PY22=paramiko.packet-module.html#PY22,Variable paramiko.pkey.PY22=paramiko.pkey-module.html#PY22,Variable paramiko.rsakey.PY22=paramiko.rsakey-module.html#PY22,Variable paramiko.server.PY22=paramiko.server-module.html#PY22,Variable paramiko.sftp.PY22=paramiko.sftp-module.html#PY22,Variable paramiko.sftp_attr.PY22=paramiko.sftp_attr-module.html#PY22,Variable paramiko.sftp_client.PY22=paramiko.sftp_client-module.html#PY22,Variable paramiko.sftp_file.PY22=paramiko.sftp_file-module.html#PY22,Variable paramiko.sftp_handle.PY22=paramiko.sftp_handle-module.html#PY22,Variable paramiko.sftp_server.PY22=paramiko.sftp_server-module.html#PY22,Variable paramiko.sftp_si.PY22=paramiko.sftp_si-module.html#PY22,Variable paramiko.transport.PY22=paramiko.transport-module.html#PY22,Variable paramiko.util.PY22=paramiko.util-module.html#PY22"><a title="paramiko.auth_handler.PY22
+paramiko.channel.PY22
+paramiko.client.PY22
+paramiko.common.PY22
+paramiko.dsskey.PY22
+paramiko.hostkeys.PY22
+paramiko.kex_gex.PY22
+paramiko.kex_group1.PY22
+paramiko.packet.PY22
+paramiko.pkey.PY22
+paramiko.rsakey.PY22
+paramiko.server.PY22
+paramiko.sftp.PY22
+paramiko.sftp_attr.PY22
+paramiko.sftp_client.PY22
+paramiko.sftp_file.PY22
+paramiko.sftp_handle.PY22
+paramiko.sftp_server.PY22
+paramiko.sftp_si.PY22
+paramiko.transport.PY22
+paramiko.util.PY22" class="py-name" href="#" onclick="return doclink('link-75', 'PY22', 'link-75');">PY22</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<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-keyword">import</tt> <tt class="py-name">socket</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-keyword">not</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt class="py-name">socket</tt><tt class="py-op">,</tt> <tt class="py-string">'timeout'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="timeout"></a><div id="timeout-def"><a name="L114"></a><tt class="py-lineno">114</tt> <a class="py-toggle" href="#" id="timeout-toggle" onclick="return toggle('timeout');">-</a><tt class="py-line"> <tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.common.timeout-class.html">timeout</a><tt class="py-op">(</tt><tt class="py-base-class">socket</tt><tt class="py-op">.</tt><tt class="py-base-class">error</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"> <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-name">timeout</tt> </tt>
+<a name="L116"></a><tt class="py-lineno">116</tt> <tt class="py-line"> <tt class="py-keyword">del</tt> <tt class="py-name">timeout</tt> </tt>
+<a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"><tt class="py-keyword">else</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">import</tt> <tt class="py-name">logging</tt> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"> <tt id="link-76" class="py-name"><a title="paramiko.auth_handler.PY22
+paramiko.channel.PY22
+paramiko.client.PY22
+paramiko.common.PY22
+paramiko.dsskey.PY22
+paramiko.hostkeys.PY22
+paramiko.kex_gex.PY22
+paramiko.kex_group1.PY22
+paramiko.packet.PY22
+paramiko.pkey.PY22
+paramiko.rsakey.PY22
+paramiko.server.PY22
+paramiko.sftp.PY22
+paramiko.sftp_attr.PY22
+paramiko.sftp_client.PY22
+paramiko.sftp_file.PY22
+paramiko.sftp_handle.PY22
+paramiko.sftp_server.PY22
+paramiko.sftp_si.PY22
+paramiko.transport.PY22
+paramiko.util.PY22" class="py-name" href="#" onclick="return doclink('link-76', 'PY22', 'link-75');">PY22</a></tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<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>
+<a name="L122"></a><tt class="py-lineno">122</tt> <tt class="py-line"><tt id="link-77" 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
+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-77', 'DEBUG', 'link-77');">DEBUG</a></tt> <tt class="py-op">=</tt> <tt class="py-name">logging</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
+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-78', 'DEBUG', 'link-77');">DEBUG</a></tt> </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt> <tt class="py-line"><tt id="link-79" 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
+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-79', 'INFO', 'link-79');">INFO</a></tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt id="link-80" 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-80', 'INFO', 'link-79');">INFO</a></tt> </tt>
+<a name="L124"></a><tt class="py-lineno">124</tt> <tt class="py-line"><tt id="link-81" 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
+paramiko.dsskey.WARNING
+paramiko.hostkeys.WARNING
+paramiko.kex_gex.WARNING
+paramiko.kex_group1.WARNING
+paramiko.logging22.WARNING
+paramiko.packet.WARNING
+paramiko.pkey.WARNING
+paramiko.rsakey.WARNING
+paramiko.server.WARNING
+paramiko.sftp.WARNING
+paramiko.sftp_attr.WARNING
+paramiko.sftp_client.WARNING
+paramiko.sftp_file.WARNING
+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-81', 'WARNING', 'link-81');">WARNING</a></tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt id="link-82" class="py-name"><a title="paramiko.auth_handler.WARNING
+paramiko.channel.WARNING
+paramiko.client.WARNING
+paramiko.common.WARNING
+paramiko.dsskey.WARNING
+paramiko.hostkeys.WARNING
+paramiko.kex_gex.WARNING
+paramiko.kex_group1.WARNING
+paramiko.logging22.WARNING
+paramiko.packet.WARNING
+paramiko.pkey.WARNING
+paramiko.rsakey.WARNING
+paramiko.server.WARNING
+paramiko.sftp.WARNING
+paramiko.sftp_attr.WARNING
+paramiko.sftp_client.WARNING
+paramiko.sftp_file.WARNING
+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-82', 'WARNING', 'link-81');">WARNING</a></tt> </tt>
+<a name="L125"></a><tt class="py-lineno">125</tt> <tt class="py-line"><tt id="link-83" 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
+paramiko.dsskey.ERROR
+paramiko.hostkeys.ERROR
+paramiko.kex_gex.ERROR
+paramiko.kex_group1.ERROR
+paramiko.logging22.ERROR
+paramiko.packet.ERROR
+paramiko.pkey.ERROR
+paramiko.rsakey.ERROR
+paramiko.server.ERROR
+paramiko.sftp.ERROR
+paramiko.sftp_attr.ERROR
+paramiko.sftp_client.ERROR
+paramiko.sftp_file.ERROR
+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-83', 'ERROR', 'link-83');">ERROR</a></tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt id="link-84" class="py-name"><a title="paramiko.auth_handler.ERROR
+paramiko.channel.ERROR
+paramiko.client.ERROR
+paramiko.common.ERROR
+paramiko.dsskey.ERROR
+paramiko.hostkeys.ERROR
+paramiko.kex_gex.ERROR
+paramiko.kex_group1.ERROR
+paramiko.logging22.ERROR
+paramiko.packet.ERROR
+paramiko.pkey.ERROR
+paramiko.rsakey.ERROR
+paramiko.server.ERROR
+paramiko.sftp.ERROR
+paramiko.sftp_attr.ERROR
+paramiko.sftp_client.ERROR
+paramiko.sftp_file.ERROR
+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-84', 'ERROR', 'link-83');">ERROR</a></tt> </tt>
+<a name="L126"></a><tt class="py-lineno">126</tt> <tt class="py-line"><tt id="link-85" class="py-name" targets="Variable paramiko.auth_handler.CRITICAL=paramiko.auth_handler-module.html#CRITICAL,Variable paramiko.channel.CRITICAL=paramiko.channel-module.html#CRITICAL,Variable paramiko.client.CRITICAL=paramiko.client-module.html#CRITICAL,Variable paramiko.common.CRITICAL=paramiko.common-module.html#CRITICAL,Variable paramiko.dsskey.CRITICAL=paramiko.dsskey-module.html#CRITICAL,Variable paramiko.hostkeys.CRITICAL=paramiko.hostkeys-module.html#CRITICAL,Variable paramiko.kex_gex.CRITICAL=paramiko.kex_gex-module.html#CRITICAL,Variable paramiko.kex_group1.CRITICAL=paramiko.kex_group1-module.html#CRITICAL,Variable paramiko.logging22.CRITICAL=paramiko.logging22-module.html#CRITICAL,Variable paramiko.packet.CRITICAL=paramiko.packet-module.html#CRITICAL,Variable paramiko.pkey.CRITICAL=paramiko.pkey-module.html#CRITICAL,Variable paramiko.rsakey.CRITICAL=paramiko.rsakey-module.html#CRITICAL,Variable paramiko.server.CRITICAL=paramiko.server-module.html#CRITICAL,Variable paramiko.sftp.CRITICAL=paramiko.sftp-module.html#CRITICAL,Variable paramiko.sftp_attr.CRITICAL=paramiko.sftp_attr-module.html#CRITICAL,Variable paramiko.sftp_client.CRITICAL=paramiko.sftp_client-module.html#CRITICAL,Variable paramiko.sftp_file.CRITICAL=paramiko.sftp_file-module.html#CRITICAL,Variable paramiko.sftp_handle.CRITICAL=paramiko.sftp_handle-module.html#CRITICAL,Variable paramiko.sftp_server.CRITICAL=paramiko.sftp_server-module.html#CRITICAL,Variable paramiko.sftp_si.CRITICAL=paramiko.sftp_si-module.html#CRITICAL,Variable paramiko.transport.CRITICAL=paramiko.transport-module.html#CRITICAL,Variable paramiko.util.CRITICAL=paramiko.util-module.html#CRITICAL"><a title="paramiko.auth_handler.CRITICAL
+paramiko.channel.CRITICAL
+paramiko.client.CRITICAL
+paramiko.common.CRITICAL
+paramiko.dsskey.CRITICAL
+paramiko.hostkeys.CRITICAL
+paramiko.kex_gex.CRITICAL
+paramiko.kex_group1.CRITICAL
+paramiko.logging22.CRITICAL
+paramiko.packet.CRITICAL
+paramiko.pkey.CRITICAL
+paramiko.rsakey.CRITICAL
+paramiko.server.CRITICAL
+paramiko.sftp.CRITICAL
+paramiko.sftp_attr.CRITICAL
+paramiko.sftp_client.CRITICAL
+paramiko.sftp_file.CRITICAL
+paramiko.sftp_handle.CRITICAL
+paramiko.sftp_server.CRITICAL
+paramiko.sftp_si.CRITICAL
+paramiko.transport.CRITICAL
+paramiko.util.CRITICAL" class="py-name" href="#" onclick="return doclink('link-85', 'CRITICAL', 'link-85');">CRITICAL</a></tt> <tt class="py-op">=</tt> <tt class="py-name">logging</tt><tt class="py-op">.</tt><tt id="link-86" class="py-name"><a title="paramiko.auth_handler.CRITICAL
+paramiko.channel.CRITICAL
+paramiko.client.CRITICAL
+paramiko.common.CRITICAL
+paramiko.dsskey.CRITICAL
+paramiko.hostkeys.CRITICAL
+paramiko.kex_gex.CRITICAL
+paramiko.kex_group1.CRITICAL
+paramiko.logging22.CRITICAL
+paramiko.packet.CRITICAL
+paramiko.pkey.CRITICAL
+paramiko.rsakey.CRITICAL
+paramiko.server.CRITICAL
+paramiko.sftp.CRITICAL
+paramiko.sftp_attr.CRITICAL
+paramiko.sftp_client.CRITICAL
+paramiko.sftp_file.CRITICAL
+paramiko.sftp_handle.CRITICAL
+paramiko.sftp_server.CRITICAL
+paramiko.sftp_si.CRITICAL
+paramiko.transport.CRITICAL
+paramiko.util.CRITICAL" class="py-name" href="#" onclick="return doclink('link-86', 'CRITICAL', 'link-85');">CRITICAL</a></tt> </tt>
+<a name="L127"></a><tt class="py-lineno">127</tt> <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<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 Jul 6 18:30:31 2008
+ </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.compress-module.html b/docs/paramiko.compress-module.html
new file mode 100644
index 0000000..2c8066b
--- /dev/null
+++ b/docs/paramiko.compress-module.html
@@ -0,0 +1,127 @@
+<?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.compress</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> ::
+ Module&nbsp;compress
+ </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.compress-module.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module compress</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.compress-pysrc.html">source&nbsp;code</a></span></p>
+<p>Compression implementations for a Transport.</p>
+
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></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">Classes</span></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.compress.ZlibCompressor-class.html" class="summary-name">ZlibCompressor</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.compress.ZlibDecompressor-class.html" class="summary-name">ZlibDecompressor</a>
+ </td>
+ </tr>
+</table>
+<!-- ==================== 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 Jul 6 18:30:26 2008
+ </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.compress-pysrc.html b/docs/paramiko.compress-pysrc.html
new file mode 100644
index 0000000..47f4de1
--- /dev/null
+++ b/docs/paramiko.compress-pysrc.html
@@ -0,0 +1,148 @@
+<?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.compress</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> ::
+ Module&nbsp;compress
+ </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.compress-pysrc.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</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="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>
+<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">import</tt> <tt class="py-name">zlib</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>
+<a name="ZlibCompressor"></a><div id="ZlibCompressor-def"><a name="L26"></a><tt class="py-lineno">26</tt> <a class="py-toggle" href="#" id="ZlibCompressor-toggle" onclick="return toggle('ZlibCompressor');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.compress.ZlibCompressor-class.html">ZlibCompressor</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="ZlibCompressor-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="ZlibCompressor-expanded"><a name="ZlibCompressor.__init__"></a><div id="ZlibCompressor.__init__-def"><a name="L27"></a><tt class="py-lineno">27</tt> <a class="py-toggle" href="#" id="ZlibCompressor.__init__-toggle" onclick="return toggle('ZlibCompressor.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.compress.ZlibCompressor-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="ZlibCompressor.__init__-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="ZlibCompressor.__init__-expanded"><a name="L28"></a><tt class="py-lineno">28</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">z</tt> <tt class="py-op">=</tt> <tt class="py-name">zlib</tt><tt class="py-op">.</tt><tt class="py-name">compressobj</tt><tt class="py-op">(</tt><tt class="py-number">9</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L29"></a><tt class="py-lineno">29</tt> <tt class="py-line"> </tt>
+<a name="ZlibCompressor.__call__"></a><div id="ZlibCompressor.__call__-def"><a name="L30"></a><tt class="py-lineno">30</tt> <a class="py-toggle" href="#" id="ZlibCompressor.__call__-toggle" onclick="return toggle('ZlibCompressor.__call__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.compress.ZlibCompressor-class.html#__call__">__call__</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="ZlibCompressor.__call__-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="ZlibCompressor.__call__-expanded"><a name="L31"></a><tt class="py-lineno">31</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">z</tt><tt class="py-op">.</tt><tt id="link-0" class="py-name" targets="Module paramiko.compress=paramiko.compress-module.html"><a title="paramiko.compress" class="py-name" href="#" onclick="return doclink('link-0', 'compress', 'link-0');">compress</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">self</tt><tt class="py-op">.</tt><tt class="py-name">z</tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Method paramiko.BufferedFile.flush()=paramiko.BufferedFile-class.html#flush"><a title="paramiko.BufferedFile.flush" class="py-name" href="#" onclick="return doclink('link-1', 'flush', 'link-1');">flush</a></tt><tt class="py-op">(</tt><tt class="py-name">zlib</tt><tt class="py-op">.</tt><tt class="py-name">Z_FULL_FLUSH</tt><tt class="py-op">)</tt> </tt>
+</div></div><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="ZlibDecompressor"></a><div id="ZlibDecompressor-def"><a name="L34"></a><tt class="py-lineno">34</tt> <a class="py-toggle" href="#" id="ZlibDecompressor-toggle" onclick="return toggle('ZlibDecompressor');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.compress.ZlibDecompressor-class.html">ZlibDecompressor</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="ZlibDecompressor-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="ZlibDecompressor-expanded"><a name="ZlibDecompressor.__init__"></a><div id="ZlibDecompressor.__init__-def"><a name="L35"></a><tt class="py-lineno">35</tt> <a class="py-toggle" href="#" id="ZlibDecompressor.__init__-toggle" onclick="return toggle('ZlibDecompressor.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.compress.ZlibDecompressor-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="ZlibDecompressor.__init__-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="ZlibDecompressor.__init__-expanded"><a name="L36"></a><tt class="py-lineno">36</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">z</tt> <tt class="py-op">=</tt> <tt class="py-name">zlib</tt><tt class="py-op">.</tt><tt class="py-name">decompressobj</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L37"></a><tt class="py-lineno">37</tt> <tt class="py-line"> </tt>
+<a name="ZlibDecompressor.__call__"></a><div id="ZlibDecompressor.__call__-def"><a name="L38"></a><tt class="py-lineno">38</tt> <a class="py-toggle" href="#" id="ZlibDecompressor.__call__-toggle" onclick="return toggle('ZlibDecompressor.__call__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.compress.ZlibDecompressor-class.html#__call__">__call__</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="ZlibDecompressor.__call__-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="ZlibDecompressor.__call__-expanded"><a name="L39"></a><tt class="py-lineno">39</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">z</tt><tt class="py-op">.</tt><tt class="py-name">decompress</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L40"></a><tt class="py-lineno">40</tt> <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<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 Jul 6 18:30:34 2008
+ </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.compress.ZlibCompressor-class.html b/docs/paramiko.compress.ZlibCompressor-class.html
new file mode 100644
index 0000000..a908778
--- /dev/null
+++ b/docs/paramiko.compress.ZlibCompressor-class.html
@@ -0,0 +1,219 @@
+<?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.compress.ZlibCompressor</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.compress-module.html" onclick="show_private();">Module&nbsp;compress</a> ::
+ Class&nbsp;ZlibCompressor
+ </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.compress.ZlibCompressor-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class ZlibCompressor</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.compress-pysrc.html#ZlibCompressor">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+object --+
+ |
+ <strong class="uidshort">ZlibCompressor</strong>
+</pre>
+
+<hr />
+<!-- ==================== 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.compress.ZlibCompressor-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</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.compress-pysrc.html#ZlibCompressor.__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 class="summary-sig-arg">data</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.compress-pysrc.html#ZlibCompressor.__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>__getattribute__</code>,
+ <code>__hash__</code>,
+ <code>__new__</code>,
+ <code>__reduce__</code>,
+ <code>__reduce_ex__</code>,
+ <code>__repr__</code>,
+ <code>__setattr__</code>,
+ <code>__str__</code>
+ </p>
+ </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>
+ <br /><em class="fname">(Constructor)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.compress-pysrc.html#ZlibCompressor.__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 Jul 6 18:30:30 2008
+ </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.compress.ZlibDecompressor-class.html b/docs/paramiko.compress.ZlibDecompressor-class.html
new file mode 100644
index 0000000..2b17b39
--- /dev/null
+++ b/docs/paramiko.compress.ZlibDecompressor-class.html
@@ -0,0 +1,219 @@
+<?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.compress.ZlibDecompressor</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.compress-module.html" onclick="show_private();">Module&nbsp;compress</a> ::
+ Class&nbsp;ZlibDecompressor
+ </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.compress.ZlibDecompressor-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class ZlibDecompressor</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.compress-pysrc.html#ZlibDecompressor">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+object --+
+ |
+ <strong class="uidshort">ZlibDecompressor</strong>
+</pre>
+
+<hr />
+<!-- ==================== 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.compress.ZlibDecompressor-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</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.compress-pysrc.html#ZlibDecompressor.__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 class="summary-sig-arg">data</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.compress-pysrc.html#ZlibDecompressor.__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>__getattribute__</code>,
+ <code>__hash__</code>,
+ <code>__new__</code>,
+ <code>__reduce__</code>,
+ <code>__reduce_ex__</code>,
+ <code>__repr__</code>,
+ <code>__setattr__</code>,
+ <code>__str__</code>
+ </p>
+ </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>
+ <br /><em class="fname">(Constructor)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.compress-pysrc.html#ZlibDecompressor.__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 Jul 6 18:30:30 2008
+ </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.config-module.html b/docs/paramiko.config-module.html
new file mode 100644
index 0000000..36e5820
--- /dev/null
+++ b/docs/paramiko.config-module.html
@@ -0,0 +1,105 @@
+<?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.config</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> ::
+ Module&nbsp;config
+ </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.config-module.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module config</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.config-pysrc.html">source&nbsp;code</a></span></p>
+<p><a href="paramiko.SSHConfig-class.html"
+ class="link">SSHConfig</a>.</p>
+
+<!-- ==================== 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 Jul 6 18:30:26 2008
+ </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.config-pysrc.html b/docs/paramiko.config-pysrc.html
new file mode 100644
index 0000000..d832929
--- /dev/null
+++ b/docs/paramiko.config-pysrc.html
@@ -0,0 +1,214 @@
+<?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.config</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> ::
+ Module&nbsp;config
+ </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.config-pysrc.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</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="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>
+<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">import</tt> <tt class="py-name">fnmatch</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>
+<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="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="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="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>
+<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="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="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>
+<a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line"> <tt class="py-keyword">continue</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-string">'='</tt> <tt class="py-keyword">in</tt> <tt class="py-name">line</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">key</tt><tt class="py-op">,</tt> <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">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="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="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>
+<a name="L64"></a><tt class="py-lineno"> 64</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">'Unparsable line: %r'</tt> <tt class="py-op">%</tt> <tt class="py-name">line</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">key</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">i</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="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">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<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 Jul 6 18:30:32 2008
+ </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.dsskey-module.html b/docs/paramiko.dsskey-module.html
new file mode 100644
index 0000000..60963b7
--- /dev/null
+++ b/docs/paramiko.dsskey-module.html
@@ -0,0 +1,524 @@
+<?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.dsskey</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> ::
+ Module&nbsp;dsskey
+ </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.dsskey-module.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module dsskey</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.dsskey-pysrc.html">source&nbsp;code</a></span></p>
+<p><a href="paramiko.DSSKey-class.html" class="link">DSSKey</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="AUTH_FAILED"></a><span class="summary-name">AUTH_FAILED</span> = <code title="2">2</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_PARTIALLY_SUCCESSFUL"></a><span class="summary-name">AUTH_PARTIALLY_SUCCESSFUL</span> = <code title="1">1</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_SUCCESSFUL"></a><span class="summary-name">AUTH_SUCCESSFUL</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 href="paramiko.dsskey-module.html#CONNECTION_FAILED_CODE" class="summary-name">CONNECTION_FAILED_CODE</a> = <code title="{1: 'Administratively prohibited',
+ 2: 'Connect failed',
+ 3: 'Unknown channel type',
+ 4: 'Resource shortage'}"><code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Administratively prohibited</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-op">:</code><code class="variable-ellipsis">...</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="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="DEBUG"></a><span class="summary-name">DEBUG</span> = <code title="10">10</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="DISCONNECT_AUTH_CANCELLED_BY_USER"></a><span class="summary-name">DISCONNECT_AUTH_CANCELLED_BY_USER</span> = <code title="13">13</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="DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE"></a><span class="summary-name">DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE</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="DISCONNECT_SERVICE_NOT_AVAILABLE"></a><span class="summary-name">DISCONNECT_SERVICE_NOT_AVAILABLE</span> = <code title="7">7</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="ERROR"></a><span class="summary-name">ERROR</span> = <code title="40">40</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="INFO"></a><span class="summary-name">INFO</span> = <code title="20">20</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="MSG_CHANNEL_CLOSE"></a><span class="summary-name">MSG_CHANNEL_CLOSE</span> = <code title="97">97</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="MSG_CHANNEL_DATA"></a><span class="summary-name">MSG_CHANNEL_DATA</span> = <code title="94">94</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="MSG_CHANNEL_EOF"></a><span class="summary-name">MSG_CHANNEL_EOF</span> = <code title="96">96</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="MSG_CHANNEL_EXTENDED_DATA"></a><span class="summary-name">MSG_CHANNEL_EXTENDED_DATA</span> = <code title="95">95</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="MSG_CHANNEL_FAILURE"></a><span class="summary-name">MSG_CHANNEL_FAILURE</span> = <code title="100">100</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="MSG_CHANNEL_OPEN"></a><span class="summary-name">MSG_CHANNEL_OPEN</span> = <code title="90">90</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="MSG_CHANNEL_OPEN_FAILURE"></a><span class="summary-name">MSG_CHANNEL_OPEN_FAILURE</span> = <code title="92">92</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="MSG_CHANNEL_OPEN_SUCCESS"></a><span class="summary-name">MSG_CHANNEL_OPEN_SUCCESS</span> = <code title="91">91</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="MSG_CHANNEL_REQUEST"></a><span class="summary-name">MSG_CHANNEL_REQUEST</span> = <code title="98">98</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="MSG_CHANNEL_SUCCESS"></a><span class="summary-name">MSG_CHANNEL_SUCCESS</span> = <code title="99">99</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="MSG_CHANNEL_WINDOW_ADJUST"></a><span class="summary-name">MSG_CHANNEL_WINDOW_ADJUST</span> = <code title="93">93</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="MSG_DEBUG"></a><span class="summary-name">MSG_DEBUG</span> = <code title="4">4</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="MSG_DISCONNECT"></a><span class="summary-name">MSG_DISCONNECT</span> = <code title="1">1</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="MSG_GLOBAL_REQUEST"></a><span class="summary-name">MSG_GLOBAL_REQUEST</span> = <code title="80">80</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="MSG_IGNORE"></a><span class="summary-name">MSG_IGNORE</span> = <code title="2">2</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="MSG_KEXINIT"></a><span class="summary-name">MSG_KEXINIT</span> = <code title="20">20</code>
+ </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.dsskey-module.html#MSG_NAMES" class="summary-name">MSG_NAMES</a> = <code title="{1: 'disconnect',
+ 2: 'ignore',
+ 3: 'unimplemented',
+ 4: 'debug',
+ 5: 'service-request',
+ 6: 'service-accept',
+ 20: 'kexinit',
+ 21: 'newkeys',
+..."><code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">disconnect</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">ignore</code><code class="variable-quote">'</code><code class="variable-op">, </code>3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">unimplemented</code><code class="variable-quote">'</code><code class="variable-op">,</code><code class="variable-ellipsis">...</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="MSG_NEWKEYS"></a><span class="summary-name">MSG_NEWKEYS</span> = <code title="21">21</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="MSG_REQUEST_FAILURE"></a><span class="summary-name">MSG_REQUEST_FAILURE</span> = <code title="82">82</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="MSG_REQUEST_SUCCESS"></a><span class="summary-name">MSG_REQUEST_SUCCESS</span> = <code title="81">81</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="MSG_SERVICE_ACCEPT"></a><span class="summary-name">MSG_SERVICE_ACCEPT</span> = <code title="6">6</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="MSG_SERVICE_REQUEST"></a><span class="summary-name">MSG_SERVICE_REQUEST</span> = <code title="5">5</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="MSG_UNIMPLEMENTED"></a><span class="summary-name">MSG_UNIMPLEMENTED</span> = <code title="3">3</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="MSG_USERAUTH_BANNER"></a><span class="summary-name">MSG_USERAUTH_BANNER</span> = <code title="53">53</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="MSG_USERAUTH_FAILURE"></a><span class="summary-name">MSG_USERAUTH_FAILURE</span> = <code title="51">51</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="MSG_USERAUTH_INFO_REQUEST"></a><span class="summary-name">MSG_USERAUTH_INFO_REQUEST</span> = <code title="60">60</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="MSG_USERAUTH_INFO_RESPONSE"></a><span class="summary-name">MSG_USERAUTH_INFO_RESPONSE</span> = <code title="61">61</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="MSG_USERAUTH_PK_OK"></a><span class="summary-name">MSG_USERAUTH_PK_OK</span> = <code title="60">60</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="MSG_USERAUTH_REQUEST"></a><span class="summary-name">MSG_USERAUTH_REQUEST</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="MSG_USERAUTH_SUCCESS"></a><span class="summary-name">MSG_USERAUTH_SUCCESS</span> = <code title="52">52</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="OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED"></a><span class="summary-name">OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED</span> = <code title="1">1</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="OPEN_FAILED_CONNECT_FAILED"></a><span class="summary-name">OPEN_FAILED_CONNECT_FAILED</span> = <code title="2">2</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="OPEN_FAILED_RESOURCE_SHORTAGE"></a><span class="summary-name">OPEN_FAILED_RESOURCE_SHORTAGE</span> = <code title="4">4</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="OPEN_FAILED_UNKNOWN_CHANNEL_TYPE"></a><span class="summary-name">OPEN_FAILED_UNKNOWN_CHANNEL_TYPE</span> = <code title="3">3</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="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="PY22"></a><span class="summary-name">PY22</span> = <code title="False">False</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="WARNING"></a><span class="summary-name">WARNING</span> = <code title="30">30</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>
+</table>
+<!-- ==================== VARIABLES DETAILS ==================== -->
+<a name="section-VariablesDetails"></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">Variables Details</span></td>
+</tr>
+</table>
+<a name="CONNECTION_FAILED_CODE"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">CONNECTION_FAILED_CODE</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Administratively prohibited</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Connect failed</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Unknown channel type</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Resource shortage</code><code class="variable-quote">'</code><code class="variable-group">}</code>
+</pre></td></tr></table>
+</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="MSG_NAMES"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">MSG_NAMES</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">disconnect</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">ignore</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">unimplemented</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">debug</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 5<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">service-request</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 6<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">service-accept</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 20<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">kexinit</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 21<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">newkeys</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+ </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 Jul 6 18:30:26 2008
+ </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.dsskey-pysrc.html b/docs/paramiko.dsskey-pysrc.html
new file mode 100644
index 0000000..1346b99
--- /dev/null
+++ b/docs/paramiko.dsskey-pysrc.html
@@ -0,0 +1,355 @@
+<?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.dsskey</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> ::
+ Module&nbsp;dsskey
+ </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.dsskey-pysrc.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</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="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>
+<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">Crypto</tt><tt class="py-op">.</tt><tt class="py-name">PublicKey</tt> <tt class="py-keyword">import</tt> <tt class="py-name">DSA</tt> </tt>
+<a name="L24"></a><tt class="py-lineno"> 24</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>
+<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-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="L27"></a><tt class="py-lineno"> 27</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>
+<a name="L28"></a><tt class="py-lineno"> 28</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-4" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-4', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-5" 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-5', 'ssh_exception', 'link-5');">ssh_exception</a></tt> <tt class="py-keyword">import</tt> <tt id="link-6" class="py-name" targets="Class paramiko.SSHException=paramiko.SSHException-class.html"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-6', 'SSHException', 'link-6');">SSHException</a></tt> </tt>
+<a name="L29"></a><tt class="py-lineno"> 29</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-7" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-7', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-8" class="py-name" targets="Module paramiko.message=paramiko.message-module.html"><a title="paramiko.message" class="py-name" href="#" onclick="return doclink('link-8', 'message', 'link-8');">message</a></tt> <tt class="py-keyword">import</tt> <tt id="link-9" class="py-name" targets="Class paramiko.Message=paramiko.Message-class.html"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-9', 'Message', 'link-9');">Message</a></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-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.ber=paramiko.ber-module.html"><a title="paramiko.ber" class="py-name" href="#" onclick="return doclink('link-11', 'ber', 'link-11');">ber</a></tt> <tt class="py-keyword">import</tt> <tt id="link-12" class="py-name" targets="Class paramiko.ber.BER=paramiko.ber.BER-class.html"><a title="paramiko.ber.BER" class="py-name" href="#" onclick="return doclink('link-12', 'BER', 'link-12');">BER</a></tt><tt class="py-op">,</tt> <tt id="link-13" 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-13', 'BERException', 'link-13');">BERException</a></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-14" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-14', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-15" class="py-name" targets="Module paramiko.pkey=paramiko.pkey-module.html"><a title="paramiko.pkey" class="py-name" href="#" onclick="return doclink('link-15', 'pkey', 'link-15');">pkey</a></tt> <tt class="py-keyword">import</tt> <tt id="link-16" class="py-name" targets="Class paramiko.PKey=paramiko.PKey-class.html"><a title="paramiko.PKey" class="py-name" href="#" onclick="return doclink('link-16', 'PKey', 'link-16');">PKey</a></tt> </tt>
+<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="DSSKey"></a><div id="DSSKey-def"><a name="L34"></a><tt class="py-lineno"> 34</tt> <a class="py-toggle" href="#" id="DSSKey-toggle" onclick="return toggle('DSSKey');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.dsskey.DSSKey-class.html">DSSKey</a> <tt class="py-op">(</tt><tt class="py-base-class">PKey</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="DSSKey-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="DSSKey-expanded"><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 class="py-docstring"> Representation of a DSS key which can be used to sign an verify SSH2</tt> </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt> <tt class="py-line"><tt class="py-docstring"> data.</tt> </tt>
+<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>
+<a name="DSSKey.__init__"></a><div id="DSSKey.__init__-def"><a name="L40"></a><tt class="py-lineno"> 40</tt> <a class="py-toggle" href="#" id="DSSKey.__init__-toggle" onclick="return toggle('DSSKey.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.dsskey.DSSKey-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">msg</tt><tt class="py-op">=</tt><tt class="py-name">None</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">filename</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">vals</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">file_obj</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="DSSKey.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="DSSKey.__init__-expanded"><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">p</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</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">None</tt> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</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">None</tt> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</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">None</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 class="py-name">x</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 class="py-keyword">if</tt> <tt class="py-name">file_obj</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="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">_from_private_key</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>
+<a name="L48"></a><tt class="py-lineno"> 48</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L49"></a><tt class="py-lineno"> 49</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="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">_from_private_key_file</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="L51"></a><tt class="py-lineno"> 51</tt> <tt class="py-line"> <tt class="py-keyword">return</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-op">(</tt><tt class="py-name">msg</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-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 class="py-op">:</tt> </tt>
+<a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"> <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt id="link-17" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-17', 'Message', 'link-9');">Message</a></tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</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">vals</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="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">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">vals</tt> </tt>
+<a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">msg</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</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">raise</tt> <tt id="link-18" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-18', 'SSHException', 'link-6');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Key object may not be empty'</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">if</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-19" 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-19', '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-dss'</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">raise</tt> <tt id="link-20" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-20', 'SSHException', 'link-6');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Invalid key'</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">self</tt><tt class="py-op">.</tt><tt class="py-name">p</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-21" 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-21', 'get_mpint', 'link-21');">get_mpint</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">q</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-22" class="py-name"><a title="paramiko.Message.get_mpint" class="py-name" href="#" onclick="return doclink('link-22', 'get_mpint', 'link-21');">get_mpint</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-23" class="py-name"><a title="paramiko.Message.get_mpint" class="py-name" href="#" onclick="return doclink('link-23', 'get_mpint', 'link-21');">get_mpint</a></tt><tt class="py-op">(</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">self</tt><tt class="py-op">.</tt><tt class="py-name">y</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-24" class="py-name"><a title="paramiko.Message.get_mpint" class="py-name" href="#" onclick="return doclink('link-24', 'get_mpint', 'link-21');">get_mpint</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">self</tt><tt class="py-op">.</tt><tt class="py-name">size</tt> <tt class="py-op">=</tt> <tt id="link-25" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-25', 'util', 'link-3');">util</a></tt><tt class="py-op">.</tt><tt id="link-26" 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-26', '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><a name="L66"></a><tt class="py-lineno"> 66</tt> <tt class="py-line"> </tt>
+<a name="DSSKey.__str__"></a><div id="DSSKey.__str__-def"><a name="L67"></a><tt class="py-lineno"> 67</tt> <a class="py-toggle" href="#" id="DSSKey.__str__-toggle" onclick="return toggle('DSSKey.__str__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.dsskey.DSSKey-class.html#__str__">__str__</a><tt 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.__str__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="DSSKey.__str__-expanded"><a name="L68"></a><tt class="py-lineno"> 68</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-9');">Message</a></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-name">m</tt><tt class="py-op">.</tt><tt id="link-28" 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-28', '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="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-29" 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-29', 'add_mpint', 'link-29');">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="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-30" class="py-name"><a title="paramiko.Message.add_mpint" class="py-name" href="#" onclick="return doclink('link-30', 'add_mpint', 'link-29');">add_mpint</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>
+<a name="L72"></a><tt class="py-lineno"> 72</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-31" class="py-name"><a title="paramiko.Message.add_mpint" class="py-name" href="#" onclick="return doclink('link-31', 'add_mpint', 'link-29');">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="L73"></a><tt class="py-lineno"> 73</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.add_mpint" class="py-name" href="#" onclick="return doclink('link-32', 'add_mpint', 'link-29');">add_mpint</a></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="L74"></a><tt class="py-lineno"> 74</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">m</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"> </tt>
+<a name="DSSKey.__hash__"></a><div id="DSSKey.__hash__-def"><a name="L76"></a><tt class="py-lineno"> 76</tt> <a class="py-toggle" href="#" id="DSSKey.__hash__-toggle" onclick="return toggle('DSSKey.__hash__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.dsskey.DSSKey-class.html#__hash__">__hash__</a><tt 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.__hash__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="DSSKey.__hash__-expanded"><a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"> <tt class="py-name">h</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 id="link-33" 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-33', 'get_name', 'link-33');">get_name</a></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">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">p</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">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">q</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">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>
+</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>
+</div><a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"> </tt>
+<a name="DSSKey.get_bits"></a><div id="DSSKey.get_bits-def"><a name="L88"></a><tt class="py-lineno"> 88</tt> <a class="py-toggle" href="#" id="DSSKey.get_bits-toggle" onclick="return toggle('DSSKey.get_bits');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.dsskey.DSSKey-class.html#get_bits">get_bits</a><tt 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_bits-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="DSSKey.get_bits-expanded"><a name="L89"></a><tt class="py-lineno"> 89</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">size</tt> </tt>
+</div><a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"> </tt>
+<a name="DSSKey.can_sign"></a><div id="DSSKey.can_sign-def"><a name="L91"></a><tt class="py-lineno"> 91</tt> <a class="py-toggle" href="#" id="DSSKey.can_sign-toggle" onclick="return toggle('DSSKey.can_sign');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.dsskey.DSSKey-class.html#can_sign">can_sign</a><tt 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.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>
+<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="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="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="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="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="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="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="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="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="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="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="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>
+</div><div id="DSSKey.write_private_key_file-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="DSSKey.write_private_key_file-expanded"><a name="L146"></a><tt class="py-lineno">146</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_write_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">self</tt><tt class="py-op">.</tt><tt class="py-name">_encode_key</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">password</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L147"></a><tt class="py-lineno">147</tt> <tt class="py-line"> </tt>
+<a name="DSSKey.write_private_key"></a><div id="DSSKey.write_private_key-def"><a name="L148"></a><tt class="py-lineno">148</tt> <a class="py-toggle" href="#" id="DSSKey.write_private_key-toggle" onclick="return toggle('DSSKey.write_private_key');">-</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">write_private_key</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-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="DSSKey.write_private_key-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="DSSKey.write_private_key-expanded"><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">_write_private_key</tt><tt class="py-op">(</tt><tt class="py-string">'DSA'</tt><tt class="py-op">,</tt> <tt class="py-name">file_obj</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_encode_key</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">password</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L150"></a><tt class="py-lineno">150</tt> <tt class="py-line"> </tt>
+<a name="DSSKey.generate"></a><div id="DSSKey.generate-def"><a name="L151"></a><tt class="py-lineno">151</tt> <a class="py-toggle" href="#" id="DSSKey.generate-toggle" onclick="return toggle('DSSKey.generate');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.dsskey.DSSKey-class.html#generate">generate</a><tt class="py-op">(</tt><tt class="py-param">bits</tt><tt class="py-op">=</tt><tt class="py-number">1024</tt><tt class="py-op">,</tt> <tt class="py-param">progress_func</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="DSSKey.generate-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="DSSKey.generate-expanded"><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"> Generate a new private DSS key. This factory function can be used to</tt> </tt>
+<a name="L154"></a><tt class="py-lineno">154</tt> <tt class="py-line"><tt class="py-docstring"> generate a new host key or authentication key.</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 bits: number of bits the generated key should be.</tt> </tt>
+<a name="L157"></a><tt class="py-lineno">157</tt> <tt class="py-line"><tt class="py-docstring"> @type bits: int</tt> </tt>
+<a name="L158"></a><tt class="py-lineno">158</tt> <tt class="py-line"><tt class="py-docstring"> @param progress_func: an optional function to call at key points in</tt> </tt>
+<a name="L159"></a><tt class="py-lineno">159</tt> <tt class="py-line"><tt class="py-docstring"> key generation (used by C{pyCrypto.PublicKey}).</tt> </tt>
+<a name="L160"></a><tt class="py-lineno">160</tt> <tt class="py-line"><tt class="py-docstring"> @type progress_func: function</tt> </tt>
+<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
+paramiko.channel.randpool
+paramiko.client.randpool
+paramiko.common.randpool
+paramiko.dsskey.randpool
+paramiko.hostkeys.randpool
+paramiko.kex_gex.randpool
+paramiko.kex_group1.randpool
+paramiko.packet.randpool
+paramiko.pkey.randpool
+paramiko.rsakey.randpool
+paramiko.server.randpool
+paramiko.sftp.randpool
+paramiko.sftp_attr.randpool
+paramiko.sftp_client.randpool
+paramiko.sftp_file.randpool
+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.channel.randpool
+paramiko.client.randpool
+paramiko.common.randpool
+paramiko.dsskey.randpool
+paramiko.hostkeys.randpool
+paramiko.kex_gex.randpool
+paramiko.kex_group1.randpool
+paramiko.packet.randpool
+paramiko.pkey.randpool
+paramiko.rsakey.randpool
+paramiko.server.randpool
+paramiko.sftp.randpool
+paramiko.sftp_attr.randpool
+paramiko.sftp_client.randpool
+paramiko.sftp_file.randpool
+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>
+<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>
+<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="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>
+<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">_decode_key</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L178"></a><tt class="py-lineno">178</tt> <tt class="py-line"> </tt>
+<a name="DSSKey._from_private_key"></a><div id="DSSKey._from_private_key-def"><a name="L179"></a><tt class="py-lineno">179</tt> <a class="py-toggle" href="#" id="DSSKey._from_private_key-toggle" onclick="return toggle('DSSKey._from_private_key');">-</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">_from_private_key</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-param">password</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="DSSKey._from_private_key-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="DSSKey._from_private_key-expanded"><a name="L180"></a><tt class="py-lineno">180</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-string">'DSA'</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>
+<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">_decode_key</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
+</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="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="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>
+</div></div><a name="L198"></a><tt class="py-lineno">198</tt> <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<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 Jul 6 18:30:34 2008
+ </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.file-module.html b/docs/paramiko.file-module.html
new file mode 100644
index 0000000..cd4f9e7
--- /dev/null
+++ b/docs/paramiko.file-module.html
@@ -0,0 +1,104 @@
+<?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.file</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> ::
+ Module&nbsp;file
+ </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.file-module.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<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>
+
+<!-- ==================== 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 Jul 6 18:30:26 2008
+ </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.file-pysrc.html b/docs/paramiko.file-pysrc.html
new file mode 100644
index 0000000..0679425
--- /dev/null
+++ b/docs/paramiko.file-pysrc.html
@@ -0,0 +1,579 @@
+<?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.file</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> ::
+ Module&nbsp;file
+ </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.file-pysrc.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</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="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>
+<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">cStringIO</tt> <tt class="py-keyword">import</tt> <tt class="py-name">StringIO</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>
+<a name="BufferedFile"></a><div id="BufferedFile-def"><a name="L26"></a><tt class="py-lineno"> 26</tt> <a class="py-toggle" href="#" id="BufferedFile-toggle" onclick="return toggle('BufferedFile');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.file.BufferedFile-class.html">BufferedFile</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="BufferedFile-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="BufferedFile-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"> Reusable base class to implement python-style file buffering around a</tt> </tt>
+<a name="L29"></a><tt class="py-lineno"> 29</tt> <tt class="py-line"><tt class="py-docstring"> simpler stream.</tt> </tt>
+<a name="L30"></a><tt class="py-lineno"> 30</tt> <tt class="py-line"><tt class="py-docstring"> """</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 id="link-0" class="py-name" targets="Variable paramiko.BufferedFile._DEFAULT_BUFSIZE=paramiko.BufferedFile-class.html#_DEFAULT_BUFSIZE"><a title="paramiko.BufferedFile._DEFAULT_BUFSIZE" class="py-name" href="#" onclick="return doclink('link-0', '_DEFAULT_BUFSIZE', 'link-0');">_DEFAULT_BUFSIZE</a></tt> <tt class="py-op">=</tt> <tt class="py-number">8192</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 id="link-1" class="py-name" targets="Variable paramiko.BufferedFile.SEEK_SET=paramiko.BufferedFile-class.html#SEEK_SET"><a title="paramiko.BufferedFile.SEEK_SET" class="py-name" href="#" onclick="return doclink('link-1', 'SEEK_SET', 'link-1');">SEEK_SET</a></tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L35"></a><tt class="py-lineno"> 35</tt> <tt class="py-line"> <tt id="link-2" class="py-name" targets="Variable paramiko.BufferedFile.SEEK_CUR=paramiko.BufferedFile-class.html#SEEK_CUR"><a title="paramiko.BufferedFile.SEEK_CUR" class="py-name" href="#" onclick="return doclink('link-2', 'SEEK_CUR', 'link-2');">SEEK_CUR</a></tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line"> <tt id="link-3" class="py-name" targets="Variable paramiko.BufferedFile.SEEK_END=paramiko.BufferedFile-class.html#SEEK_END"><a title="paramiko.BufferedFile.SEEK_END" class="py-name" href="#" onclick="return doclink('link-3', 'SEEK_END', 'link-3');">SEEK_END</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 id="link-4" class="py-name" targets="Variable paramiko.BufferedFile.FLAG_READ=paramiko.BufferedFile-class.html#FLAG_READ"><a title="paramiko.BufferedFile.FLAG_READ" class="py-name" href="#" onclick="return doclink('link-4', 'FLAG_READ', 'link-4');">FLAG_READ</a></tt> <tt class="py-op">=</tt> <tt class="py-number">0x1</tt> </tt>
+<a name="L39"></a><tt class="py-lineno"> 39</tt> <tt class="py-line"> <tt id="link-5" class="py-name" targets="Variable paramiko.BufferedFile.FLAG_WRITE=paramiko.BufferedFile-class.html#FLAG_WRITE"><a title="paramiko.BufferedFile.FLAG_WRITE" class="py-name" href="#" onclick="return doclink('link-5', 'FLAG_WRITE', 'link-5');">FLAG_WRITE</a></tt> <tt class="py-op">=</tt> <tt class="py-number">0x2</tt> </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</tt> <tt class="py-line"> <tt id="link-6" class="py-name" targets="Variable paramiko.BufferedFile.FLAG_APPEND=paramiko.BufferedFile-class.html#FLAG_APPEND"><a title="paramiko.BufferedFile.FLAG_APPEND" class="py-name" href="#" onclick="return doclink('link-6', 'FLAG_APPEND', 'link-6');">FLAG_APPEND</a></tt> <tt class="py-op">=</tt> <tt class="py-number">0x4</tt> </tt>
+<a name="L41"></a><tt class="py-lineno"> 41</tt> <tt class="py-line"> <tt id="link-7" class="py-name" targets="Variable paramiko.BufferedFile.FLAG_BINARY=paramiko.BufferedFile-class.html#FLAG_BINARY"><a title="paramiko.BufferedFile.FLAG_BINARY" class="py-name" href="#" onclick="return doclink('link-7', 'FLAG_BINARY', 'link-7');">FLAG_BINARY</a></tt> <tt class="py-op">=</tt> <tt class="py-number">0x10</tt> </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt> <tt class="py-line"> <tt id="link-8" class="py-name" targets="Variable paramiko.BufferedFile.FLAG_BUFFERED=paramiko.BufferedFile-class.html#FLAG_BUFFERED"><a title="paramiko.BufferedFile.FLAG_BUFFERED" class="py-name" href="#" onclick="return doclink('link-8', 'FLAG_BUFFERED', 'link-8');">FLAG_BUFFERED</a></tt> <tt class="py-op">=</tt> <tt class="py-number">0x20</tt> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt> <tt class="py-line"> <tt id="link-9" class="py-name" targets="Variable paramiko.BufferedFile.FLAG_LINE_BUFFERED=paramiko.BufferedFile-class.html#FLAG_LINE_BUFFERED"><a title="paramiko.BufferedFile.FLAG_LINE_BUFFERED" class="py-name" href="#" onclick="return doclink('link-9', 'FLAG_LINE_BUFFERED', 'link-9');">FLAG_LINE_BUFFERED</a></tt> <tt class="py-op">=</tt> <tt class="py-number">0x40</tt> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"> <tt id="link-10" class="py-name" targets="Variable paramiko.BufferedFile.FLAG_UNIVERSAL_NEWLINE=paramiko.BufferedFile-class.html#FLAG_UNIVERSAL_NEWLINE"><a title="paramiko.BufferedFile.FLAG_UNIVERSAL_NEWLINE" class="py-name" href="#" onclick="return doclink('link-10', 'FLAG_UNIVERSAL_NEWLINE', 'link-10');">FLAG_UNIVERSAL_NEWLINE</a></tt> <tt class="py-op">=</tt> <tt class="py-number">0x80</tt> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt> <tt class="py-line"> </tt>
+<a name="BufferedFile.__init__"></a><div id="BufferedFile.__init__-def"><a name="L46"></a><tt class="py-lineno"> 46</tt> <a class="py-toggle" href="#" id="BufferedFile.__init__-toggle" onclick="return toggle('BufferedFile.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.file.BufferedFile-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="BufferedFile.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BufferedFile.__init__-expanded"><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">newlines</tt> <tt class="py-op">=</tt> <tt class="py-name">None</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">_flags</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<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">_bufsize</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-11" class="py-name"><a title="paramiko.BufferedFile._DEFAULT_BUFSIZE" class="py-name" href="#" onclick="return doclink('link-11', '_DEFAULT_BUFSIZE', 'link-0');">_DEFAULT_BUFSIZE</a></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">_wbuffer</tt> <tt class="py-op">=</tt> <tt class="py-name">StringIO</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">_rbuffer</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
+<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="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>
+</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
+paramiko.BufferedFile.close
+paramiko.Channel.close
+paramiko.SFTPClient.close
+paramiko.SFTPFile.close
+paramiko.SFTPHandle.close
+paramiko.SSHClient.close
+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-12', 'close', 'link-12');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"> </tt>
+<a name="BufferedFile.__iter__"></a><div id="BufferedFile.__iter__-def"><a name="L64"></a><tt class="py-lineno"> 64</tt> <a class="py-toggle" href="#" id="BufferedFile.__iter__-toggle" onclick="return toggle('BufferedFile.__iter__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.file.BufferedFile-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="BufferedFile.__iter__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BufferedFile.__iter__-expanded"><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"> Returns an iterator that can be used to iterate over the lines in this</tt> </tt>
+<a name="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line"><tt class="py-docstring"> file. This iterator happens to return the file itself, since a file is</tt> </tt>
+<a name="L68"></a><tt class="py-lineno"> 68</tt> <tt class="py-line"><tt class="py-docstring"> its own iterator.</tt> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line"><tt class="py-docstring"> @raise ValueError: if the file is closed.</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"> @return: an interator.</tt> </tt>
+<a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: iterator</tt> </tt>
+<a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"><tt class="py-docstring"> """</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_closed</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">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt><tt class="py-string">'I/O operation on closed file'</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">return</tt> <tt class="py-name">self</tt> </tt>
+</div><a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"> </tt>
+<a name="BufferedFile.close"></a><div id="BufferedFile.close-def"><a name="L79"></a><tt class="py-lineno"> 79</tt> <a class="py-toggle" href="#" id="BufferedFile.close-toggle" onclick="return toggle('BufferedFile.close');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.file.BufferedFile-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="BufferedFile.close-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BufferedFile.close-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"> Close the file. Future read and write operations will fail.</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-name">self</tt><tt class="py-op">.</tt><tt id="link-13" class="py-name" targets="Method paramiko.BufferedFile.flush()=paramiko.BufferedFile-class.html#flush"><a title="paramiko.BufferedFile.flush" class="py-name" href="#" onclick="return doclink('link-13', 'flush', 'link-13');">flush</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 class="py-name">_closed</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+</div><a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"> </tt>
+<a name="BufferedFile.flush"></a><div id="BufferedFile.flush-def"><a name="L86"></a><tt class="py-lineno"> 86</tt> <a class="py-toggle" href="#" id="BufferedFile.flush-toggle" onclick="return toggle('BufferedFile.flush');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.file.BufferedFile-class.html#flush">flush</a><tt 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.flush-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BufferedFile.flush-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"> Write out any data in the write buffer. This may do nothing if write</tt> </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"><tt class="py-docstring"> buffering is not turned on.</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-name">self</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">_wbuffer</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_wbuffer</tt> <tt class="py-op">=</tt> <tt class="py-name">StringIO</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-keyword">return</tt> </tt>
+</div><a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"> </tt>
+<a name="BufferedFile.next"></a><div id="BufferedFile.next-def"><a name="L95"></a><tt class="py-lineno"> 95</tt> <a class="py-toggle" href="#" id="BufferedFile.next-toggle" onclick="return toggle('BufferedFile.next');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.file.BufferedFile-class.html#next">next</a><tt 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.next-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BufferedFile.next-expanded"><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"> Returns the next line from the input, or raises L{StopIteration} when</tt> </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"><tt class="py-docstring"> EOF is hit. Unlike python file objects, it's okay to mix calls to</tt> </tt>
+<a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"><tt class="py-docstring"> C{next} and L{readline}.</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-docstring"> @raise StopIteration: when the end of the file is reached.</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-docstring"> @return: a line read from the file.</tt> </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: str</tt> </tt>
+<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-name">line</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-14" 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-14', 'readline', 'link-14');">readline</a></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">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">line</tt><tt class="py-op">:</tt> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">StopIteration</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">line</tt> </tt>
+</div><a name="L110"></a><tt class="py-lineno">110</tt> <tt class="py-line"> </tt>
+<a name="BufferedFile.read"></a><div id="BufferedFile.read-def"><a name="L111"></a><tt class="py-lineno">111</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-name">None</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="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"> Read at most C{size} bytes from the file (less if we hit the end of the</tt> </tt>
+<a name="L114"></a><tt class="py-lineno">114</tt> <tt class="py-line"><tt class="py-docstring"> file first). If the C{size} argument is negative or omitted, read all</tt> </tt>
+<a name="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"><tt class="py-docstring"> the remaining data in the file.</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-docstring"> @param size: maximum number of bytes to read</tt> </tt>
+<a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"><tt class="py-docstring"> @type size: int</tt> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"><tt class="py-docstring"> @return: data read from the file, or an empty string if EOF was</tt> </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt> <tt class="py-line"><tt class="py-docstring"> encountered immediately</tt> </tt>
+<a name="L121"></a><tt class="py-lineno">121</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: str</tt> </tt>
+<a name="L122"></a><tt class="py-lineno">122</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt> <tt 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="L124"></a><tt class="py-lineno">124</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="L125"></a><tt class="py-lineno">125</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-15" class="py-name"><a title="paramiko.BufferedFile.FLAG_READ" class="py-name" href="#" onclick="return doclink('link-15', 'FLAG_READ', 'link-4');">FLAG_READ</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-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="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>
+<a name="L133"></a><tt class="py-lineno">133</tt> <tt class="py-line"> <tt class="py-keyword">try</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">new_data</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_read</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-16" class="py-name"><a title="paramiko.BufferedFile._DEFAULT_BUFSIZE" class="py-name" href="#" onclick="return doclink('link-16', '_DEFAULT_BUFSIZE', 'link-0');">_DEFAULT_BUFSIZE</a></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">except</tt> <tt class="py-name">EOFError</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">new_data</tt> <tt class="py-op">=</tt> <tt class="py-name">None</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-op">(</tt><tt class="py-name">new_data</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">len</tt><tt class="py-op">(</tt><tt class="py-name">new_data</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="L138"></a><tt class="py-lineno">138</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
+<a name="L139"></a><tt class="py-lineno">139</tt> <tt class="py-line"> <tt class="py-name">result</tt> <tt class="py-op">+=</tt> <tt class="py-name">new_data</tt> </tt>
+<a name="L140"></a><tt class="py-lineno">140</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="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">_pos</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="L142"></a><tt class="py-lineno">142</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">result</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">size</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">_rbuffer</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-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 class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-name">size</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">self</tt><tt class="py-op">.</tt><tt class="py-name">_rbuffer</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-name">size</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">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="L147"></a><tt class="py-lineno">147</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">result</tt> </tt>
+<a name="L148"></a><tt class="py-lineno">148</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">self</tt><tt class="py-op">.</tt><tt class="py-name">_rbuffer</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;</tt> <tt class="py-name">size</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">read_size</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">self</tt><tt class="py-op">.</tt><tt class="py-name">_rbuffer</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">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-17" class="py-name"><a title="paramiko.BufferedFile.FLAG_BUFFERED" class="py-name" href="#" onclick="return doclink('link-17', 'FLAG_BUFFERED', 'link-8');">FLAG_BUFFERED</a></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">read_size</tt> <tt class="py-op">=</tt> <tt class="py-name">max</tt><tt class="py-op">(</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">read_size</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">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L153"></a><tt class="py-lineno">153</tt> <tt class="py-line"> <tt class="py-name">new_data</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_read</tt><tt class="py-op">(</tt><tt class="py-name">read_size</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">except</tt> <tt class="py-name">EOFError</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">new_data</tt> <tt class="py-op">=</tt> <tt class="py-name">None</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-op">(</tt><tt class="py-name">new_data</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">len</tt><tt class="py-op">(</tt><tt class="py-name">new_data</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="L157"></a><tt class="py-lineno">157</tt> <tt class="py-line"> <tt class="py-keyword">break</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">_rbuffer</tt> <tt class="py-op">+=</tt> <tt class="py-name">new_data</tt> </tt>
+<a name="L159"></a><tt class="py-lineno">159</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="L160"></a><tt class="py-lineno">160</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 class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-name">size</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">_rbuffer</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-name">size</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-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="L163"></a><tt class="py-lineno">163</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">result</tt> </tt>
+</div><a name="L164"></a><tt class="py-lineno">164</tt> <tt class="py-line"> </tt>
+<a name="BufferedFile.readline"></a><div id="BufferedFile.readline-def"><a name="L165"></a><tt class="py-lineno">165</tt> <a class="py-toggle" href="#" id="BufferedFile.readline-toggle" onclick="return toggle('BufferedFile.readline');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.file.BufferedFile-class.html#readline">readline</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-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="BufferedFile.readline-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BufferedFile.readline-expanded"><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"> Read one entire line from the file. A trailing newline character is</tt> </tt>
+<a name="L168"></a><tt class="py-lineno">168</tt> <tt class="py-line"><tt class="py-docstring"> kept in the string (but may be absent when a file ends with an</tt> </tt>
+<a name="L169"></a><tt class="py-lineno">169</tt> <tt class="py-line"><tt class="py-docstring"> incomplete line). If the size argument is present and non-negative, it</tt> </tt>
+<a name="L170"></a><tt class="py-lineno">170</tt> <tt class="py-line"><tt class="py-docstring"> is a maximum byte count (including the trailing newline) and an</tt> </tt>
+<a name="L171"></a><tt class="py-lineno">171</tt> <tt class="py-line"><tt class="py-docstring"> incomplete line may be returned. An empty string is returned only when</tt> </tt>
+<a name="L172"></a><tt class="py-lineno">172</tt> <tt class="py-line"><tt class="py-docstring"> EOF is encountered immediately.</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-docstring"> @note: Unlike stdio's C{fgets()}, the returned string contains null</tt> </tt>
+<a name="L175"></a><tt class="py-lineno">175</tt> <tt class="py-line"><tt class="py-docstring"> characters (C{'\\0'}) if they occurred in the input.</tt> </tt>
+<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"> @param size: maximum length of returned string.</tt> </tt>
+<a name="L178"></a><tt class="py-lineno">178</tt> <tt class="py-line"><tt class="py-docstring"> @type size: int</tt> </tt>
+<a name="L179"></a><tt class="py-lineno">179</tt> <tt class="py-line"><tt class="py-docstring"> @return: next line of the file, or an empty string if the end of the</tt> </tt>
+<a name="L180"></a><tt class="py-lineno">180</tt> <tt class="py-line"><tt class="py-docstring"> file has been reached.</tt> </tt>
+<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="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>
+<a name="L188"></a><tt class="py-lineno">188</tt> <tt class="py-line"> <tt class="py-name">line</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="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="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="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="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>
+<a name="L208"></a><tt class="py-lineno">208</tt> <tt class="py-line"> <tt class="py-name">n</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">line</tt><tt class="py-op">)</tt> </tt>
+<a name="L209"></a><tt class="py-lineno">209</tt> <tt class="py-line"> <tt class="py-keyword">else</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">n</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_bufsize</tt> </tt>
+<a name="L211"></a><tt class="py-lineno">211</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-string">'\n'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">line</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">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-20" class="py-name"><a title="paramiko.BufferedFile.FLAG_UNIVERSAL_NEWLINE" class="py-name" href="#" onclick="return doclink('link-20', '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-string">'\r'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">line</tt><tt class="py-op">)</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-keyword">break</tt> </tt>
+<a name="L213"></a><tt class="py-lineno">213</tt> <tt class="py-line"> <tt class="py-keyword">try</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">new_data</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_read</tt><tt class="py-op">(</tt><tt class="py-name">n</tt><tt class="py-op">)</tt> </tt>
+<a name="L215"></a><tt class="py-lineno">215</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="L216"></a><tt class="py-lineno">216</tt> <tt class="py-line"> <tt class="py-name">new_data</tt> <tt class="py-op">=</tt> <tt class="py-name">None</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-op">(</tt><tt class="py-name">new_data</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">len</tt><tt class="py-op">(</tt><tt class="py-name">new_data</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="L218"></a><tt class="py-lineno">218</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="L219"></a><tt class="py-lineno">219</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="L220"></a><tt class="py-lineno">220</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">line</tt> </tt>
+<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="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>
+<a name="L228"></a><tt class="py-lineno">228</tt> <tt class="py-line"> <tt class="py-name">pos</tt> <tt class="py-op">=</tt> <tt class="py-name">rpos</tt> </tt>
+<a name="L229"></a><tt class="py-lineno">229</tt> <tt class="py-line"> <tt class="py-name">xpos</tt> <tt class="py-op">=</tt> <tt class="py-name">pos</tt> <tt class="py-op">+</tt> <tt class="py-number">1</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-op">(</tt><tt class="py-name">line</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">'\r'</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">xpos</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-op">(</tt><tt class="py-name">line</tt><tt class="py-op">[</tt><tt class="py-name">xpos</tt><tt class="py-op">]</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="L231"></a><tt class="py-lineno">231</tt> <tt class="py-line"> <tt class="py-name">xpos</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</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">_rbuffer</tt> <tt class="py-op">=</tt> <tt class="py-name">line</tt><tt class="py-op">[</tt><tt class="py-name">xpos</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">lf</tt> <tt class="py-op">=</tt> <tt class="py-name">line</tt><tt class="py-op">[</tt><tt class="py-name">pos</tt><tt class="py-op">:</tt><tt class="py-name">xpos</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">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="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>
+<a name="L242"></a><tt class="py-lineno">242</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">line</tt> </tt>
+</div><a name="L243"></a><tt class="py-lineno">243</tt> <tt class="py-line"> </tt>
+<a name="BufferedFile.readlines"></a><div id="BufferedFile.readlines-def"><a name="L244"></a><tt class="py-lineno">244</tt> <a class="py-toggle" href="#" id="BufferedFile.readlines-toggle" onclick="return toggle('BufferedFile.readlines');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.file.BufferedFile-class.html#readlines">readlines</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">sizehint</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="BufferedFile.readlines-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BufferedFile.readlines-expanded"><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"> Read all remaining lines using L{readline} and return them as a list.</tt> </tt>
+<a name="L247"></a><tt class="py-lineno">247</tt> <tt class="py-line"><tt class="py-docstring"> If the optional C{sizehint} argument is present, instead of reading up</tt> </tt>
+<a name="L248"></a><tt class="py-lineno">248</tt> <tt class="py-line"><tt class="py-docstring"> to EOF, whole lines totalling approximately sizehint bytes (possibly</tt> </tt>
+<a name="L249"></a><tt class="py-lineno">249</tt> <tt class="py-line"><tt class="py-docstring"> after rounding up to an internal buffer size) are read.</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"> @param sizehint: desired maximum number of bytes to read.</tt> </tt>
+<a name="L252"></a><tt class="py-lineno">252</tt> <tt class="py-line"><tt class="py-docstring"> @type sizehint: int</tt> </tt>
+<a name="L253"></a><tt class="py-lineno">253</tt> <tt class="py-line"><tt class="py-docstring"> @return: list of lines read from the file.</tt> </tt>
+<a name="L254"></a><tt class="py-lineno">254</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: list</tt> </tt>
+<a name="L255"></a><tt class="py-lineno">255</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L256"></a><tt class="py-lineno">256</tt> <tt class="py-line"> <tt class="py-name">lines</tt> <tt class="py-op">=</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">bytes</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L258"></a><tt class="py-lineno">258</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="L259"></a><tt class="py-lineno">259</tt> <tt class="py-line"> <tt class="py-name">line</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-22" class="py-name"><a title="paramiko.BufferedFile.readline" class="py-name" href="#" onclick="return doclink('link-22', 'readline', 'link-14');">readline</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-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">==</tt> <tt class="py-number">0</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">break</tt> </tt>
+<a name="L262"></a><tt class="py-lineno">262</tt> <tt class="py-line"> <tt class="py-name">lines</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">line</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">bytes</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="L264"></a><tt class="py-lineno">264</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">sizehint</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">bytes</tt> <tt class="py-op">&gt;=</tt> <tt class="py-name">sizehint</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">break</tt> </tt>
+<a name="L266"></a><tt class="py-lineno">266</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">lines</tt> </tt>
+</div><a name="L267"></a><tt class="py-lineno">267</tt> <tt class="py-line"> </tt>
+<a name="BufferedFile.seek"></a><div id="BufferedFile.seek-def"><a name="L268"></a><tt class="py-lineno">268</tt> <a class="py-toggle" href="#" id="BufferedFile.seek-toggle" onclick="return toggle('BufferedFile.seek');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.file.BufferedFile-class.html#seek">seek</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">whence</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="BufferedFile.seek-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BufferedFile.seek-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"> Set the file's current position, like stdio's C{fseek}. Not all file</tt> </tt>
+<a name="L271"></a><tt class="py-lineno">271</tt> <tt class="py-line"><tt class="py-docstring"> objects support seeking.</tt> </tt>
+<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"> @note: If a file is opened in append mode (C{'a'} or C{'a+'}), any seek</tt> </tt>
+<a name="L274"></a><tt class="py-lineno">274</tt> <tt class="py-line"><tt class="py-docstring"> operations will be undone at the next write (as the file position</tt> </tt>
+<a name="L275"></a><tt class="py-lineno">275</tt> <tt class="py-line"><tt class="py-docstring"> will move back to the end of the file).</tt> </tt>
+<a name="L276"></a><tt class="py-lineno">276</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L277"></a><tt class="py-lineno">277</tt> <tt class="py-line"><tt class="py-docstring"> @param offset: position to move to within the file, relative to</tt> </tt>
+<a name="L278"></a><tt class="py-lineno">278</tt> <tt class="py-line"><tt class="py-docstring"> C{whence}.</tt> </tt>
+<a name="L279"></a><tt class="py-lineno">279</tt> <tt class="py-line"><tt class="py-docstring"> @type offset: int</tt> </tt>
+<a name="L280"></a><tt class="py-lineno">280</tt> <tt class="py-line"><tt class="py-docstring"> @param whence: type of movement: 0 = absolute; 1 = relative to the</tt> </tt>
+<a name="L281"></a><tt class="py-lineno">281</tt> <tt class="py-line"><tt class="py-docstring"> current position; 2 = relative to the end of the file.</tt> </tt>
+<a name="L282"></a><tt class="py-lineno">282</tt> <tt class="py-line"><tt class="py-docstring"> @type whence: int</tt> </tt>
+<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"> @raise IOError: if the file doesn't support random access.</tt> </tt>
+<a name="L285"></a><tt class="py-lineno">285</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L286"></a><tt class="py-lineno">286</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 does not support seeking.'</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="BufferedFile.tell"></a><div id="BufferedFile.tell-def"><a name="L288"></a><tt class="py-lineno">288</tt> <a class="py-toggle" href="#" id="BufferedFile.tell-toggle" onclick="return toggle('BufferedFile.tell');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.file.BufferedFile-class.html#tell">tell</a><tt 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.tell-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BufferedFile.tell-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"> Return the file's current position. This may not be accurate or</tt> </tt>
+<a name="L291"></a><tt class="py-lineno">291</tt> <tt class="py-line"><tt class="py-docstring"> useful if the underlying file doesn't support random access, or was</tt> </tt>
+<a name="L292"></a><tt class="py-lineno">292</tt> <tt class="py-line"><tt class="py-docstring"> opened in append mode.</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"> @return: file position (in bytes).</tt> </tt>
+<a name="L295"></a><tt class="py-lineno">295</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: int</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-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_pos</tt> </tt>
+</div><a name="L298"></a><tt class="py-lineno">298</tt> <tt class="py-line"> </tt>
+<a name="BufferedFile.write"></a><div id="BufferedFile.write-def"><a name="L299"></a><tt class="py-lineno">299</tt> <a class="py-toggle" href="#" id="BufferedFile.write-toggle" onclick="return toggle('BufferedFile.write');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.file.BufferedFile-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="BufferedFile.write-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BufferedFile.write-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"> Write data to the file. If write buffering is on (C{bufsize} was</tt> </tt>
+<a name="L302"></a><tt class="py-lineno">302</tt> <tt class="py-line"><tt class="py-docstring"> specified and non-zero), some or all of the data may not actually be</tt> </tt>
+<a name="L303"></a><tt class="py-lineno">303</tt> <tt class="py-line"><tt class="py-docstring"> written yet. (Use L{flush} or L{close} to force buffered data to be</tt> </tt>
+<a name="L304"></a><tt class="py-lineno">304</tt> <tt class="py-line"><tt class="py-docstring"> written out.)</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 data: data to write.</tt> </tt>
+<a name="L307"></a><tt class="py-lineno">307</tt> <tt class="py-line"><tt class="py-docstring"> @type data: str</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-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="L310"></a><tt class="py-lineno">310</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="L311"></a><tt class="py-lineno">311</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-23" class="py-name"><a title="paramiko.BufferedFile.FLAG_WRITE" class="py-name" href="#" onclick="return doclink('link-23', 'FLAG_WRITE', 'link-5');">FLAG_WRITE</a></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">raise</tt> <tt class="py-name">IOError</tt><tt class="py-op">(</tt><tt class="py-string">'File not open for writing'</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">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-24" class="py-name"><a title="paramiko.BufferedFile.FLAG_BUFFERED" class="py-name" href="#" onclick="return doclink('link-24', 'FLAG_BUFFERED', 'link-8');">FLAG_BUFFERED</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">self</tt><tt class="py-op">.</tt><tt class="py-name">_write_all</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
+<a name="L315"></a><tt class="py-lineno">315</tt> <tt class="py-line"> <tt class="py-keyword">return</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">_wbuffer</tt><tt class="py-op">.</tt><tt id="link-25" 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-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="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>
+<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">_write_all</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">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>
+<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">_wbuffer</tt> <tt class="py-op">=</tt> <tt class="py-name">StringIO</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_wbuffer</tt><tt class="py-op">.</tt><tt id="link-27" class="py-name"><a title="paramiko.BufferedFile.write
+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="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>
+<a name="BufferedFile.writelines"></a><div id="BufferedFile.writelines-def"><a name="L333"></a><tt class="py-lineno">333</tt> <a class="py-toggle" href="#" id="BufferedFile.writelines-toggle" onclick="return toggle('BufferedFile.writelines');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.file.BufferedFile-class.html#writelines">writelines</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="BufferedFile.writelines-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BufferedFile.writelines-expanded"><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"> Write a sequence of strings to the file. The sequence can be any</tt> </tt>
+<a name="L336"></a><tt class="py-lineno">336</tt> <tt class="py-line"><tt class="py-docstring"> iterable object producing strings, typically a list of strings. (The</tt> </tt>
+<a name="L337"></a><tt class="py-lineno">337</tt> <tt class="py-line"><tt class="py-docstring"> name is intended to match L{readlines}; C{writelines} does not add line</tt> </tt>
+<a name="L338"></a><tt class="py-lineno">338</tt> <tt class="py-line"><tt class="py-docstring"> separators.)</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"> @param sequence: an iterable sequence of strings.</tt> </tt>
+<a name="L341"></a><tt class="py-lineno">341</tt> <tt class="py-line"><tt class="py-docstring"> @type sequence: sequence</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-keyword">for</tt> <tt class="py-name">line</tt> <tt class="py-keyword">in</tt> <tt class="py-name">sequence</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 id="link-30" class="py-name"><a title="paramiko.BufferedFile.write
+paramiko.SFTPHandle.write" class="py-name" href="#" onclick="return doclink('link-30', 'write', 'link-25');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">line</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>
+</div><a name="L346"></a><tt class="py-lineno">346</tt> <tt class="py-line"> </tt>
+<a name="BufferedFile.xreadlines"></a><div id="BufferedFile.xreadlines-def"><a name="L347"></a><tt class="py-lineno">347</tt> <a class="py-toggle" href="#" id="BufferedFile.xreadlines-toggle" onclick="return toggle('BufferedFile.xreadlines');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.file.BufferedFile-class.html#xreadlines">xreadlines</a><tt 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.xreadlines-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BufferedFile.xreadlines-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"> Identical to C{iter(f)}. This is a deprecated file interface that</tt> </tt>
+<a name="L350"></a><tt class="py-lineno">350</tt> <tt class="py-line"><tt class="py-docstring"> predates python iterator support.</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"> @return: an iterator.</tt> </tt>
+<a name="L353"></a><tt class="py-lineno">353</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: iterator</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-keyword">return</tt> <tt class="py-name">self</tt> </tt>
+</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="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>
+<a name="L363"></a><tt class="py-lineno">363</tt> <tt class="py-line"><tt class="py-docstring"> I{(subclass override)}</tt> </tt>
+<a name="L364"></a><tt class="py-lineno">364</tt> <tt class="py-line"><tt class="py-docstring"> Read data from the stream. Return C{None} or raise C{EOFError} to</tt> </tt>
+<a name="L365"></a><tt class="py-lineno">365</tt> <tt class="py-line"><tt class="py-docstring"> indicate EOF.</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-keyword">raise</tt> <tt class="py-name">EOFError</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L368"></a><tt class="py-lineno">368</tt> <tt class="py-line"> </tt>
+<a name="BufferedFile._write"></a><div id="BufferedFile._write-def"><a name="L369"></a><tt class="py-lineno">369</tt> <a class="py-toggle" href="#" id="BufferedFile._write-toggle" onclick="return toggle('BufferedFile._write');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.file.BufferedFile-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="BufferedFile._write-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BufferedFile._write-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"> I{(subclass override)}</tt> </tt>
+<a name="L372"></a><tt class="py-lineno">372</tt> <tt class="py-line"><tt class="py-docstring"> Write data into the stream.</tt> </tt>
+<a name="L373"></a><tt class="py-lineno">373</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L374"></a><tt class="py-lineno">374</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">'write not implemented'</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="BufferedFile._get_size"></a><div id="BufferedFile._get_size-def"><a name="L376"></a><tt class="py-lineno">376</tt> <a class="py-toggle" href="#" id="BufferedFile._get_size-toggle" onclick="return toggle('BufferedFile._get_size');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.file.BufferedFile-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="BufferedFile._get_size-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BufferedFile._get_size-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"> I{(subclass override)}</tt> </tt>
+<a name="L379"></a><tt class="py-lineno">379</tt> <tt class="py-line"><tt class="py-docstring"> Return the size of the file. This is called from within L{_set_mode}</tt> </tt>
+<a name="L380"></a><tt class="py-lineno">380</tt> <tt class="py-line"><tt class="py-docstring"> if the file is opened in append mode, so the file position can be</tt> </tt>
+<a name="L381"></a><tt class="py-lineno">381</tt> <tt class="py-line"><tt class="py-docstring"> tracked and L{seek} and L{tell} will work correctly. If the file is</tt> </tt>
+<a name="L382"></a><tt class="py-lineno">382</tt> <tt class="py-line"><tt class="py-docstring"> a stream that can't be randomly accessed, you don't need to override</tt> </tt>
+<a name="L383"></a><tt class="py-lineno">383</tt> <tt class="py-line"><tt class="py-docstring"> this method,</tt> </tt>
+<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-keyword">return</tt> <tt class="py-number">0</tt> </tt>
+</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="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="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="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="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="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>
+<a name="L416"></a><tt class="py-lineno">416</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-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">_flags</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.BufferedFile.FLAG_WRITE" class="py-name" href="#" onclick="return doclink('link-39', 'FLAG_WRITE', 'link-5');">FLAG_WRITE</a></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-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="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">_flags</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.BufferedFile.FLAG_WRITE" class="py-name" href="#" onclick="return doclink('link-40', 'FLAG_WRITE', 'link-5');">FLAG_WRITE</a></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.BufferedFile.FLAG_APPEND" class="py-name" href="#" onclick="return doclink('link-41', 'FLAG_APPEND', 'link-6');">FLAG_APPEND</a></tt> </tt>
+<a name="L420"></a><tt class="py-lineno">420</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_get_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">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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_size</tt> </tt>
+<a name="L422"></a><tt class="py-lineno">422</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-string">'b'</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="L423"></a><tt class="py-lineno">423</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-42" class="py-name"><a title="paramiko.BufferedFile.FLAG_BINARY" class="py-name" href="#" onclick="return doclink('link-42', 'FLAG_BINARY', 'link-7');">FLAG_BINARY</a></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-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>
+</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="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>
+<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">_size</tt> <tt class="py-op">+=</tt> <tt class="py-name">count</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">_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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_size</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">_pos</tt> <tt class="py-op">+=</tt> <tt class="py-name">count</tt> </tt>
+<a name="L442"></a><tt class="py-lineno">442</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">count</tt> </tt>
+<a name="L443"></a><tt class="py-lineno">443</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
+</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="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>
+<a name="L453"></a><tt class="py-lineno">453</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">self</tt><tt class="py-op">.</tt><tt class="py-name">newlines</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-name">str</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">newlines</tt> <tt class="py-op">!=</tt> <tt class="py-name">newline</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">self</tt><tt class="py-op">.</tt><tt class="py-name">newlines</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">newlines</tt><tt class="py-op">,</tt> <tt class="py-name">newline</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">elif</tt> <tt class="py-name">newline</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">newlines</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">newlines</tt> <tt class="py-op">+=</tt> <tt class="py-op">(</tt><tt class="py-name">newline</tt><tt class="py-op">,</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L457"></a><tt class="py-lineno">457</tt> <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<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 Jul 6 18:30:32 2008
+ </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.hostkeys-module.html b/docs/paramiko.hostkeys-module.html
new file mode 100644
index 0000000..397bafa
--- /dev/null
+++ b/docs/paramiko.hostkeys-module.html
@@ -0,0 +1,542 @@
+<?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.hostkeys</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> ::
+ Module&nbsp;hostkeys
+ </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.hostkeys-module.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module hostkeys</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.hostkeys-pysrc.html">source&nbsp;code</a></span></p>
+<p><a href="paramiko.HostKeys-class.html" class="link">HostKeys</a></p>
+
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></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">Classes</span></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.hostkeys.HostKeyEntry-class.html" class="summary-name">HostKeyEntry</a><br />
+ Representation of a line in an OpenSSH-style &quot;known
+ hosts&quot; file.
+ </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="AUTH_FAILED"></a><span class="summary-name">AUTH_FAILED</span> = <code title="2">2</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_PARTIALLY_SUCCESSFUL"></a><span class="summary-name">AUTH_PARTIALLY_SUCCESSFUL</span> = <code title="1">1</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_SUCCESSFUL"></a><span class="summary-name">AUTH_SUCCESSFUL</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 href="paramiko.hostkeys-module.html#CONNECTION_FAILED_CODE" class="summary-name">CONNECTION_FAILED_CODE</a> = <code title="{1: 'Administratively prohibited',
+ 2: 'Connect failed',
+ 3: 'Unknown channel type',
+ 4: 'Resource shortage'}"><code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Administratively prohibited</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-op">:</code><code class="variable-ellipsis">...</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="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="DEBUG"></a><span class="summary-name">DEBUG</span> = <code title="10">10</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="DISCONNECT_AUTH_CANCELLED_BY_USER"></a><span class="summary-name">DISCONNECT_AUTH_CANCELLED_BY_USER</span> = <code title="13">13</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="DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE"></a><span class="summary-name">DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE</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="DISCONNECT_SERVICE_NOT_AVAILABLE"></a><span class="summary-name">DISCONNECT_SERVICE_NOT_AVAILABLE</span> = <code title="7">7</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="ERROR"></a><span class="summary-name">ERROR</span> = <code title="40">40</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="INFO"></a><span class="summary-name">INFO</span> = <code title="20">20</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="MSG_CHANNEL_CLOSE"></a><span class="summary-name">MSG_CHANNEL_CLOSE</span> = <code title="97">97</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="MSG_CHANNEL_DATA"></a><span class="summary-name">MSG_CHANNEL_DATA</span> = <code title="94">94</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="MSG_CHANNEL_EOF"></a><span class="summary-name">MSG_CHANNEL_EOF</span> = <code title="96">96</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="MSG_CHANNEL_EXTENDED_DATA"></a><span class="summary-name">MSG_CHANNEL_EXTENDED_DATA</span> = <code title="95">95</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="MSG_CHANNEL_FAILURE"></a><span class="summary-name">MSG_CHANNEL_FAILURE</span> = <code title="100">100</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="MSG_CHANNEL_OPEN"></a><span class="summary-name">MSG_CHANNEL_OPEN</span> = <code title="90">90</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="MSG_CHANNEL_OPEN_FAILURE"></a><span class="summary-name">MSG_CHANNEL_OPEN_FAILURE</span> = <code title="92">92</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="MSG_CHANNEL_OPEN_SUCCESS"></a><span class="summary-name">MSG_CHANNEL_OPEN_SUCCESS</span> = <code title="91">91</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="MSG_CHANNEL_REQUEST"></a><span class="summary-name">MSG_CHANNEL_REQUEST</span> = <code title="98">98</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="MSG_CHANNEL_SUCCESS"></a><span class="summary-name">MSG_CHANNEL_SUCCESS</span> = <code title="99">99</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="MSG_CHANNEL_WINDOW_ADJUST"></a><span class="summary-name">MSG_CHANNEL_WINDOW_ADJUST</span> = <code title="93">93</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="MSG_DEBUG"></a><span class="summary-name">MSG_DEBUG</span> = <code title="4">4</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="MSG_DISCONNECT"></a><span class="summary-name">MSG_DISCONNECT</span> = <code title="1">1</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="MSG_GLOBAL_REQUEST"></a><span class="summary-name">MSG_GLOBAL_REQUEST</span> = <code title="80">80</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="MSG_IGNORE"></a><span class="summary-name">MSG_IGNORE</span> = <code title="2">2</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="MSG_KEXINIT"></a><span class="summary-name">MSG_KEXINIT</span> = <code title="20">20</code>
+ </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.hostkeys-module.html#MSG_NAMES" class="summary-name">MSG_NAMES</a> = <code title="{1: 'disconnect',
+ 2: 'ignore',
+ 3: 'unimplemented',
+ 4: 'debug',
+ 5: 'service-request',
+ 6: 'service-accept',
+ 20: 'kexinit',
+ 21: 'newkeys',
+..."><code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">disconnect</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">ignore</code><code class="variable-quote">'</code><code class="variable-op">, </code>3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">unimplemented</code><code class="variable-quote">'</code><code class="variable-op">,</code><code class="variable-ellipsis">...</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="MSG_NEWKEYS"></a><span class="summary-name">MSG_NEWKEYS</span> = <code title="21">21</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="MSG_REQUEST_FAILURE"></a><span class="summary-name">MSG_REQUEST_FAILURE</span> = <code title="82">82</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="MSG_REQUEST_SUCCESS"></a><span class="summary-name">MSG_REQUEST_SUCCESS</span> = <code title="81">81</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="MSG_SERVICE_ACCEPT"></a><span class="summary-name">MSG_SERVICE_ACCEPT</span> = <code title="6">6</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="MSG_SERVICE_REQUEST"></a><span class="summary-name">MSG_SERVICE_REQUEST</span> = <code title="5">5</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="MSG_UNIMPLEMENTED"></a><span class="summary-name">MSG_UNIMPLEMENTED</span> = <code title="3">3</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="MSG_USERAUTH_BANNER"></a><span class="summary-name">MSG_USERAUTH_BANNER</span> = <code title="53">53</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="MSG_USERAUTH_FAILURE"></a><span class="summary-name">MSG_USERAUTH_FAILURE</span> = <code title="51">51</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="MSG_USERAUTH_INFO_REQUEST"></a><span class="summary-name">MSG_USERAUTH_INFO_REQUEST</span> = <code title="60">60</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="MSG_USERAUTH_INFO_RESPONSE"></a><span class="summary-name">MSG_USERAUTH_INFO_RESPONSE</span> = <code title="61">61</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="MSG_USERAUTH_PK_OK"></a><span class="summary-name">MSG_USERAUTH_PK_OK</span> = <code title="60">60</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="MSG_USERAUTH_REQUEST"></a><span class="summary-name">MSG_USERAUTH_REQUEST</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="MSG_USERAUTH_SUCCESS"></a><span class="summary-name">MSG_USERAUTH_SUCCESS</span> = <code title="52">52</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="OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED"></a><span class="summary-name">OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED</span> = <code title="1">1</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="OPEN_FAILED_CONNECT_FAILED"></a><span class="summary-name">OPEN_FAILED_CONNECT_FAILED</span> = <code title="2">2</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="OPEN_FAILED_RESOURCE_SHORTAGE"></a><span class="summary-name">OPEN_FAILED_RESOURCE_SHORTAGE</span> = <code title="4">4</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="OPEN_FAILED_UNKNOWN_CHANNEL_TYPE"></a><span class="summary-name">OPEN_FAILED_UNKNOWN_CHANNEL_TYPE</span> = <code title="3">3</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="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="PY22"></a><span class="summary-name">PY22</span> = <code title="False">False</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="WARNING"></a><span class="summary-name">WARNING</span> = <code title="30">30</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>
+</table>
+<!-- ==================== VARIABLES DETAILS ==================== -->
+<a name="section-VariablesDetails"></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">Variables Details</span></td>
+</tr>
+</table>
+<a name="CONNECTION_FAILED_CODE"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">CONNECTION_FAILED_CODE</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Administratively prohibited</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Connect failed</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Unknown channel type</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Resource shortage</code><code class="variable-quote">'</code><code class="variable-group">}</code>
+</pre></td></tr></table>
+</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="MSG_NAMES"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">MSG_NAMES</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">disconnect</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">ignore</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">unimplemented</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">debug</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 5<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">service-request</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 6<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">service-accept</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 20<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">kexinit</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 21<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">newkeys</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+ </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 Jul 6 18:30:26 2008
+ </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.hostkeys-pysrc.html b/docs/paramiko.hostkeys-pysrc.html
new file mode 100644
index 0000000..4bf0c59
--- /dev/null
+++ b/docs/paramiko.hostkeys-pysrc.html
@@ -0,0 +1,499 @@
+<?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.hostkeys</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> ::
+ Module&nbsp;hostkeys
+ </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.hostkeys-pysrc.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</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="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>
+<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">import</tt> <tt class="py-name">base64</tt> </tt>
+<a name="L24"></a><tt class="py-lineno"> 24</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">HMAC</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">UserDict</tt> </tt>
+<a name="L26"></a><tt class="py-lineno"> 26</tt> <tt class="py-line"> </tt>
+<a name="L27"></a><tt class="py-lineno"> 27</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="L28"></a><tt class="py-lineno"> 28</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.dsskey=paramiko.dsskey-module.html"><a title="paramiko.dsskey" class="py-name" href="#" onclick="return doclink('link-3', 'dsskey', 'link-3');">dsskey</a></tt> <tt class="py-keyword">import</tt> <tt id="link-4" class="py-name" targets="Class paramiko.DSSKey=paramiko.DSSKey-class.html"><a title="paramiko.DSSKey" class="py-name" href="#" onclick="return doclink('link-4', 'DSSKey', 'link-4');">DSSKey</a></tt> </tt>
+<a name="L29"></a><tt class="py-lineno"> 29</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.rsakey=paramiko.rsakey-module.html"><a title="paramiko.rsakey" class="py-name" href="#" onclick="return doclink('link-6', 'rsakey', 'link-6');">rsakey</a></tt> <tt class="py-keyword">import</tt> <tt id="link-7" class="py-name" targets="Class paramiko.RSAKey=paramiko.RSAKey-class.html"><a title="paramiko.RSAKey" class="py-name" href="#" onclick="return doclink('link-7', 'RSAKey', 'link-7');">RSAKey</a></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>
+<a name="HostKeyEntry"></a><div id="HostKeyEntry-def"><a name="L32"></a><tt class="py-lineno"> 32</tt> <a class="py-toggle" href="#" id="HostKeyEntry-toggle" onclick="return toggle('HostKeyEntry');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.hostkeys.HostKeyEntry-class.html">HostKeyEntry</a><tt class="py-op">:</tt> </tt>
+</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="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>
+<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">key</tt> <tt class="py-op">=</tt> <tt class="py-name">key</tt> </tt>
+</div><a name="L41"></a><tt class="py-lineno"> 41</tt> <tt class="py-line"> </tt>
+<a name="HostKeyEntry.from_line"></a><div id="HostKeyEntry.from_line-def"><a name="L42"></a><tt class="py-lineno"> 42</tt> <a class="py-toggle" href="#" id="HostKeyEntry.from_line-toggle" onclick="return toggle('HostKeyEntry.from_line');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.hostkeys.HostKeyEntry-class.html#from_line">from_line</a><tt class="py-op">(</tt><tt class="py-param">cls</tt><tt class="py-op">,</tt> <tt class="py-param">line</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="HostKeyEntry.from_line-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="HostKeyEntry.from_line-expanded"><a name="L43"></a><tt class="py-lineno"> 43</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"><tt class="py-docstring"> Parses the given line of text to find the names for the host,</tt> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt> <tt class="py-line"><tt class="py-docstring"> the type of key, and the key data. The line is expected to be in the</tt> </tt>
+<a name="L46"></a><tt class="py-lineno"> 46</tt> <tt class="py-line"><tt class="py-docstring"> format used by the openssh known_hosts file.</tt> </tt>
+<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"> Lines are expected to not have leading or trailing whitespace.</tt> </tt>
+<a name="L49"></a><tt class="py-lineno"> 49</tt> <tt class="py-line"><tt class="py-docstring"> We don't bother to check for comments or empty lines. All of</tt> </tt>
+<a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"><tt class="py-docstring"> that should be taken care of before sending the line to us.</tt> </tt>
+<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"> @param line: a line from an OpenSSH known_hosts file</tt> </tt>
+<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="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
+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
+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
+paramiko.BufferedFile.close
+paramiko.Channel.close
+paramiko.SFTPClient.close
+paramiko.SFTPFile.close
+paramiko.SFTPHandle.close
+paramiko.SSHClient.close
+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-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
+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
+paramiko.BufferedFile.close
+paramiko.Channel.close
+paramiko.SFTPClient.close
+paramiko.SFTPFile.close
+paramiko.SFTPHandle.close
+paramiko.SSHClient.close
+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-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
+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
+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
+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
+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
+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
+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
+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
+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
+paramiko.channel.randpool
+paramiko.client.randpool
+paramiko.common.randpool
+paramiko.dsskey.randpool
+paramiko.hostkeys.randpool
+paramiko.kex_gex.randpool
+paramiko.kex_group1.randpool
+paramiko.packet.randpool
+paramiko.pkey.randpool
+paramiko.rsakey.randpool
+paramiko.server.randpool
+paramiko.sftp.randpool
+paramiko.sftp_attr.randpool
+paramiko.sftp_client.randpool
+paramiko.sftp_file.randpool
+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-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">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<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 Jul 6 18:30:36 2008
+ </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.hostkeys.HostKeyEntry-class.html b/docs/paramiko.hostkeys.HostKeyEntry-class.html
new file mode 100644
index 0000000..99256a7
--- /dev/null
+++ b/docs/paramiko.hostkeys.HostKeyEntry-class.html
@@ -0,0 +1,255 @@
+<?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.hostkeys.HostKeyEntry</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.hostkeys-module.html" onclick="show_private();">Module&nbsp;hostkeys</a> ::
+ Class&nbsp;HostKeyEntry
+ </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.hostkeys.HostKeyEntry-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class HostKeyEntry</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.hostkeys-pysrc.html#HostKeyEntry">source&nbsp;code</a></span></p>
+<p>Representation of a line in an OpenSSH-style &quot;known hosts&quot;
+ file.</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 name="__init__"></a><span class="summary-sig-name">__init__</span>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">hostnames</span>=<span class="summary-sig-default">None</span>,
+ <span class="summary-sig-arg">key</span>=<span class="summary-sig-default">None</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.hostkeys-pysrc.html#HostKeyEntry.__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 href="paramiko.hostkeys.HostKeyEntry-class.html#to_line" class="summary-sig-name">to_line</a>(<span class="summary-sig-arg">self</span>)</span><br />
+ Returns a string in OpenSSH known_hosts file format, or None if the
+ object is not in a valid state.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.hostkeys-pysrc.html#HostKeyEntry.to_line">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="__repr__"></a><span class="summary-sig-name">__repr__</span>(<span class="summary-sig-arg">self</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.hostkeys-pysrc.html#HostKeyEntry.__repr__">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </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 href="paramiko.hostkeys.HostKeyEntry-class.html#from_line" class="summary-sig-name">from_line</a>(<span class="summary-sig-arg">cls</span>,
+ <span class="summary-sig-arg">line</span>)</span><br />
+ Parses the given line of text to find the names for the host, the
+ type of key, and the key data.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.hostkeys-pysrc.html#HostKeyEntry.from_line">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </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="from_line"></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">from_line</span>(<span class="sig-arg">cls</span>,
+ <span class="sig-arg">line</span>)</span>
+ <br /><em class="fname">Class Method</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.hostkeys-pysrc.html#HostKeyEntry.from_line">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Parses the given line of text to find the names for the host, the type
+ of key, and the key data. The line is expected to be in the format used
+ by the openssh known_hosts file.</p>
+ <p>Lines are expected to not have leading or trailing whitespace. We
+ don't bother to check for comments or empty lines. All of that should be
+ taken care of before sending the line to us.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>line</code></strong> (str) - a line from an OpenSSH known_hosts file</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="to_line"></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">to_line</span>(<span class="sig-arg">self</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.hostkeys-pysrc.html#HostKeyEntry.to_line">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Returns a string in OpenSSH known_hosts file format, or None if the
+ object is not in a valid state. A trailing newline is included.</p>
+ <dl class="fields">
+ </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 Jul 6 18:30:30 2008
+ </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.kex_gex-module.html b/docs/paramiko.kex_gex-module.html
new file mode 100644
index 0000000..b2d8668
--- /dev/null
+++ b/docs/paramiko.kex_gex-module.html
@@ -0,0 +1,543 @@
+<?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.kex_gex</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> ::
+ Module&nbsp;kex_gex
+ </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.kex_gex-module.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module kex_gex</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.kex_gex-pysrc.html">source&nbsp;code</a></span></p>
+<p>Variant on <a href="paramiko.kex_group1.KexGroup1-class.html"
+ class="link">KexGroup1</a> where the prime &quot;p&quot; and generator
+ &quot;g&quot; are provided by the server. A bit more work is required on
+ the client side, and a <b>lot</b> more on the server side.</p>
+
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></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">Classes</span></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.kex_gex.KexGex-class.html" class="summary-name">KexGex</a>
+ </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="AUTH_FAILED"></a><span class="summary-name">AUTH_FAILED</span> = <code title="2">2</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_PARTIALLY_SUCCESSFUL"></a><span class="summary-name">AUTH_PARTIALLY_SUCCESSFUL</span> = <code title="1">1</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_SUCCESSFUL"></a><span class="summary-name">AUTH_SUCCESSFUL</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 href="paramiko.kex_gex-module.html#CONNECTION_FAILED_CODE" class="summary-name">CONNECTION_FAILED_CODE</a> = <code title="{1: 'Administratively prohibited',
+ 2: 'Connect failed',
+ 3: 'Unknown channel type',
+ 4: 'Resource shortage'}"><code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Administratively prohibited</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-op">:</code><code class="variable-ellipsis">...</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="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="DEBUG"></a><span class="summary-name">DEBUG</span> = <code title="10">10</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="DISCONNECT_AUTH_CANCELLED_BY_USER"></a><span class="summary-name">DISCONNECT_AUTH_CANCELLED_BY_USER</span> = <code title="13">13</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="DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE"></a><span class="summary-name">DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE</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="DISCONNECT_SERVICE_NOT_AVAILABLE"></a><span class="summary-name">DISCONNECT_SERVICE_NOT_AVAILABLE</span> = <code title="7">7</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="ERROR"></a><span class="summary-name">ERROR</span> = <code title="40">40</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="INFO"></a><span class="summary-name">INFO</span> = <code title="20">20</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="MSG_CHANNEL_CLOSE"></a><span class="summary-name">MSG_CHANNEL_CLOSE</span> = <code title="97">97</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="MSG_CHANNEL_DATA"></a><span class="summary-name">MSG_CHANNEL_DATA</span> = <code title="94">94</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="MSG_CHANNEL_EOF"></a><span class="summary-name">MSG_CHANNEL_EOF</span> = <code title="96">96</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="MSG_CHANNEL_EXTENDED_DATA"></a><span class="summary-name">MSG_CHANNEL_EXTENDED_DATA</span> = <code title="95">95</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="MSG_CHANNEL_FAILURE"></a><span class="summary-name">MSG_CHANNEL_FAILURE</span> = <code title="100">100</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="MSG_CHANNEL_OPEN"></a><span class="summary-name">MSG_CHANNEL_OPEN</span> = <code title="90">90</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="MSG_CHANNEL_OPEN_FAILURE"></a><span class="summary-name">MSG_CHANNEL_OPEN_FAILURE</span> = <code title="92">92</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="MSG_CHANNEL_OPEN_SUCCESS"></a><span class="summary-name">MSG_CHANNEL_OPEN_SUCCESS</span> = <code title="91">91</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="MSG_CHANNEL_REQUEST"></a><span class="summary-name">MSG_CHANNEL_REQUEST</span> = <code title="98">98</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="MSG_CHANNEL_SUCCESS"></a><span class="summary-name">MSG_CHANNEL_SUCCESS</span> = <code title="99">99</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="MSG_CHANNEL_WINDOW_ADJUST"></a><span class="summary-name">MSG_CHANNEL_WINDOW_ADJUST</span> = <code title="93">93</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="MSG_DEBUG"></a><span class="summary-name">MSG_DEBUG</span> = <code title="4">4</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="MSG_DISCONNECT"></a><span class="summary-name">MSG_DISCONNECT</span> = <code title="1">1</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="MSG_GLOBAL_REQUEST"></a><span class="summary-name">MSG_GLOBAL_REQUEST</span> = <code title="80">80</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="MSG_IGNORE"></a><span class="summary-name">MSG_IGNORE</span> = <code title="2">2</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="MSG_KEXINIT"></a><span class="summary-name">MSG_KEXINIT</span> = <code title="20">20</code>
+ </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.kex_gex-module.html#MSG_NAMES" class="summary-name">MSG_NAMES</a> = <code title="{1: 'disconnect',
+ 2: 'ignore',
+ 3: 'unimplemented',
+ 4: 'debug',
+ 5: 'service-request',
+ 6: 'service-accept',
+ 20: 'kexinit',
+ 21: 'newkeys',
+..."><code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">disconnect</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">ignore</code><code class="variable-quote">'</code><code class="variable-op">, </code>3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">unimplemented</code><code class="variable-quote">'</code><code class="variable-op">,</code><code class="variable-ellipsis">...</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="MSG_NEWKEYS"></a><span class="summary-name">MSG_NEWKEYS</span> = <code title="21">21</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="MSG_REQUEST_FAILURE"></a><span class="summary-name">MSG_REQUEST_FAILURE</span> = <code title="82">82</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="MSG_REQUEST_SUCCESS"></a><span class="summary-name">MSG_REQUEST_SUCCESS</span> = <code title="81">81</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="MSG_SERVICE_ACCEPT"></a><span class="summary-name">MSG_SERVICE_ACCEPT</span> = <code title="6">6</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="MSG_SERVICE_REQUEST"></a><span class="summary-name">MSG_SERVICE_REQUEST</span> = <code title="5">5</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="MSG_UNIMPLEMENTED"></a><span class="summary-name">MSG_UNIMPLEMENTED</span> = <code title="3">3</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="MSG_USERAUTH_BANNER"></a><span class="summary-name">MSG_USERAUTH_BANNER</span> = <code title="53">53</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="MSG_USERAUTH_FAILURE"></a><span class="summary-name">MSG_USERAUTH_FAILURE</span> = <code title="51">51</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="MSG_USERAUTH_INFO_REQUEST"></a><span class="summary-name">MSG_USERAUTH_INFO_REQUEST</span> = <code title="60">60</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="MSG_USERAUTH_INFO_RESPONSE"></a><span class="summary-name">MSG_USERAUTH_INFO_RESPONSE</span> = <code title="61">61</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="MSG_USERAUTH_PK_OK"></a><span class="summary-name">MSG_USERAUTH_PK_OK</span> = <code title="60">60</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="MSG_USERAUTH_REQUEST"></a><span class="summary-name">MSG_USERAUTH_REQUEST</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="MSG_USERAUTH_SUCCESS"></a><span class="summary-name">MSG_USERAUTH_SUCCESS</span> = <code title="52">52</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="OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED"></a><span class="summary-name">OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED</span> = <code title="1">1</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="OPEN_FAILED_CONNECT_FAILED"></a><span class="summary-name">OPEN_FAILED_CONNECT_FAILED</span> = <code title="2">2</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="OPEN_FAILED_RESOURCE_SHORTAGE"></a><span class="summary-name">OPEN_FAILED_RESOURCE_SHORTAGE</span> = <code title="4">4</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="OPEN_FAILED_UNKNOWN_CHANNEL_TYPE"></a><span class="summary-name">OPEN_FAILED_UNKNOWN_CHANNEL_TYPE</span> = <code title="3">3</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="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="PY22"></a><span class="summary-name">PY22</span> = <code title="False">False</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="WARNING"></a><span class="summary-name">WARNING</span> = <code title="30">30</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>
+</table>
+<!-- ==================== VARIABLES DETAILS ==================== -->
+<a name="section-VariablesDetails"></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">Variables Details</span></td>
+</tr>
+</table>
+<a name="CONNECTION_FAILED_CODE"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">CONNECTION_FAILED_CODE</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Administratively prohibited</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Connect failed</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Unknown channel type</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Resource shortage</code><code class="variable-quote">'</code><code class="variable-group">}</code>
+</pre></td></tr></table>
+</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="MSG_NAMES"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">MSG_NAMES</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">disconnect</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">ignore</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">unimplemented</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">debug</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 5<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">service-request</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 6<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">service-accept</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 20<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">kexinit</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 21<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">newkeys</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+ </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 Jul 6 18:30:27 2008
+ </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.kex_gex-pysrc.html b/docs/paramiko.kex_gex-pysrc.html
new file mode 100644
index 0000000..2bc411e
--- /dev/null
+++ b/docs/paramiko.kex_gex-pysrc.html
@@ -0,0 +1,483 @@
+<?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.kex_gex</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> ::
+ Module&nbsp;kex_gex
+ </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.kex_gex-pysrc.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</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="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>
+<a name="L22"></a><tt class="py-lineno"> 22</tt> <tt class="py-line"><tt class="py-docstring">client side, and a B{lot} more on the server side.</tt> </tt>
+<a name="L23"></a><tt class="py-lineno"> 23</tt> <tt class="py-line"><tt class="py-docstring">"""</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">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>
+<a name="L26"></a><tt class="py-lineno"> 26</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">number</tt> </tt>
+<a name="L27"></a><tt class="py-lineno"> 27</tt> <tt class="py-line"> </tt>
+<a name="L28"></a><tt class="py-lineno"> 28</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="L29"></a><tt class="py-lineno"> 29</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>
+<a name="L30"></a><tt class="py-lineno"> 30</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-4" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-4', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-5" class="py-name" targets="Module paramiko.message=paramiko.message-module.html"><a title="paramiko.message" class="py-name" href="#" onclick="return doclink('link-5', 'message', 'link-5');">message</a></tt> <tt class="py-keyword">import</tt> <tt id="link-6" class="py-name" targets="Class paramiko.Message=paramiko.Message-class.html"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-6', 'Message', 'link-6');">Message</a></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-7" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-7', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-8" 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-8', 'ssh_exception', 'link-8');">ssh_exception</a></tt> <tt class="py-keyword">import</tt> <tt id="link-9" class="py-name" targets="Class paramiko.SSHException=paramiko.SSHException-class.html"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-9', 'SSHException', 'link-9');">SSHException</a></tt> </tt>
+<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 id="link-10" class="py-name" targets="Variable paramiko.kex_gex._MSG_KEXDH_GEX_REQUEST_OLD=paramiko.kex_gex-module.html#_MSG_KEXDH_GEX_REQUEST_OLD"><a title="paramiko.kex_gex._MSG_KEXDH_GEX_REQUEST_OLD" class="py-name" href="#" onclick="return doclink('link-10', '_MSG_KEXDH_GEX_REQUEST_OLD', 'link-10');">_MSG_KEXDH_GEX_REQUEST_OLD</a></tt><tt class="py-op">,</tt> <tt id="link-11" class="py-name" targets="Variable paramiko.kex_gex._MSG_KEXDH_GEX_GROUP=paramiko.kex_gex-module.html#_MSG_KEXDH_GEX_GROUP"><a title="paramiko.kex_gex._MSG_KEXDH_GEX_GROUP" class="py-name" href="#" onclick="return doclink('link-11', '_MSG_KEXDH_GEX_GROUP', 'link-11');">_MSG_KEXDH_GEX_GROUP</a></tt><tt class="py-op">,</tt> <tt id="link-12" class="py-name" targets="Variable paramiko.kex_gex._MSG_KEXDH_GEX_INIT=paramiko.kex_gex-module.html#_MSG_KEXDH_GEX_INIT"><a title="paramiko.kex_gex._MSG_KEXDH_GEX_INIT" class="py-name" href="#" onclick="return doclink('link-12', '_MSG_KEXDH_GEX_INIT', 'link-12');">_MSG_KEXDH_GEX_INIT</a></tt><tt class="py-op">,</tt> \ </tt>
+<a name="L35"></a><tt class="py-lineno"> 35</tt> <tt class="py-line"> <tt id="link-13" class="py-name" targets="Variable paramiko.kex_gex._MSG_KEXDH_GEX_REPLY=paramiko.kex_gex-module.html#_MSG_KEXDH_GEX_REPLY"><a title="paramiko.kex_gex._MSG_KEXDH_GEX_REPLY" class="py-name" href="#" onclick="return doclink('link-13', '_MSG_KEXDH_GEX_REPLY', 'link-13');">_MSG_KEXDH_GEX_REPLY</a></tt><tt class="py-op">,</tt> <tt id="link-14" class="py-name" targets="Variable paramiko.kex_gex._MSG_KEXDH_GEX_REQUEST=paramiko.kex_gex-module.html#_MSG_KEXDH_GEX_REQUEST"><a title="paramiko.kex_gex._MSG_KEXDH_GEX_REQUEST" class="py-name" href="#" onclick="return doclink('link-14', '_MSG_KEXDH_GEX_REQUEST', 'link-14');">_MSG_KEXDH_GEX_REQUEST</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">35</tt><tt class="py-op">)</tt> </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>
+<a name="KexGex"></a><div id="KexGex-def"><a name="L38"></a><tt class="py-lineno"> 38</tt> <a class="py-toggle" href="#" id="KexGex-toggle" onclick="return toggle('KexGex');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.kex_gex.KexGex-class.html">KexGex</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="KexGex-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="KexGex-expanded"><a name="L39"></a><tt class="py-lineno"> 39</tt> <tt class="py-line"> </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</tt> <tt class="py-line"> <tt id="link-15" 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-15', 'name', 'link-15');">name</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'diffie-hellman-group-exchange-sha1'</tt> </tt>
+<a name="L41"></a><tt class="py-lineno"> 41</tt> <tt class="py-line"> <tt id="link-16" class="py-name" targets="Variable paramiko.kex_gex.KexGex.min_bits=paramiko.kex_gex.KexGex-class.html#min_bits"><a title="paramiko.kex_gex.KexGex.min_bits" class="py-name" href="#" onclick="return doclink('link-16', 'min_bits', 'link-16');">min_bits</a></tt> <tt class="py-op">=</tt> <tt class="py-number">1024</tt> </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt> <tt class="py-line"> <tt id="link-17" class="py-name" targets="Variable paramiko.kex_gex.KexGex.max_bits=paramiko.kex_gex.KexGex-class.html#max_bits"><a title="paramiko.kex_gex.KexGex.max_bits" class="py-name" href="#" onclick="return doclink('link-17', 'max_bits', 'link-17');">max_bits</a></tt> <tt class="py-op">=</tt> <tt class="py-number">8192</tt> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt> <tt class="py-line"> <tt id="link-18" class="py-name" targets="Variable paramiko.kex_gex.KexGex.preferred_bits=paramiko.kex_gex.KexGex-class.html#preferred_bits"><a title="paramiko.kex_gex.KexGex.preferred_bits" class="py-name" href="#" onclick="return doclink('link-18', 'preferred_bits', 'link-18');">preferred_bits</a></tt> <tt class="py-op">=</tt> <tt class="py-number">2048</tt> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"> </tt>
+<a name="KexGex.__init__"></a><div id="KexGex.__init__-def"><a name="L45"></a><tt class="py-lineno"> 45</tt> <a class="py-toggle" href="#" id="KexGex.__init__-toggle" onclick="return toggle('KexGex.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.kex_gex.KexGex-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="KexGex.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="KexGex.__init__-expanded"><a name="L46"></a><tt class="py-lineno"> 46</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-19" class="py-name" targets="Module paramiko.transport=paramiko.transport-module.html"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-19', 'transport', 'link-19');">transport</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-19');">transport</a></tt> </tt>
+<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">p</tt> <tt class="py-op">=</tt> <tt class="py-name">None</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">q</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt class="py-name">None</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">x</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">e</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">f</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">old_style</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+</div><a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line"> </tt>
+<a name="KexGex.start_kex"></a><div id="KexGex.start_kex-def"><a name="L55"></a><tt class="py-lineno"> 55</tt> <a class="py-toggle" href="#" id="KexGex.start_kex-toggle" onclick="return toggle('KexGex.start_kex');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.kex_gex.KexGex-class.html#start_kex">start_kex</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">_test_old_style</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="KexGex.start_kex-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="KexGex.start_kex-expanded"><a name="L56"></a><tt class="py-lineno"> 56</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-21" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-21', 'transport', 'link-19');">transport</a></tt><tt class="py-op">.</tt><tt class="py-name">server_mode</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 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="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="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>
+<a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-30" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-30', '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-31" class="py-name"><a title="paramiko.kex_gex._MSG_KEXDH_GEX_REQUEST" class="py-name" href="#" onclick="return doclink('link-31', '_MSG_KEXDH_GEX_REQUEST', 'link-14');">_MSG_KEXDH_GEX_REQUEST</a></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">m</tt><tt class="py-op">.</tt><tt id="link-32" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-32', '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-33" class="py-name"><a title="paramiko.kex_gex.KexGex.min_bits" class="py-name" href="#" onclick="return doclink('link-33', 'min_bits', 'link-16');">min_bits</a></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">m</tt><tt class="py-op">.</tt><tt id="link-34" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-34', '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-35" class="py-name"><a title="paramiko.kex_gex.KexGex.preferred_bits" class="py-name" href="#" onclick="return doclink('link-35', 'preferred_bits', 'link-18');">preferred_bits</a></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">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-28');">add_int</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.kex_gex.KexGex.max_bits" class="py-name" href="#" onclick="return doclink('link-37', 'max_bits', 'link-17');">max_bits</a></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 id="link-38" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-38', '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="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-39" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-39', '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-40" class="py-name"><a title="paramiko.kex_gex._MSG_KEXDH_GEX_GROUP" class="py-name" href="#" onclick="return doclink('link-40', '_MSG_KEXDH_GEX_GROUP', 'link-11');">_MSG_KEXDH_GEX_GROUP</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"> </tt>
+<a name="KexGex.parse_next"></a><div id="KexGex.parse_next-def"><a name="L76"></a><tt class="py-lineno"> 76</tt> <a class="py-toggle" href="#" id="KexGex.parse_next-toggle" onclick="return toggle('KexGex.parse_next');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.kex_gex.KexGex-class.html#parse_next">parse_next</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">ptype</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_next-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="KexGex.parse_next-expanded"><a name="L77"></a><tt class="py-lineno"> 77</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-41" class="py-name"><a title="paramiko.kex_gex._MSG_KEXDH_GEX_REQUEST" class="py-name" href="#" onclick="return doclink('link-41', '_MSG_KEXDH_GEX_REQUEST', 'link-14');">_MSG_KEXDH_GEX_REQUEST</a></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">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parse_kexdh_gex_request</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</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-42" class="py-name"><a title="paramiko.kex_gex._MSG_KEXDH_GEX_GROUP" class="py-name" href="#" onclick="return doclink('link-42', '_MSG_KEXDH_GEX_GROUP', 'link-11');">_MSG_KEXDH_GEX_GROUP</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">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parse_kexdh_gex_group</tt><tt class="py-op">(</tt><tt class="py-name">m</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">ptype</tt> <tt class="py-op">==</tt> <tt id="link-43" class="py-name"><a title="paramiko.kex_gex._MSG_KEXDH_GEX_INIT" class="py-name" href="#" onclick="return doclink('link-43', '_MSG_KEXDH_GEX_INIT', 'link-12');">_MSG_KEXDH_GEX_INIT</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-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parse_kexdh_gex_init</tt><tt class="py-op">(</tt><tt class="py-name">m</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">elif</tt> <tt class="py-name">ptype</tt> <tt class="py-op">==</tt> <tt id="link-44" class="py-name"><a title="paramiko.kex_gex._MSG_KEXDH_GEX_REPLY" class="py-name" href="#" onclick="return doclink('link-44', '_MSG_KEXDH_GEX_REPLY', 'link-13');">_MSG_KEXDH_GEX_REPLY</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">_parse_kexdh_gex_reply</tt><tt class="py-op">(</tt><tt class="py-name">m</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">elif</tt> <tt class="py-name">ptype</tt> <tt class="py-op">==</tt> <tt id="link-45" class="py-name"><a title="paramiko.kex_gex._MSG_KEXDH_GEX_REQUEST_OLD" class="py-name" href="#" onclick="return doclink('link-45', '_MSG_KEXDH_GEX_REQUEST_OLD', 'link-10');">_MSG_KEXDH_GEX_REQUEST_OLD</a></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">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parse_kexdh_gex_request_old</tt><tt class="py-op">(</tt><tt class="py-name">m</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-46" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-46', 'SSHException', 'link-9');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'KexGex asked to handle packet type %d'</tt> <tt class="py-op">%</tt> <tt class="py-name">ptype</tt><tt class="py-op">)</tt> </tt>
+</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="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="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>
+<a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"> <tt class="py-name">qmask</tt> <tt class="py-op">=</tt> <tt class="py-number">0xff</tt> </tt>
+<a name="L100"></a><tt class="py-lineno">100</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">qhbyte</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="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"> <tt class="py-name">qhbyte</tt> <tt class="py-op">&lt;&lt;=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"> <tt class="py-name">qmask</tt> <tt class="py-op">&gt;&gt;=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L103"></a><tt class="py-lineno">103</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="L104"></a><tt class="py-lineno">104</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-19');">transport</a></tt><tt class="py-op">.</tt><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
+paramiko.dsskey.randpool
+paramiko.hostkeys.randpool
+paramiko.kex_gex.randpool
+paramiko.kex_group1.randpool
+paramiko.packet.randpool
+paramiko.pkey.randpool
+paramiko.rsakey.randpool
+paramiko.server.randpool
+paramiko.sftp.randpool
+paramiko.sftp_attr.randpool
+paramiko.sftp_client.randpool
+paramiko.sftp_file.randpool
+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-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="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"> <tt class="py-name">x_bytes</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-19');">transport</a></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
+paramiko.dsskey.randpool
+paramiko.hostkeys.randpool
+paramiko.kex_gex.randpool
+paramiko.kex_group1.randpool
+paramiko.packet.randpool
+paramiko.pkey.randpool
+paramiko.rsakey.randpool
+paramiko.server.randpool
+paramiko.sftp.randpool
+paramiko.sftp_attr.randpool
+paramiko.sftp_client.randpool
+paramiko.sftp_file.randpool
+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-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">bytes</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">x_bytes</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_bytes</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">&amp;</tt> <tt class="py-name">qmask</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-name">x_bytes</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="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"> <tt class="py-name">x</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" 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-56', 'inflate_long', 'link-56');">inflate_long</a></tt><tt class="py-op">(</tt><tt class="py-name">x_bytes</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">x</tt> <tt class="py-op">&gt;</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">x</tt> <tt class="py-op">&lt;</tt> <tt class="py-name">q</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-keyword">break</tt> </tt>
+<a name="L110"></a><tt class="py-lineno">110</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">x</tt> </tt>
+</div><a name="L111"></a><tt class="py-lineno">111</tt> <tt class="py-line"> </tt>
+<a name="KexGex._parse_kexdh_gex_request"></a><div id="KexGex._parse_kexdh_gex_request-def"><a name="L112"></a><tt class="py-lineno">112</tt> <a class="py-toggle" href="#" id="KexGex._parse_kexdh_gex_request-toggle" onclick="return toggle('KexGex._parse_kexdh_gex_request');">-</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">_parse_kexdh_gex_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="KexGex._parse_kexdh_gex_request-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="KexGex._parse_kexdh_gex_request-expanded"><a name="L113"></a><tt class="py-lineno">113</tt> <tt class="py-line"> <tt class="py-name">minbits</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-57" 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-57', 'get_int', 'link-57');">get_int</a></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-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="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="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="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="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
+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-70', 'DEBUG', 'link-70');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Picking p (%d &lt;= %d &lt;= %d bits)'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">minbits</tt><tt class="py-op">,</tt> <tt class="py-name">preferredbits</tt><tt class="py-op">,</tt> <tt class="py-name">maxbits</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">g</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">pack</tt><tt class="py-op">.</tt><tt id="link-71" class="py-name" targets="Method paramiko.primes.ModulusPack.get_modulus()=paramiko.primes.ModulusPack-class.html#get_modulus"><a title="paramiko.primes.ModulusPack.get_modulus" class="py-name" href="#" onclick="return doclink('link-71', 'get_modulus', 'link-71');">get_modulus</a></tt><tt class="py-op">(</tt><tt class="py-name">minbits</tt><tt class="py-op">,</tt> <tt class="py-name">preferredbits</tt><tt class="py-op">,</tt> <tt class="py-name">maxbits</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">m</tt> <tt class="py-op">=</tt> <tt id="link-72" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-72', 'Message', 'link-6');">Message</a></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-name">m</tt><tt class="py-op">.</tt><tt id="link-73" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-73', '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-74" class="py-name"><a title="paramiko.kex_gex._MSG_KEXDH_GEX_GROUP" class="py-name" href="#" onclick="return doclink('link-74', '_MSG_KEXDH_GEX_GROUP', 'link-11');">_MSG_KEXDH_GEX_GROUP</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">m</tt><tt class="py-op">.</tt><tt id="link-75" 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-75', '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="L141"></a><tt class="py-lineno">141</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_mpint" class="py-name" href="#" onclick="return doclink('link-76', '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="L142"></a><tt class="py-lineno">142</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-77" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-77', '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="L143"></a><tt class="py-lineno">143</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-78" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-78', '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-79" class="py-name"><a title="paramiko.kex_gex._MSG_KEXDH_GEX_INIT" class="py-name" href="#" onclick="return doclink('link-79', '_MSG_KEXDH_GEX_INIT', 'link-12');">_MSG_KEXDH_GEX_INIT</a></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="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="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="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="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
+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-93', 'DEBUG', 'link-70');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Picking p (~ %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 id="link-94" class="py-name"><a title="paramiko.kex_gex.KexGex.preferred_bits" class="py-name" href="#" onclick="return doclink('link-94', 'preferred_bits', 'link-18');">preferred_bits</a></tt><tt class="py-op">,</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-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">p</tt> <tt class="py-op">=</tt> <tt class="py-name">pack</tt><tt class="py-op">.</tt><tt id="link-95" class="py-name"><a title="paramiko.primes.ModulusPack.get_modulus" class="py-name" href="#" onclick="return doclink('link-95', 'get_modulus', 'link-71');">get_modulus</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-96" class="py-name"><a title="paramiko.kex_gex.KexGex.min_bits" class="py-name" href="#" onclick="return doclink('link-96', 'min_bits', 'link-16');">min_bits</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-97" class="py-name"><a title="paramiko.kex_gex.KexGex.preferred_bits" class="py-name" href="#" onclick="return doclink('link-97', '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-98" class="py-name"><a title="paramiko.kex_gex.KexGex.max_bits" class="py-name" href="#" onclick="return doclink('link-98', 'max_bits', 'link-17');">max_bits</a></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">m</tt> <tt class="py-op">=</tt> <tt id="link-99" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-99', 'Message', 'link-6');">Message</a></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">m</tt><tt class="py-op">.</tt><tt id="link-100" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-100', '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-101" class="py-name"><a title="paramiko.kex_gex._MSG_KEXDH_GEX_GROUP" class="py-name" href="#" onclick="return doclink('link-101', '_MSG_KEXDH_GEX_GROUP', 'link-11');">_MSG_KEXDH_GEX_GROUP</a></tt><tt class="py-op">)</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">m</tt><tt class="py-op">.</tt><tt id="link-102" class="py-name"><a title="paramiko.Message.add_mpint" class="py-name" href="#" onclick="return doclink('link-102', '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="L162"></a><tt class="py-lineno">162</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_mpint" class="py-name" href="#" onclick="return doclink('link-103', '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="L163"></a><tt class="py-lineno">163</tt> <tt class="py-line"> <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-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="L164"></a><tt class="py-lineno">164</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-105" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-105', '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-106" class="py-name"><a title="paramiko.kex_gex._MSG_KEXDH_GEX_INIT" class="py-name" href="#" onclick="return doclink('link-106', '_MSG_KEXDH_GEX_INIT', 'link-12');">_MSG_KEXDH_GEX_INIT</a></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">old_style</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+</div><a name="L166"></a><tt class="py-lineno">166</tt> <tt class="py-line"> </tt>
+<a name="KexGex._parse_kexdh_gex_group"></a><div id="KexGex._parse_kexdh_gex_group-def"><a name="L167"></a><tt class="py-lineno">167</tt> <a class="py-toggle" href="#" id="KexGex._parse_kexdh_gex_group-toggle" onclick="return toggle('KexGex._parse_kexdh_gex_group');">-</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_group">_parse_kexdh_gex_group</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_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="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
+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-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="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>
+<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 id="link-118" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-118', '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="L182"></a><tt class="py-lineno">182</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-119" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-119', '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-120" class="py-name"><a title="paramiko.kex_gex._MSG_KEXDH_GEX_REPLY" class="py-name" href="#" onclick="return doclink('link-120', '_MSG_KEXDH_GEX_REPLY', 'link-13');">_MSG_KEXDH_GEX_REPLY</a></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="KexGex._parse_kexdh_gex_init"></a><div id="KexGex._parse_kexdh_gex_init-def"><a name="L184"></a><tt class="py-lineno">184</tt> <a class="py-toggle" href="#" id="KexGex._parse_kexdh_gex_init-toggle" onclick="return toggle('KexGex._parse_kexdh_gex_init');">-</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_init">_parse_kexdh_gex_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="KexGex._parse_kexdh_gex_init-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="KexGex._parse_kexdh_gex_init-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">e</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-121" class="py-name"><a title="paramiko.Message.get_mpint" class="py-name" href="#" onclick="return doclink('link-121', 'get_mpint', 'link-107');">get_mpint</a></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">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 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="L187"></a><tt class="py-lineno">187</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-122" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-122', '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="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">_generate_x</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">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 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="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="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>
+<a name="L196"></a><tt class="py-lineno">196</tt> <tt class="py-line"> <tt class="py-name">key</tt><tt class="py-op">)</tt> </tt>
+<a name="L197"></a><tt class="py-lineno">197</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="L198"></a><tt class="py-lineno">198</tt> <tt class="py-line"> <tt class="py-name">hm</tt><tt class="py-op">.</tt><tt id="link-131" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-131', '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-132" class="py-name"><a title="paramiko.kex_gex.KexGex.min_bits" class="py-name" href="#" onclick="return doclink('link-132', 'min_bits', 'link-16');">min_bits</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L199"></a><tt class="py-lineno">199</tt> <tt class="py-line"> <tt class="py-name">hm</tt><tt class="py-op">.</tt><tt id="link-133" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-133', '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-134" class="py-name"><a title="paramiko.kex_gex.KexGex.preferred_bits" class="py-name" href="#" onclick="return doclink('link-134', 'preferred_bits', 'link-18');">preferred_bits</a></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-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="L201"></a><tt class="py-lineno">201</tt> <tt class="py-line"> <tt class="py-name">hm</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-28');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-136" class="py-name"><a title="paramiko.kex_gex.KexGex.max_bits" class="py-name" href="#" onclick="return doclink('link-136', 'max_bits', 'link-17');">max_bits</a></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">hm</tt><tt class="py-op">.</tt><tt id="link-137" class="py-name"><a title="paramiko.Message.add_mpint" class="py-name" href="#" onclick="return doclink('link-137', '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="L203"></a><tt class="py-lineno">203</tt> <tt class="py-line"> <tt class="py-name">hm</tt><tt class="py-op">.</tt><tt id="link-138" class="py-name"><a title="paramiko.Message.add_mpint" class="py-name" href="#" onclick="return doclink('link-138', '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="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="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
+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.channel.randpool
+paramiko.client.randpool
+paramiko.common.randpool
+paramiko.dsskey.randpool
+paramiko.hostkeys.randpool
+paramiko.kex_gex.randpool
+paramiko.kex_group1.randpool
+paramiko.packet.randpool
+paramiko.pkey.randpool
+paramiko.rsakey.randpool
+paramiko.server.randpool
+paramiko.sftp.randpool
+paramiko.sftp_attr.randpool
+paramiko.sftp_client.randpool
+paramiko.sftp_file.randpool
+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>
+<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>
+</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>
+<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="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="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="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>
+</div></div><a name="L245"></a><tt class="py-lineno">245</tt> <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<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 Jul 6 18:30:38 2008
+ </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.kex_gex.KexGex-class.html b/docs/paramiko.kex_gex.KexGex-class.html
new file mode 100644
index 0000000..02b53fc
--- /dev/null
+++ b/docs/paramiko.kex_gex.KexGex-class.html
@@ -0,0 +1,276 @@
+<?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.kex_gex.KexGex</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.kex_gex-module.html" onclick="show_private();">Module&nbsp;kex_gex</a> ::
+ Class&nbsp;KexGex
+ </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.kex_gex.KexGex-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class KexGex</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.kex_gex-pysrc.html#KexGex">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+object --+
+ |
+ <strong class="uidshort">KexGex</strong>
+</pre>
+
+<hr />
+<!-- ==================== 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.kex_gex.KexGex-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">transport</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.kex_gex-pysrc.html#KexGex.__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="start_kex"></a><span class="summary-sig-name">start_kex</span>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">_test_old_style</span>=<span class="summary-sig-default">False</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.kex_gex-pysrc.html#KexGex.start_kex">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="parse_next"></a><span class="summary-sig-name">parse_next</span>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">ptype</span>,
+ <span class="summary-sig-arg">m</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.kex_gex-pysrc.html#KexGex.parse_next">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>__getattribute__</code>,
+ <code>__hash__</code>,
+ <code>__new__</code>,
+ <code>__reduce__</code>,
+ <code>__reduce_ex__</code>,
+ <code>__repr__</code>,
+ <code>__setattr__</code>,
+ <code>__str__</code>
+ </p>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS VARIABLES ==================== -->
+<a name="section-ClassVariables"></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 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="name"></a><span class="summary-name">name</span> = <code title="'diffie-hellman-group-exchange-sha1'"><code class="variable-quote">'</code><code class="variable-string">diffie-hellman-group-exchange-sha1</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="min_bits"></a><span class="summary-name">min_bits</span> = <code title="1024">1024</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="max_bits"></a><span class="summary-name">max_bits</span> = <code title="8192">8192</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="preferred_bits"></a><span class="summary-name">preferred_bits</span> = <code title="2048">2048</code>
+ </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">transport</span>)</span>
+ <br /><em class="fname">(Constructor)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.kex_gex-pysrc.html#KexGex.__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 Jul 6 18:30:30 2008
+ </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.kex_group1-module.html b/docs/paramiko.kex_group1-module.html
new file mode 100644
index 0000000..0c6b972
--- /dev/null
+++ b/docs/paramiko.kex_group1-module.html
@@ -0,0 +1,582 @@
+<?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.kex_group1</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> ::
+ Module&nbsp;kex_group1
+ </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.kex_group1-module.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module kex_group1</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.kex_group1-pysrc.html">source&nbsp;code</a></span></p>
+<p>Standard SSH key exchange (&quot;kex&quot; if you wanna sound cool).
+ Diffie-Hellman of 1024 bit key halves, using a known &quot;p&quot; prime
+ and &quot;g&quot; generator.</p>
+
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></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">Classes</span></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.kex_group1.KexGroup1-class.html" class="summary-name">KexGroup1</a>
+ </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 href="paramiko.kex_group1-module.html#P" class="summary-name">P</a> = <code title="1797693134862315907708391567937874531978602960487560117064444236841971\
+8021615851936894783379586492554150218056548598050364644054819923910005\
+0792877003355816639229553136239076508735759914822574862575007425302077\
+4477125895509579377784244424266173347276292993876687092056060502708108\
+42907692932019128194467627007">1797693134862315907708391567937874531978602960487560117064<code class="variable-ellipsis">...</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="G"></a><span class="summary-name">G</span> = <code title="2">2</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>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
+ <a name="AUTH_PARTIALLY_SUCCESSFUL"></a><span class="summary-name">AUTH_PARTIALLY_SUCCESSFUL</span> = <code title="1">1</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_SUCCESSFUL"></a><span class="summary-name">AUTH_SUCCESSFUL</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 href="paramiko.kex_group1-module.html#CONNECTION_FAILED_CODE" class="summary-name">CONNECTION_FAILED_CODE</a> = <code title="{1: 'Administratively prohibited',
+ 2: 'Connect failed',
+ 3: 'Unknown channel type',
+ 4: 'Resource shortage'}"><code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Administratively prohibited</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-op">:</code><code class="variable-ellipsis">...</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="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="DEBUG"></a><span class="summary-name">DEBUG</span> = <code title="10">10</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="DISCONNECT_AUTH_CANCELLED_BY_USER"></a><span class="summary-name">DISCONNECT_AUTH_CANCELLED_BY_USER</span> = <code title="13">13</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="DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE"></a><span class="summary-name">DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE</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="DISCONNECT_SERVICE_NOT_AVAILABLE"></a><span class="summary-name">DISCONNECT_SERVICE_NOT_AVAILABLE</span> = <code title="7">7</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="ERROR"></a><span class="summary-name">ERROR</span> = <code title="40">40</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="INFO"></a><span class="summary-name">INFO</span> = <code title="20">20</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="MSG_CHANNEL_CLOSE"></a><span class="summary-name">MSG_CHANNEL_CLOSE</span> = <code title="97">97</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="MSG_CHANNEL_DATA"></a><span class="summary-name">MSG_CHANNEL_DATA</span> = <code title="94">94</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="MSG_CHANNEL_EOF"></a><span class="summary-name">MSG_CHANNEL_EOF</span> = <code title="96">96</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="MSG_CHANNEL_EXTENDED_DATA"></a><span class="summary-name">MSG_CHANNEL_EXTENDED_DATA</span> = <code title="95">95</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="MSG_CHANNEL_FAILURE"></a><span class="summary-name">MSG_CHANNEL_FAILURE</span> = <code title="100">100</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="MSG_CHANNEL_OPEN"></a><span class="summary-name">MSG_CHANNEL_OPEN</span> = <code title="90">90</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="MSG_CHANNEL_OPEN_FAILURE"></a><span class="summary-name">MSG_CHANNEL_OPEN_FAILURE</span> = <code title="92">92</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="MSG_CHANNEL_OPEN_SUCCESS"></a><span class="summary-name">MSG_CHANNEL_OPEN_SUCCESS</span> = <code title="91">91</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="MSG_CHANNEL_REQUEST"></a><span class="summary-name">MSG_CHANNEL_REQUEST</span> = <code title="98">98</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="MSG_CHANNEL_SUCCESS"></a><span class="summary-name">MSG_CHANNEL_SUCCESS</span> = <code title="99">99</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="MSG_CHANNEL_WINDOW_ADJUST"></a><span class="summary-name">MSG_CHANNEL_WINDOW_ADJUST</span> = <code title="93">93</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="MSG_DEBUG"></a><span class="summary-name">MSG_DEBUG</span> = <code title="4">4</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="MSG_DISCONNECT"></a><span class="summary-name">MSG_DISCONNECT</span> = <code title="1">1</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="MSG_GLOBAL_REQUEST"></a><span class="summary-name">MSG_GLOBAL_REQUEST</span> = <code title="80">80</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="MSG_IGNORE"></a><span class="summary-name">MSG_IGNORE</span> = <code title="2">2</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="MSG_KEXINIT"></a><span class="summary-name">MSG_KEXINIT</span> = <code title="20">20</code>
+ </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.kex_group1-module.html#MSG_NAMES" class="summary-name">MSG_NAMES</a> = <code title="{1: 'disconnect',
+ 2: 'ignore',
+ 3: 'unimplemented',
+ 4: 'debug',
+ 5: 'service-request',
+ 6: 'service-accept',
+ 20: 'kexinit',
+ 21: 'newkeys',
+..."><code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">disconnect</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">ignore</code><code class="variable-quote">'</code><code class="variable-op">, </code>3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">unimplemented</code><code class="variable-quote">'</code><code class="variable-op">,</code><code class="variable-ellipsis">...</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="MSG_NEWKEYS"></a><span class="summary-name">MSG_NEWKEYS</span> = <code title="21">21</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="MSG_REQUEST_FAILURE"></a><span class="summary-name">MSG_REQUEST_FAILURE</span> = <code title="82">82</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="MSG_REQUEST_SUCCESS"></a><span class="summary-name">MSG_REQUEST_SUCCESS</span> = <code title="81">81</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="MSG_SERVICE_ACCEPT"></a><span class="summary-name">MSG_SERVICE_ACCEPT</span> = <code title="6">6</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="MSG_SERVICE_REQUEST"></a><span class="summary-name">MSG_SERVICE_REQUEST</span> = <code title="5">5</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="MSG_UNIMPLEMENTED"></a><span class="summary-name">MSG_UNIMPLEMENTED</span> = <code title="3">3</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="MSG_USERAUTH_BANNER"></a><span class="summary-name">MSG_USERAUTH_BANNER</span> = <code title="53">53</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="MSG_USERAUTH_FAILURE"></a><span class="summary-name">MSG_USERAUTH_FAILURE</span> = <code title="51">51</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="MSG_USERAUTH_INFO_REQUEST"></a><span class="summary-name">MSG_USERAUTH_INFO_REQUEST</span> = <code title="60">60</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="MSG_USERAUTH_INFO_RESPONSE"></a><span class="summary-name">MSG_USERAUTH_INFO_RESPONSE</span> = <code title="61">61</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="MSG_USERAUTH_PK_OK"></a><span class="summary-name">MSG_USERAUTH_PK_OK</span> = <code title="60">60</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="MSG_USERAUTH_REQUEST"></a><span class="summary-name">MSG_USERAUTH_REQUEST</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="MSG_USERAUTH_SUCCESS"></a><span class="summary-name">MSG_USERAUTH_SUCCESS</span> = <code title="52">52</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="OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED"></a><span class="summary-name">OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED</span> = <code title="1">1</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="OPEN_FAILED_CONNECT_FAILED"></a><span class="summary-name">OPEN_FAILED_CONNECT_FAILED</span> = <code title="2">2</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="OPEN_FAILED_RESOURCE_SHORTAGE"></a><span class="summary-name">OPEN_FAILED_RESOURCE_SHORTAGE</span> = <code title="4">4</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="OPEN_FAILED_UNKNOWN_CHANNEL_TYPE"></a><span class="summary-name">OPEN_FAILED_UNKNOWN_CHANNEL_TYPE</span> = <code title="3">3</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="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="PY22"></a><span class="summary-name">PY22</span> = <code title="False">False</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="WARNING"></a><span class="summary-name">WARNING</span> = <code title="30">30</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>
+</table>
+<!-- ==================== VARIABLES DETAILS ==================== -->
+<a name="section-VariablesDetails"></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">Variables Details</span></td>
+</tr>
+</table>
+<a name="P"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">P</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+1797693134862315907708391567937874531978602960487560117064444236841971<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
+8021615851936894783379586492554150218056548598050364644054819923910005<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
+0792877003355816639229553136239076508735759914822574862575007425302077<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
+4477125895509579377784244424266173347276292993876687092056060502708108<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
+42907692932019128194467627007
+</pre></td></tr></table>
+</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="CONNECTION_FAILED_CODE"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">CONNECTION_FAILED_CODE</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Administratively prohibited</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Connect failed</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Unknown channel type</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Resource shortage</code><code class="variable-quote">'</code><code class="variable-group">}</code>
+</pre></td></tr></table>
+</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="MSG_NAMES"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">MSG_NAMES</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">disconnect</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">ignore</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">unimplemented</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">debug</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 5<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">service-request</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 6<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">service-accept</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 20<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">kexinit</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 21<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">newkeys</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+ </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 Jul 6 18:30:27 2008
+ </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.kex_group1-pysrc.html b/docs/paramiko.kex_group1-pysrc.html
new file mode 100644
index 0000000..1d32b96
--- /dev/null
+++ b/docs/paramiko.kex_group1-pysrc.html
@@ -0,0 +1,312 @@
+<?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.kex_group1</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> ::
+ Module&nbsp;kex_group1
+ </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.kex_group1-pysrc.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</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="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>
+<a name="L22"></a><tt class="py-lineno"> 22</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L23"></a><tt class="py-lineno"> 23</tt> <tt class="py-line"> </tt>
+<a name="L24"></a><tt class="py-lineno"> 24</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>
+<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-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="L27"></a><tt class="py-lineno"> 27</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>
+<a name="L28"></a><tt class="py-lineno"> 28</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-4" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-4', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-5" class="py-name" targets="Module paramiko.message=paramiko.message-module.html"><a title="paramiko.message" class="py-name" href="#" onclick="return doclink('link-5', 'message', 'link-5');">message</a></tt> <tt class="py-keyword">import</tt> <tt id="link-6" class="py-name" targets="Class paramiko.Message=paramiko.Message-class.html"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-6', 'Message', 'link-6');">Message</a></tt> </tt>
+<a name="L29"></a><tt class="py-lineno"> 29</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-7" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-7', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-8" 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-8', 'ssh_exception', 'link-8');">ssh_exception</a></tt> <tt class="py-keyword">import</tt> <tt id="link-9" class="py-name" targets="Class paramiko.SSHException=paramiko.SSHException-class.html"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-9', 'SSHException', 'link-9');">SSHException</a></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>
+<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="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>
+<a name="KexGroup1"></a><div id="KexGroup1-def"><a name="L39"></a><tt class="py-lineno"> 39</tt> <a class="py-toggle" href="#" id="KexGroup1-toggle" onclick="return toggle('KexGroup1');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.kex_group1.KexGroup1-class.html">KexGroup1</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="KexGroup1-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="KexGroup1-expanded"><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 id="link-14" 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-14', 'name', 'link-14');">name</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'diffie-hellman-group1-sha1'</tt> </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt> <tt class="py-line"> </tt>
+<a name="KexGroup1.__init__"></a><div id="KexGroup1.__init__-def"><a name="L43"></a><tt class="py-lineno"> 43</tt> <a class="py-toggle" href="#" id="KexGroup1.__init__-toggle" onclick="return toggle('KexGroup1.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.kex_group1.KexGroup1-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="KexGroup1.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="KexGroup1.__init__-expanded"><a name="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</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 id="link-16" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-16', 'transport', 'link-15');">transport</a></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 class="py-name">x</tt> <tt class="py-op">=</tt> <tt class="py-number">0L</tt> </tt>
+<a name="L46"></a><tt class="py-lineno"> 46</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-number">0L</tt> </tt>
+<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">f</tt> <tt class="py-op">=</tt> <tt class="py-number">0L</tt> </tt>
+</div><a name="L48"></a><tt class="py-lineno"> 48</tt> <tt class="py-line"> </tt>
+<a name="KexGroup1.start_kex"></a><div id="KexGroup1.start_kex-def"><a name="L49"></a><tt class="py-lineno"> 49</tt> <a class="py-toggle" href="#" id="KexGroup1.start_kex-toggle" onclick="return toggle('KexGroup1.start_kex');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.kex_group1.KexGroup1-class.html#start_kex">start_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="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="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="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>
+<a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-28" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-28', '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="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-29" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-29', '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-30" class="py-name"><a title="paramiko.kex_group1._MSG_KEXDH_REPLY" class="py-name" href="#" onclick="return doclink('link-30', '_MSG_KEXDH_REPLY', 'link-11');">_MSG_KEXDH_REPLY</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"> </tt>
+<a name="KexGroup1.parse_next"></a><div id="KexGroup1.parse_next-def"><a name="L64"></a><tt class="py-lineno"> 64</tt> <a class="py-toggle" href="#" id="KexGroup1.parse_next-toggle" onclick="return toggle('KexGroup1.parse_next');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.kex_group1.KexGroup1-class.html#parse_next">parse_next</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">ptype</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_next-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="KexGroup1.parse_next-expanded"><a name="L65"></a><tt class="py-lineno"> 65</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-31" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-31', '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">ptype</tt> <tt class="py-op">==</tt> <tt id="link-32" class="py-name"><a title="paramiko.kex_group1._MSG_KEXDH_INIT" class="py-name" href="#" onclick="return doclink('link-32', '_MSG_KEXDH_INIT', 'link-10');">_MSG_KEXDH_INIT</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-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parse_kexdh_init</tt><tt class="py-op">(</tt><tt class="py-name">m</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-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-33" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-33', '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">ptype</tt> <tt class="py-op">==</tt> <tt id="link-34" class="py-name"><a title="paramiko.kex_group1._MSG_KEXDH_REPLY" class="py-name" href="#" onclick="return doclink('link-34', '_MSG_KEXDH_REPLY', 'link-11');">_MSG_KEXDH_REPLY</a></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">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parse_kexdh_reply</tt><tt class="py-op">(</tt><tt class="py-name">m</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">raise</tt> <tt id="link-35" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-35', 'SSHException', 'link-9');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'KexGroup1 asked to handle packet type %d'</tt> <tt class="py-op">%</tt> <tt class="py-name">ptype</tt><tt class="py-op">)</tt> </tt>
+</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="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="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
+paramiko.common.randpool
+paramiko.dsskey.randpool
+paramiko.hostkeys.randpool
+paramiko.kex_gex.randpool
+paramiko.kex_group1.randpool
+paramiko.packet.randpool
+paramiko.pkey.randpool
+paramiko.rsakey.randpool
+paramiko.server.randpool
+paramiko.sftp.randpool
+paramiko.sftp_attr.randpool
+paramiko.sftp_client.randpool
+paramiko.sftp_file.randpool
+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-37', 'randpool', 'link-37');">randpool</a></tt><tt class="py-op">.</tt><tt id="link-38" 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-38', 'stir', 'link-38');">stir</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">x_bytes</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.transport" class="py-name" href="#" onclick="return doclink('link-39', 'transport', 'link-15');">transport</a></tt><tt class="py-op">.</tt><tt id="link-40" class="py-name"><a title="paramiko.auth_handler.randpool
+paramiko.channel.randpool
+paramiko.client.randpool
+paramiko.common.randpool
+paramiko.dsskey.randpool
+paramiko.hostkeys.randpool
+paramiko.kex_gex.randpool
+paramiko.kex_group1.randpool
+paramiko.packet.randpool
+paramiko.pkey.randpool
+paramiko.rsakey.randpool
+paramiko.server.randpool
+paramiko.sftp.randpool
+paramiko.sftp_attr.randpool
+paramiko.sftp_client.randpool
+paramiko.sftp_file.randpool
+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-40', 'randpool', 'link-37');">randpool</a></tt><tt class="py-op">.</tt><tt id="link-41" 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-41', 'get_bytes', 'link-41');">get_bytes</a></tt><tt class="py-op">(</tt><tt class="py-number">128</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_bytes</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_bytes</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">&amp;</tt> <tt class="py-number">0x7f</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-name">x_bytes</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="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">x_bytes</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-string">'\x7F\xFF\xFF\xFF\xFF\xFF\xFF\xFF'</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> \ </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"> <tt class="py-op">(</tt><tt class="py-name">x_bytes</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-string">'\x00\x00\x00\x00\x00\x00\x00\x00'</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">break</tt> </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</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 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.inflate_long()=paramiko.util-module.html#inflate_long"><a title="paramiko.util.inflate_long" class="py-name" href="#" onclick="return doclink('link-43', 'inflate_long', 'link-43');">inflate_long</a></tt><tt class="py-op">(</tt><tt class="py-name">x_bytes</tt><tt class="py-op">)</tt> </tt>
+</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="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="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>
+<a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"> <tt class="py-name">hm</tt><tt class="py-op">.</tt><tt id="link-56" 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-56', 'add_string', 'link-56');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">host_key</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">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>
+</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="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="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
+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.channel.randpool
+paramiko.client.randpool
+paramiko.common.randpool
+paramiko.dsskey.randpool
+paramiko.hostkeys.randpool
+paramiko.kex_gex.randpool
+paramiko.kex_group1.randpool
+paramiko.packet.randpool
+paramiko.pkey.randpool
+paramiko.rsakey.randpool
+paramiko.server.randpool
+paramiko.sftp.randpool
+paramiko.sftp_attr.randpool
+paramiko.sftp_client.randpool
+paramiko.sftp_file.randpool
+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>
+<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>
+</div></div><a name="L137"></a><tt class="py-lineno">137</tt> <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<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 Jul 6 18:30:31 2008
+ </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.kex_group1.KexGroup1-class.html b/docs/paramiko.kex_group1.KexGroup1-class.html
new file mode 100644
index 0000000..14f5fee
--- /dev/null
+++ b/docs/paramiko.kex_group1.KexGroup1-class.html
@@ -0,0 +1,254 @@
+<?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.kex_group1.KexGroup1</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.kex_group1-module.html" onclick="show_private();">Module&nbsp;kex_group1</a> ::
+ Class&nbsp;KexGroup1
+ </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.kex_group1.KexGroup1-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class KexGroup1</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.kex_group1-pysrc.html#KexGroup1">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+object --+
+ |
+ <strong class="uidshort">KexGroup1</strong>
+</pre>
+
+<hr />
+<!-- ==================== 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.kex_group1.KexGroup1-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">transport</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.kex_group1-pysrc.html#KexGroup1.__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="start_kex"></a><span class="summary-sig-name">start_kex</span>(<span class="summary-sig-arg">self</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.kex_group1-pysrc.html#KexGroup1.start_kex">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="parse_next"></a><span class="summary-sig-name">parse_next</span>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">ptype</span>,
+ <span class="summary-sig-arg">m</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.kex_group1-pysrc.html#KexGroup1.parse_next">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>__getattribute__</code>,
+ <code>__hash__</code>,
+ <code>__new__</code>,
+ <code>__reduce__</code>,
+ <code>__reduce_ex__</code>,
+ <code>__repr__</code>,
+ <code>__setattr__</code>,
+ <code>__str__</code>
+ </p>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS VARIABLES ==================== -->
+<a name="section-ClassVariables"></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 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="name"></a><span class="summary-name">name</span> = <code title="'diffie-hellman-group1-sha1'"><code class="variable-quote">'</code><code class="variable-string">diffie-hellman-group1-sha1</code><code class="variable-quote">'</code></code>
+ </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">transport</span>)</span>
+ <br /><em class="fname">(Constructor)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.kex_group1-pysrc.html#KexGroup1.__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 Jul 6 18:30:30 2008
+ </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.logging22-module.html b/docs/paramiko.logging22-module.html
new file mode 100644
index 0000000..4788f11
--- /dev/null
+++ b/docs/paramiko.logging22-module.html
@@ -0,0 +1,203 @@
+<?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.logging22</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> ::
+ Module&nbsp;logging22
+ </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.logging22-module.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module logging22</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.logging22-pysrc.html">source&nbsp;code</a></span></p>
+<p>Stub out logging on python &lt; 2.3.</p>
+
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></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">Classes</span></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.logging22.logger-class.html" class="summary-name">logger</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.logging22.StreamHandler-class.html" class="summary-name">StreamHandler</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.logging22.Formatter-class.html" class="summary-name">Formatter</a>
+ </td>
+ </tr>
+</table>
+<!-- ==================== FUNCTIONS ==================== -->
+<a name="section-Functions"></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">Functions</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="getLogger"></a><span class="summary-sig-name">getLogger</span>(<span class="summary-sig-arg">name</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.logging22-pysrc.html#getLogger">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </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="DEBUG"></a><span class="summary-name">DEBUG</span> = <code title="10">10</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="INFO"></a><span class="summary-name">INFO</span> = <code title="20">20</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="WARNING"></a><span class="summary-name">WARNING</span> = <code title="30">30</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="ERROR"></a><span class="summary-name">ERROR</span> = <code title="40">40</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="CRITICAL"></a><span class="summary-name">CRITICAL</span> = <code title="50">50</code>
+ </td>
+ </tr>
+</table>
+<!-- ==================== 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 Jul 6 18:30:27 2008
+ </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.logging22-pysrc.html b/docs/paramiko.logging22-pysrc.html
new file mode 100644
index 0000000..32675d6
--- /dev/null
+++ b/docs/paramiko.logging22-pysrc.html
@@ -0,0 +1,302 @@
+<?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.logging22</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> ::
+ Module&nbsp;logging22
+ </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.logging22-pysrc.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</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="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>
+<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>
+<a name="L24"></a><tt class="py-lineno">24</tt> <tt class="py-line"><tt id="link-0" 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
+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-0', 'DEBUG', 'link-0');">DEBUG</a></tt> <tt class="py-op">=</tt> <tt class="py-number">10</tt> </tt>
+<a name="L25"></a><tt class="py-lineno">25</tt> <tt class="py-line"><tt id="link-1" 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
+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-1', 'INFO', 'link-1');">INFO</a></tt> <tt class="py-op">=</tt> <tt class="py-number">20</tt> </tt>
+<a name="L26"></a><tt class="py-lineno">26</tt> <tt class="py-line"><tt id="link-2" 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
+paramiko.dsskey.WARNING
+paramiko.hostkeys.WARNING
+paramiko.kex_gex.WARNING
+paramiko.kex_group1.WARNING
+paramiko.logging22.WARNING
+paramiko.packet.WARNING
+paramiko.pkey.WARNING
+paramiko.rsakey.WARNING
+paramiko.server.WARNING
+paramiko.sftp.WARNING
+paramiko.sftp_attr.WARNING
+paramiko.sftp_client.WARNING
+paramiko.sftp_file.WARNING
+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-2', 'WARNING', 'link-2');">WARNING</a></tt> <tt class="py-op">=</tt> <tt class="py-number">30</tt> </tt>
+<a name="L27"></a><tt class="py-lineno">27</tt> <tt class="py-line"><tt id="link-3" 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
+paramiko.dsskey.ERROR
+paramiko.hostkeys.ERROR
+paramiko.kex_gex.ERROR
+paramiko.kex_group1.ERROR
+paramiko.logging22.ERROR
+paramiko.packet.ERROR
+paramiko.pkey.ERROR
+paramiko.rsakey.ERROR
+paramiko.server.ERROR
+paramiko.sftp.ERROR
+paramiko.sftp_attr.ERROR
+paramiko.sftp_client.ERROR
+paramiko.sftp_file.ERROR
+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-3', 'ERROR', 'link-3');">ERROR</a></tt> <tt class="py-op">=</tt> <tt class="py-number">40</tt> </tt>
+<a name="L28"></a><tt class="py-lineno">28</tt> <tt class="py-line"><tt id="link-4" class="py-name" targets="Variable paramiko.auth_handler.CRITICAL=paramiko.auth_handler-module.html#CRITICAL,Variable paramiko.channel.CRITICAL=paramiko.channel-module.html#CRITICAL,Variable paramiko.client.CRITICAL=paramiko.client-module.html#CRITICAL,Variable paramiko.common.CRITICAL=paramiko.common-module.html#CRITICAL,Variable paramiko.dsskey.CRITICAL=paramiko.dsskey-module.html#CRITICAL,Variable paramiko.hostkeys.CRITICAL=paramiko.hostkeys-module.html#CRITICAL,Variable paramiko.kex_gex.CRITICAL=paramiko.kex_gex-module.html#CRITICAL,Variable paramiko.kex_group1.CRITICAL=paramiko.kex_group1-module.html#CRITICAL,Variable paramiko.logging22.CRITICAL=paramiko.logging22-module.html#CRITICAL,Variable paramiko.packet.CRITICAL=paramiko.packet-module.html#CRITICAL,Variable paramiko.pkey.CRITICAL=paramiko.pkey-module.html#CRITICAL,Variable paramiko.rsakey.CRITICAL=paramiko.rsakey-module.html#CRITICAL,Variable paramiko.server.CRITICAL=paramiko.server-module.html#CRITICAL,Variable paramiko.sftp.CRITICAL=paramiko.sftp-module.html#CRITICAL,Variable paramiko.sftp_attr.CRITICAL=paramiko.sftp_attr-module.html#CRITICAL,Variable paramiko.sftp_client.CRITICAL=paramiko.sftp_client-module.html#CRITICAL,Variable paramiko.sftp_file.CRITICAL=paramiko.sftp_file-module.html#CRITICAL,Variable paramiko.sftp_handle.CRITICAL=paramiko.sftp_handle-module.html#CRITICAL,Variable paramiko.sftp_server.CRITICAL=paramiko.sftp_server-module.html#CRITICAL,Variable paramiko.sftp_si.CRITICAL=paramiko.sftp_si-module.html#CRITICAL,Variable paramiko.transport.CRITICAL=paramiko.transport-module.html#CRITICAL,Variable paramiko.util.CRITICAL=paramiko.util-module.html#CRITICAL"><a title="paramiko.auth_handler.CRITICAL
+paramiko.channel.CRITICAL
+paramiko.client.CRITICAL
+paramiko.common.CRITICAL
+paramiko.dsskey.CRITICAL
+paramiko.hostkeys.CRITICAL
+paramiko.kex_gex.CRITICAL
+paramiko.kex_group1.CRITICAL
+paramiko.logging22.CRITICAL
+paramiko.packet.CRITICAL
+paramiko.pkey.CRITICAL
+paramiko.rsakey.CRITICAL
+paramiko.server.CRITICAL
+paramiko.sftp.CRITICAL
+paramiko.sftp_attr.CRITICAL
+paramiko.sftp_client.CRITICAL
+paramiko.sftp_file.CRITICAL
+paramiko.sftp_handle.CRITICAL
+paramiko.sftp_server.CRITICAL
+paramiko.sftp_si.CRITICAL
+paramiko.transport.CRITICAL
+paramiko.util.CRITICAL" class="py-name" href="#" onclick="return doclink('link-4', 'CRITICAL', 'link-4');">CRITICAL</a></tt> <tt class="py-op">=</tt> <tt class="py-number">50</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>
+<a name="getLogger"></a><div id="getLogger-def"><a name="L31"></a><tt class="py-lineno">31</tt> <a class="py-toggle" href="#" id="getLogger-toggle" onclick="return toggle('getLogger');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.logging22-module.html#getLogger">getLogger</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="getLogger-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="getLogger-expanded"><a name="L32"></a><tt class="py-lineno">32</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-5" class="py-name" targets="Variable paramiko.logging22._logger=paramiko.logging22-module.html#_logger"><a title="paramiko.logging22._logger" class="py-name" href="#" onclick="return doclink('link-5', '_logger', 'link-5');">_logger</a></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>
+<a name="logger"></a><div id="logger-def"><a name="L35"></a><tt class="py-lineno">35</tt> <a class="py-toggle" href="#" id="logger-toggle" onclick="return toggle('logger');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.logging22.logger-class.html">logger</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="logger-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="logger-expanded"><a name="logger.__init__"></a><div id="logger.__init__-def"><a name="L36"></a><tt class="py-lineno">36</tt> <a class="py-toggle" href="#" id="logger.__init__-toggle" onclick="return toggle('logger.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.logging22.logger-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="logger.__init__-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="logger.__init__-expanded"><a name="L37"></a><tt class="py-lineno">37</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">handlers</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt> <tt class="py-op">]</tt> </tt>
+<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">level</tt> <tt class="py-op">=</tt> <tt id="link-6" class="py-name"><a title="paramiko.auth_handler.ERROR
+paramiko.channel.ERROR
+paramiko.client.ERROR
+paramiko.common.ERROR
+paramiko.dsskey.ERROR
+paramiko.hostkeys.ERROR
+paramiko.kex_gex.ERROR
+paramiko.kex_group1.ERROR
+paramiko.logging22.ERROR
+paramiko.packet.ERROR
+paramiko.pkey.ERROR
+paramiko.rsakey.ERROR
+paramiko.server.ERROR
+paramiko.sftp.ERROR
+paramiko.sftp_attr.ERROR
+paramiko.sftp_client.ERROR
+paramiko.sftp_file.ERROR
+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-6', 'ERROR', 'link-3');">ERROR</a></tt> </tt>
+</div><a name="L39"></a><tt class="py-lineno">39</tt> <tt class="py-line"> </tt>
+<a name="logger.setLevel"></a><div id="logger.setLevel-def"><a name="L40"></a><tt class="py-lineno">40</tt> <a class="py-toggle" href="#" id="logger.setLevel-toggle" onclick="return toggle('logger.setLevel');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.logging22.logger-class.html#setLevel">setLevel</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-op">:</tt> </tt>
+</div><div id="logger.setLevel-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="logger.setLevel-expanded"><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">level</tt> <tt class="py-op">=</tt> <tt class="py-name">level</tt> </tt>
+</div><a name="L42"></a><tt class="py-lineno">42</tt> <tt class="py-line"> </tt>
+<a name="logger.addHandler"></a><div id="logger.addHandler-def"><a name="L43"></a><tt class="py-lineno">43</tt> <a class="py-toggle" href="#" id="logger.addHandler-toggle" onclick="return toggle('logger.addHandler');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.logging22.logger-class.html#addHandler">addHandler</a><tt class="py-op">(</tt><tt class="py-param">self</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="logger.addHandler-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="logger.addHandler-expanded"><a name="L44"></a><tt class="py-lineno">44</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">handlers</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>
+</div><a name="L45"></a><tt class="py-lineno">45</tt> <tt class="py-line"> </tt>
+<a name="logger.addFilter"></a><div id="logger.addFilter-def"><a name="L46"></a><tt class="py-lineno">46</tt> <a class="py-toggle" href="#" id="logger.addFilter-toggle" onclick="return toggle('logger.addFilter');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.logging22.logger-class.html#addFilter">addFilter</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">filter</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="logger.addFilter-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="logger.addFilter-expanded"><a name="L47"></a><tt class="py-lineno">47</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L48"></a><tt class="py-lineno">48</tt> <tt class="py-line"> </tt>
+<a name="logger.log"></a><div id="logger.log-def"><a name="L49"></a><tt class="py-lineno">49</tt> <a class="py-toggle" href="#" id="logger.log-toggle" onclick="return toggle('logger.log');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.logging22.logger-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">text</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="logger.log-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="logger.log-expanded"><a name="L50"></a><tt class="py-lineno">50</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">level</tt> <tt class="py-op">&gt;=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">level</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">h</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">handlers</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">h</tt><tt class="py-op">.</tt><tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-7" 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-7', 'write', 'link-7');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">text</tt> <tt class="py-op">+</tt> <tt class="py-string">'\n'</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">h</tt><tt class="py-op">.</tt><tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-8" class="py-name" targets="Method paramiko.BufferedFile.flush()=paramiko.BufferedFile-class.html#flush"><a title="paramiko.BufferedFile.flush" class="py-name" href="#" onclick="return doclink('link-8', 'flush', 'link-8');">flush</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L54"></a><tt class="py-lineno">54</tt> <tt class="py-line"> </tt>
+<a name="StreamHandler"></a><div id="StreamHandler-def"><a name="L55"></a><tt class="py-lineno">55</tt> <a class="py-toggle" href="#" id="StreamHandler-toggle" onclick="return toggle('StreamHandler');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.logging22.StreamHandler-class.html">StreamHandler</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="StreamHandler-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="StreamHandler-expanded"><a name="StreamHandler.__init__"></a><div id="StreamHandler.__init__-def"><a name="L56"></a><tt class="py-lineno">56</tt> <a class="py-toggle" href="#" id="StreamHandler.__init__-toggle" onclick="return toggle('StreamHandler.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.logging22.StreamHandler-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">f</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="StreamHandler.__init__-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="StreamHandler.__init__-expanded"><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">f</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt> </tt>
+</div><a name="L58"></a><tt class="py-lineno">58</tt> <tt class="py-line"> </tt>
+<a name="StreamHandler.setFormatter"></a><div id="StreamHandler.setFormatter-def"><a name="L59"></a><tt class="py-lineno">59</tt> <a class="py-toggle" href="#" id="StreamHandler.setFormatter-toggle" onclick="return toggle('StreamHandler.setFormatter');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.logging22.StreamHandler-class.html#setFormatter">setFormatter</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">f</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="StreamHandler.setFormatter-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="StreamHandler.setFormatter-expanded"><a name="L60"></a><tt class="py-lineno">60</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+</div></div><a name="L61"></a><tt class="py-lineno">61</tt> <tt class="py-line"> </tt>
+<a name="Formatter"></a><div id="Formatter-def"><a name="L62"></a><tt class="py-lineno">62</tt> <a class="py-toggle" href="#" id="Formatter-toggle" onclick="return toggle('Formatter');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.logging22.Formatter-class.html">Formatter</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="Formatter-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="Formatter-expanded"><a name="Formatter.__init__"></a><div id="Formatter.__init__-def"><a name="L63"></a><tt class="py-lineno">63</tt> <a class="py-toggle" href="#" id="Formatter.__init__-toggle" onclick="return toggle('Formatter.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.logging22.Formatter-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">x</tt><tt class="py-op">,</tt> <tt class="py-param">y</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Formatter.__init__-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="Formatter.__init__-expanded"><a name="L64"></a><tt class="py-lineno">64</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+</div></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 id="link-9" class="py-name"><a title="paramiko.logging22._logger" class="py-name" href="#" onclick="return doclink('link-9', '_logger', 'link-5');">_logger</a></tt> <tt class="py-op">=</tt> <tt id="link-10" 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-10', 'logger', 'link-10');">logger</a></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><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<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 Jul 6 18:30:34 2008
+ </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.logging22.Formatter-class.html b/docs/paramiko.logging22.Formatter-class.html
new file mode 100644
index 0000000..a125a5d
--- /dev/null
+++ b/docs/paramiko.logging22.Formatter-class.html
@@ -0,0 +1,206 @@
+<?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.logging22.Formatter</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.logging22-module.html">Module&nbsp;logging22</a> ::
+ Class&nbsp;Formatter
+ </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.logging22.Formatter-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class Formatter</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.logging22-pysrc.html#Formatter">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+object --+
+ |
+ <strong class="uidshort">Formatter</strong>
+</pre>
+
+<hr />
+<!-- ==================== 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.logging22.Formatter-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">x</span>,
+ <span class="summary-sig-arg">y</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.logging22-pysrc.html#Formatter.__init__">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>__getattribute__</code>,
+ <code>__hash__</code>,
+ <code>__new__</code>,
+ <code>__reduce__</code>,
+ <code>__reduce_ex__</code>,
+ <code>__repr__</code>,
+ <code>__setattr__</code>,
+ <code>__str__</code>
+ </p>
+ </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">x</span>,
+ <span class="sig-arg">y</span>)</span>
+ <br /><em class="fname">(Constructor)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.logging22-pysrc.html#Formatter.__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 Jul 6 18:30:30 2008
+ </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.logging22.StreamHandler-class.html b/docs/paramiko.logging22.StreamHandler-class.html
new file mode 100644
index 0000000..b00bc52
--- /dev/null
+++ b/docs/paramiko.logging22.StreamHandler-class.html
@@ -0,0 +1,221 @@
+<?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.logging22.StreamHandler</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.logging22-module.html">Module&nbsp;logging22</a> ::
+ Class&nbsp;StreamHandler
+ </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.logging22.StreamHandler-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class StreamHandler</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.logging22-pysrc.html#StreamHandler">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+object --+
+ |
+ <strong class="uidshort">StreamHandler</strong>
+</pre>
+
+<hr />
+<!-- ==================== 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.logging22.StreamHandler-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">f</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.logging22-pysrc.html#StreamHandler.__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="setFormatter"></a><span class="summary-sig-name">setFormatter</span>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">f</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.logging22-pysrc.html#StreamHandler.setFormatter">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>__getattribute__</code>,
+ <code>__hash__</code>,
+ <code>__new__</code>,
+ <code>__reduce__</code>,
+ <code>__reduce_ex__</code>,
+ <code>__repr__</code>,
+ <code>__setattr__</code>,
+ <code>__str__</code>
+ </p>
+ </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">f</span>)</span>
+ <br /><em class="fname">(Constructor)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.logging22-pysrc.html#StreamHandler.__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 Jul 6 18:30:30 2008
+ </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.logging22.logger-class.html b/docs/paramiko.logging22.logger-class.html
new file mode 100644
index 0000000..56195b7
--- /dev/null
+++ b/docs/paramiko.logging22.logger-class.html
@@ -0,0 +1,271 @@
+<?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.logging22.logger</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.logging22-module.html">Module&nbsp;logging22</a> ::
+ Class&nbsp;logger
+ </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.logging22.logger-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class logger</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.logging22-pysrc.html#logger">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+object --+
+ |
+ <strong class="uidshort">logger</strong>
+</pre>
+
+<hr />
+<!-- ==================== 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.logging22.logger-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</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.logging22-pysrc.html#logger.__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="setLevel"></a><span class="summary-sig-name">setLevel</span>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">level</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.logging22-pysrc.html#logger.setLevel">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="addHandler"></a><span class="summary-sig-name">addHandler</span>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">h</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.logging22-pysrc.html#logger.addHandler">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="addFilter"></a><span class="summary-sig-name">addFilter</span>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">filter</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.logging22-pysrc.html#logger.addFilter">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="log"></a><span class="summary-sig-name">log</span>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">level</span>,
+ <span class="summary-sig-arg">text</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.logging22-pysrc.html#logger.log">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>__getattribute__</code>,
+ <code>__hash__</code>,
+ <code>__new__</code>,
+ <code>__reduce__</code>,
+ <code>__reduce_ex__</code>,
+ <code>__repr__</code>,
+ <code>__setattr__</code>,
+ <code>__str__</code>
+ </p>
+ </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>
+ <br /><em class="fname">(Constructor)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.logging22-pysrc.html#logger.__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 Jul 6 18:30:30 2008
+ </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.message-module.html b/docs/paramiko.message-module.html
new file mode 100644
index 0000000..0d0fa78
--- /dev/null
+++ b/docs/paramiko.message-module.html
@@ -0,0 +1,104 @@
+<?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.message</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> ::
+ Module&nbsp;message
+ </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.message-module.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<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>
+
+<!-- ==================== 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 Jul 6 18:30:27 2008
+ </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.message-pysrc.html b/docs/paramiko.message-pysrc.html
new file mode 100644
index 0000000..a612fd0
--- /dev/null
+++ b/docs/paramiko.message-pysrc.html
@@ -0,0 +1,428 @@
+<?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.message</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> ::
+ Module&nbsp;message
+ </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.message-pysrc.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</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="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>
+<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">import</tt> <tt class="py-name">struct</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">cStringIO</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-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-keyword">import</tt> <tt id="link-1" class="py-name" targets="Module paramiko.util=paramiko.util-module.html"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-1', 'util', 'link-1');">util</a></tt> </tt>
+<a name="L27"></a><tt class="py-lineno"> 27</tt> <tt class="py-line"> </tt>
+<a name="L28"></a><tt class="py-lineno"> 28</tt> <tt class="py-line"> </tt>
+<a name="Message"></a><div id="Message-def"><a name="L29"></a><tt class="py-lineno"> 29</tt> <a class="py-toggle" href="#" id="Message-toggle" onclick="return toggle('Message');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.message.Message-class.html">Message</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="Message-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Message-expanded"><a name="L30"></a><tt class="py-lineno"> 30</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L31"></a><tt class="py-lineno"> 31</tt> <tt class="py-line"><tt class="py-docstring"> An SSH2 I{Message} is a stream of bytes that encodes some combination of</tt> </tt>
+<a name="L32"></a><tt class="py-lineno"> 32</tt> <tt class="py-line"><tt class="py-docstring"> strings, integers, bools, and infinite-precision integers (known in python</tt> </tt>
+<a name="L33"></a><tt class="py-lineno"> 33</tt> <tt class="py-line"><tt class="py-docstring"> as I{long}s). This class builds or breaks down such a byte stream.</tt> </tt>
+<a name="L34"></a><tt class="py-lineno"> 34</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L35"></a><tt class="py-lineno"> 35</tt> <tt class="py-line"><tt class="py-docstring"> Normally you don't need to deal with anything this low-level, but it's</tt> </tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line"><tt class="py-docstring"> exposed for people implementing custom extensions, or features that</tt> </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt> <tt class="py-line"><tt class="py-docstring"> paramiko doesn't support yet.</tt> </tt>
+<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>
+<a name="Message.__init__"></a><div id="Message.__init__-def"><a name="L40"></a><tt class="py-lineno"> 40</tt> <a class="py-toggle" href="#" id="Message.__init__-toggle" onclick="return toggle('Message.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.message.Message-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">content</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="Message.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Message.__init__-expanded"><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-docstring"> Create a new SSH2 Message.</tt> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"><tt class="py-docstring"> @param content: the byte stream to use as the Message content (passed</tt> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt> <tt class="py-line"><tt class="py-docstring"> in only when decomposing a Message).</tt> </tt>
+<a name="L46"></a><tt class="py-lineno"> 46</tt> <tt class="py-line"><tt class="py-docstring"> @type content: string</tt> </tt>
+<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-keyword">if</tt> <tt class="py-name">content</tt> <tt class="py-op">!=</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<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 id="link-2" class="py-name" targets="Module paramiko.packet=paramiko.packet-module.html"><a title="paramiko.packet" class="py-name" href="#" onclick="return doclink('link-2', 'packet', 'link-2');">packet</a></tt> <tt class="py-op">=</tt> <tt class="py-name">cStringIO</tt><tt class="py-op">.</tt><tt class="py-name">StringIO</tt><tt class="py-op">(</tt><tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
+<a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"> <tt class="py-keyword">else</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 id="link-3" class="py-name"><a title="paramiko.packet" class="py-name" href="#" onclick="return doclink('link-3', 'packet', 'link-2');">packet</a></tt> <tt class="py-op">=</tt> <tt class="py-name">cStringIO</tt><tt class="py-op">.</tt><tt class="py-name">StringIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L52"></a><tt class="py-lineno"> 52</tt> <tt class="py-line"> </tt>
+<a name="Message.__str__"></a><div id="Message.__str__-def"><a name="L53"></a><tt class="py-lineno"> 53</tt> <a class="py-toggle" href="#" id="Message.__str__-toggle" onclick="return toggle('Message.__str__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.message.Message-class.html#__str__">__str__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Message.__str__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Message.__str__-expanded"><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-docstring"> Return the byte stream content of this Message, as a string.</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-docstring"> @return: the contents of this Message.</tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: string</tt> </tt>
+<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-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-4" class="py-name"><a title="paramiko.packet" class="py-name" href="#" onclick="return doclink('link-4', 'packet', 'link-2');">packet</a></tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"> </tt>
+<a name="Message.__repr__"></a><div id="Message.__repr__-def"><a name="L62"></a><tt class="py-lineno"> 62</tt> <a class="py-toggle" href="#" id="Message.__repr__-toggle" onclick="return toggle('Message.__repr__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.message.Message-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="Message.__repr__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Message.__repr__-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"> Returns a string representation of this object, for debugging.</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"> @rtype: string</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-keyword">return</tt> <tt class="py-string">'paramiko.Message('</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-5" class="py-name"><a title="paramiko.packet" class="py-name" href="#" onclick="return doclink('link-5', 'packet', 'link-2');">packet</a></tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-string">')'</tt> </tt>
+</div><a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"> </tt>
+<a name="Message.rewind"></a><div id="Message.rewind-def"><a name="L70"></a><tt class="py-lineno"> 70</tt> <a class="py-toggle" href="#" id="Message.rewind-toggle" onclick="return toggle('Message.rewind');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.message.Message-class.html#rewind">rewind</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Message.rewind-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Message.rewind-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"> Rewind the message to the beginning as if no items had been parsed</tt> </tt>
+<a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"><tt class="py-docstring"> out of it yet.</tt> </tt>
+<a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"><tt class="py-docstring"> """</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-6" class="py-name"><a title="paramiko.packet" class="py-name" href="#" onclick="return doclink('link-6', 'packet', 'link-2');">packet</a></tt><tt class="py-op">.</tt><tt id="link-7" 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-7', 'seek', 'link-7');">seek</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"> </tt>
+<a name="Message.get_remainder"></a><div id="Message.get_remainder-def"><a name="L77"></a><tt class="py-lineno"> 77</tt> <a class="py-toggle" href="#" id="Message.get_remainder-toggle" onclick="return toggle('Message.get_remainder');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.message.Message-class.html#get_remainder">get_remainder</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Message.get_remainder-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Message.get_remainder-expanded"><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 class="py-docstring"> Return the bytes of this Message that haven't already been parsed and</tt> </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"><tt class="py-docstring"> returned.</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-docstring"> @return: a string of the bytes not parsed yet.</tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: string</tt> </tt>
+<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-name">position</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-8" class="py-name"><a title="paramiko.packet" class="py-name" href="#" onclick="return doclink('link-8', 'packet', 'link-2');">packet</a></tt><tt class="py-op">.</tt><tt id="link-9" 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-9', 'tell', 'link-9');">tell</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-name">remainder</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-10" class="py-name"><a title="paramiko.packet" class="py-name" href="#" onclick="return doclink('link-10', 'packet', 'link-2');">packet</a></tt><tt class="py-op">.</tt><tt id="link-11" 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-11', 'read', 'link-11');">read</a></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-name">self</tt><tt class="py-op">.</tt><tt id="link-12" class="py-name"><a title="paramiko.packet" class="py-name" href="#" onclick="return doclink('link-12', 'packet', 'link-2');">packet</a></tt><tt class="py-op">.</tt><tt id="link-13" class="py-name"><a title="paramiko.BufferedFile.seek
+paramiko.SFTPFile.seek" class="py-name" href="#" onclick="return doclink('link-13', 'seek', 'link-7');">seek</a></tt><tt class="py-op">(</tt><tt class="py-name">position</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">return</tt> <tt class="py-name">remainder</tt> </tt>
+</div><a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"> </tt>
+<a name="Message.get_so_far"></a><div id="Message.get_so_far-def"><a name="L90"></a><tt class="py-lineno"> 90</tt> <a class="py-toggle" href="#" id="Message.get_so_far-toggle" onclick="return toggle('Message.get_so_far');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.message.Message-class.html#get_so_far">get_so_far</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Message.get_so_far-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Message.get_so_far-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"> Returns the bytes of this Message that have been parsed and returned.</tt> </tt>
+<a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"><tt class="py-docstring"> The string passed into a Message's constructor can be regenerated by</tt> </tt>
+<a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"><tt class="py-docstring"> concatenating C{get_so_far} and L{get_remainder}.</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"> @return: a string of the bytes parsed so far.</tt> </tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: string</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-name">position</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-14" class="py-name"><a title="paramiko.packet" class="py-name" href="#" onclick="return doclink('link-14', 'packet', 'link-2');">packet</a></tt><tt class="py-op">.</tt><tt id="link-15" class="py-name"><a title="paramiko.BufferedFile.tell" class="py-name" href="#" onclick="return doclink('link-15', 'tell', 'link-9');">tell</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">self</tt><tt class="py-op">.</tt><tt id="link-16" class="py-name" targets="Method paramiko.Message.rewind()=paramiko.Message-class.html#rewind"><a title="paramiko.Message.rewind" class="py-name" href="#" onclick="return doclink('link-16', 'rewind', 'link-16');">rewind</a></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-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-17" class="py-name"><a title="paramiko.packet" class="py-name" href="#" onclick="return doclink('link-17', 'packet', 'link-2');">packet</a></tt><tt class="py-op">.</tt><tt id="link-18" class="py-name"><a title="paramiko.BufferedFile.read
+paramiko.SFTPHandle.read
+paramiko.buffered_pipe.BufferedPipe.read" class="py-name" href="#" onclick="return doclink('link-18', 'read', 'link-11');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">position</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="Message.get_bytes"></a><div id="Message.get_bytes-def"><a name="L103"></a><tt class="py-lineno">103</tt> <a class="py-toggle" href="#" id="Message.get_bytes-toggle" onclick="return toggle('Message.get_bytes');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.message.Message-class.html#get_bytes">get_bytes</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="Message.get_bytes-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Message.get_bytes-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 the next C{n} bytes of the Message, without decomposing into</tt> </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"><tt class="py-docstring"> an int, string, etc. Just the raw bytes are returned.</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"> @return: a string of the next C{n} bytes of the Message, or a string</tt> </tt>
+<a name="L109"></a><tt class="py-lineno">109</tt> <tt class="py-line"><tt class="py-docstring"> of C{n} zero bytes, if there aren't C{n} bytes remaining.</tt> </tt>
+<a name="L110"></a><tt class="py-lineno">110</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: string</tt> </tt>
+<a name="L111"></a><tt class="py-lineno">111</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L112"></a><tt class="py-lineno">112</tt> <tt class="py-line"> <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-19" class="py-name"><a title="paramiko.packet" class="py-name" href="#" onclick="return doclink('link-19', 'packet', 'link-2');">packet</a></tt><tt class="py-op">.</tt><tt id="link-20" class="py-name"><a title="paramiko.BufferedFile.read
+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="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>
+</div><div id="Message.get_byte-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Message.get_byte-expanded"><a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"><tt class="py-docstring"> Return the next byte of the Message, without decomposing it. This</tt> </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt> <tt class="py-line"><tt class="py-docstring"> is equivalent to L{get_bytes(1)&lt;get_bytes&gt;}.</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-docstring"> @return: the next byte of the Message, or C{'\000'} if there aren't</tt> </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt> <tt class="py-line"><tt class="py-docstring"> any bytes remaining.</tt> </tt>
+<a name="L124"></a><tt class="py-lineno">124</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: string</tt> </tt>
+<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-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-21" 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-21', 'get_bytes', 'link-21');">get_bytes</a></tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L127"></a><tt class="py-lineno">127</tt> <tt class="py-line"> </tt>
+<a name="Message.get_boolean"></a><div id="Message.get_boolean-def"><a name="L128"></a><tt class="py-lineno">128</tt> <a class="py-toggle" href="#" id="Message.get_boolean-toggle" onclick="return toggle('Message.get_boolean');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.message.Message-class.html#get_boolean">get_boolean</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Message.get_boolean-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Message.get_boolean-expanded"><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"> Fetch a boolean from the stream.</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"> @return: C{True} or C{False} (from the Message).</tt> </tt>
+<a name="L133"></a><tt class="py-lineno">133</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: bool</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-name">b</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-22" class="py-name"><a title="paramiko.Message.get_bytes
+paramiko.rng.StrongLockingRandomPool.get_bytes" class="py-name" href="#" onclick="return doclink('link-22', 'get_bytes', 'link-21');">get_bytes</a></tt><tt class="py-op">(</tt><tt class="py-number">1</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">return</tt> <tt class="py-name">b</tt> <tt class="py-op">!=</tt> <tt class="py-string">'\x00'</tt> </tt>
+</div><a name="L137"></a><tt class="py-lineno">137</tt> <tt class="py-line"> </tt>
+<a name="Message.get_int"></a><div id="Message.get_int-def"><a name="L138"></a><tt class="py-lineno">138</tt> <a class="py-toggle" href="#" id="Message.get_int-toggle" onclick="return toggle('Message.get_int');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.message.Message-class.html#get_int">get_int</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Message.get_int-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Message.get_int-expanded"><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"> Fetch an int from the stream.</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"> @return: a 32-bit unsigned integer.</tt> </tt>
+<a name="L143"></a><tt class="py-lineno">143</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: int</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-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">self</tt><tt class="py-op">.</tt><tt id="link-23" class="py-name"><a title="paramiko.Message.get_bytes
+paramiko.rng.StrongLockingRandomPool.get_bytes" class="py-name" href="#" onclick="return doclink('link-23', 'get_bytes', 'link-21');">get_bytes</a></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>
+</div><a name="L146"></a><tt class="py-lineno">146</tt> <tt class="py-line"> </tt>
+<a name="Message.get_int64"></a><div id="Message.get_int64-def"><a name="L147"></a><tt class="py-lineno">147</tt> <a class="py-toggle" href="#" id="Message.get_int64-toggle" onclick="return toggle('Message.get_int64');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.message.Message-class.html#get_int64">get_int64</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Message.get_int64-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Message.get_int64-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"> Fetch a 64-bit int from the stream.</tt> </tt>
+<a name="L150"></a><tt class="py-lineno">150</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L151"></a><tt class="py-lineno">151</tt> <tt class="py-line"><tt class="py-docstring"> @return: a 64-bit unsigned integer.</tt> </tt>
+<a name="L152"></a><tt class="py-lineno">152</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: long</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-keyword">return</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;Q'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-24" class="py-name"><a title="paramiko.Message.get_bytes
+paramiko.rng.StrongLockingRandomPool.get_bytes" class="py-name" href="#" onclick="return doclink('link-24', 'get_bytes', 'link-21');">get_bytes</a></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-op">[</tt><tt class="py-number">0</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="Message.get_mpint"></a><div id="Message.get_mpint-def"><a name="L156"></a><tt class="py-lineno">156</tt> <a class="py-toggle" href="#" id="Message.get_mpint-toggle" onclick="return toggle('Message.get_mpint');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.message.Message-class.html#get_mpint">get_mpint</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Message.get_mpint-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Message.get_mpint-expanded"><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-docstring"> Fetch a long int (mpint) from the stream.</tt> </tt>
+<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-docstring"> @return: an arbitrary-length integer.</tt> </tt>
+<a name="L161"></a><tt class="py-lineno">161</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: long</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-keyword">return</tt> <tt id="link-25" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-25', 'util', 'link-1');">util</a></tt><tt class="py-op">.</tt><tt id="link-26" 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-26', 'inflate_long', 'link-26');">inflate_long</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-27" 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-27', 'get_string', 'link-27');">get_string</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L164"></a><tt class="py-lineno">164</tt> <tt class="py-line"> </tt>
+<a name="Message.get_string"></a><div id="Message.get_string-def"><a name="L165"></a><tt class="py-lineno">165</tt> <a class="py-toggle" href="#" id="Message.get_string-toggle" onclick="return toggle('Message.get_string');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.message.Message-class.html#get_string">get_string</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Message.get_string-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Message.get_string-expanded"><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"> Fetch a string from the stream. This could be a byte string and may</tt> </tt>
+<a name="L168"></a><tt class="py-lineno">168</tt> <tt class="py-line"><tt class="py-docstring"> contain unprintable characters. (It's not unheard of for a string to</tt> </tt>
+<a name="L169"></a><tt class="py-lineno">169</tt> <tt class="py-line"><tt class="py-docstring"> contain another byte-stream Message.)</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"> @return: a string.</tt> </tt>
+<a name="L172"></a><tt class="py-lineno">172</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: string</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-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-28" class="py-name"><a title="paramiko.Message.get_bytes
+paramiko.rng.StrongLockingRandomPool.get_bytes" class="py-name" href="#" onclick="return doclink('link-28', 'get_bytes', 'link-21');">get_bytes</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" 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-29', 'get_int', 'link-29');">get_int</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L175"></a><tt class="py-lineno">175</tt> <tt class="py-line"> </tt>
+<a name="Message.get_list"></a><div id="Message.get_list-def"><a name="L176"></a><tt class="py-lineno">176</tt> <a class="py-toggle" href="#" id="Message.get_list-toggle" onclick="return toggle('Message.get_list');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.message.Message-class.html#get_list">get_list</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Message.get_list-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Message.get_list-expanded"><a name="L177"></a><tt class="py-lineno">177</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L178"></a><tt class="py-lineno">178</tt> <tt class="py-line"><tt class="py-docstring"> Fetch a list of strings from the stream. These are trivially encoded</tt> </tt>
+<a name="L179"></a><tt class="py-lineno">179</tt> <tt class="py-line"><tt class="py-docstring"> as comma-separated values in a string.</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"> @return: a list of strings.</tt> </tt>
+<a name="L182"></a><tt class="py-lineno">182</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: list of strings</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-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-30" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-30', 'get_string', 'link-27');">get_string</a></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">','</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="Message.add_bytes"></a><div id="Message.add_bytes-def"><a name="L186"></a><tt class="py-lineno">186</tt> <a class="py-toggle" href="#" id="Message.add_bytes-toggle" onclick="return toggle('Message.add_bytes');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.message.Message-class.html#add_bytes">add_bytes</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">b</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Message.add_bytes-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Message.add_bytes-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"> Write bytes to the stream, without any formatting.</tt> </tt>
+<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"> @param b: bytes to add</tt> </tt>
+<a name="L191"></a><tt class="py-lineno">191</tt> <tt class="py-line"><tt class="py-docstring"> @type b: str</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-name">self</tt><tt class="py-op">.</tt><tt id="link-31" class="py-name"><a title="paramiko.packet" class="py-name" href="#" onclick="return doclink('link-31', 'packet', 'link-2');">packet</a></tt><tt class="py-op">.</tt><tt id="link-32" 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-32', 'write', 'link-32');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">b</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">self</tt> </tt>
+</div><a name="L195"></a><tt class="py-lineno">195</tt> <tt class="py-line"> </tt>
+<a name="Message.add_byte"></a><div id="Message.add_byte-def"><a name="L196"></a><tt class="py-lineno">196</tt> <a class="py-toggle" href="#" id="Message.add_byte-toggle" onclick="return toggle('Message.add_byte');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.message.Message-class.html#add_byte">add_byte</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">b</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Message.add_byte-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Message.add_byte-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"> Write a single byte to the stream, without any formatting.</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"> @param b: byte to add</tt> </tt>
+<a name="L201"></a><tt class="py-lineno">201</tt> <tt class="py-line"><tt class="py-docstring"> @type b: str</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-name">self</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-2');">packet</a></tt><tt class="py-op">.</tt><tt id="link-34" class="py-name"><a title="paramiko.BufferedFile.write
+paramiko.SFTPHandle.write" class="py-name" href="#" onclick="return doclink('link-34', 'write', 'link-32');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">b</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">return</tt> <tt class="py-name">self</tt> </tt>
+</div><a name="L205"></a><tt class="py-lineno">205</tt> <tt class="py-line"> </tt>
+<a name="Message.add_boolean"></a><div id="Message.add_boolean-def"><a name="L206"></a><tt class="py-lineno">206</tt> <a class="py-toggle" href="#" id="Message.add_boolean-toggle" onclick="return toggle('Message.add_boolean');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.message.Message-class.html#add_boolean">add_boolean</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">b</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Message.add_boolean-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Message.add_boolean-expanded"><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"> Add a boolean value to the stream.</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 b: boolean value to add</tt> </tt>
+<a name="L211"></a><tt class="py-lineno">211</tt> <tt class="py-line"><tt class="py-docstring"> @type b: bool</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">if</tt> <tt class="py-name">b</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 id="link-35" 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-35', 'add_byte', 'link-35');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-string">'\x01'</tt><tt class="py-op">)</tt> </tt>
+<a name="L215"></a><tt class="py-lineno">215</tt> <tt class="py-line"> <tt class="py-keyword">else</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 id="link-36" class="py-name"><a title="paramiko.Message.add_byte" class="py-name" href="#" onclick="return doclink('link-36', 'add_byte', 'link-35');">add_byte</a></tt><tt class="py-op">(</tt><tt class="py-string">'\x00'</tt><tt class="py-op">)</tt> </tt>
+<a name="L217"></a><tt class="py-lineno">217</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt> </tt>
+</div><a name="L218"></a><tt class="py-lineno">218</tt> <tt class="py-line"> </tt>
+<a name="Message.add_int"></a><div id="Message.add_int-def"><a name="L219"></a><tt class="py-lineno">219</tt> <a class="py-toggle" href="#" id="Message.add_int-toggle" onclick="return toggle('Message.add_int');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.message.Message-class.html#add_int">add_int</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="Message.add_int-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Message.add_int-expanded"><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"> Add an integer to the stream.</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 n: integer to add</tt> </tt>
+<a name="L224"></a><tt class="py-lineno">224</tt> <tt class="py-line"><tt class="py-docstring"> @type n: int</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 id="link-37" class="py-name"><a title="paramiko.packet" class="py-name" href="#" onclick="return doclink('link-37', 'packet', 'link-2');">packet</a></tt><tt class="py-op">.</tt><tt id="link-38" class="py-name"><a title="paramiko.BufferedFile.write
+paramiko.SFTPHandle.write" class="py-name" href="#" onclick="return doclink('link-38', 'write', 'link-32');">write</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;I'</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="L227"></a><tt class="py-lineno">227</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt> </tt>
+</div><a name="L228"></a><tt class="py-lineno">228</tt> <tt class="py-line"> </tt>
+<a name="Message.add_int64"></a><div id="Message.add_int64-def"><a name="L229"></a><tt class="py-lineno">229</tt> <a class="py-toggle" href="#" id="Message.add_int64-toggle" onclick="return toggle('Message.add_int64');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.message.Message-class.html#add_int64">add_int64</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="Message.add_int64-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Message.add_int64-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"> Add a 64-bit int to the stream.</tt> </tt>
+<a name="L232"></a><tt class="py-lineno">232</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L233"></a><tt class="py-lineno">233</tt> <tt class="py-line"><tt class="py-docstring"> @param n: long int to add</tt> </tt>
+<a name="L234"></a><tt class="py-lineno">234</tt> <tt class="py-line"><tt class="py-docstring"> @type n: long</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-name">self</tt><tt class="py-op">.</tt><tt id="link-39" class="py-name"><a title="paramiko.packet" class="py-name" href="#" onclick="return doclink('link-39', 'packet', 'link-2');">packet</a></tt><tt class="py-op">.</tt><tt id="link-40" class="py-name"><a title="paramiko.BufferedFile.write
+paramiko.SFTPHandle.write" class="py-name" href="#" onclick="return doclink('link-40', 'write', 'link-32');">write</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;Q'</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="L237"></a><tt class="py-lineno">237</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">self</tt> </tt>
+</div><a name="L238"></a><tt class="py-lineno">238</tt> <tt class="py-line"> </tt>
+<a name="Message.add_mpint"></a><div id="Message.add_mpint-def"><a name="L239"></a><tt class="py-lineno">239</tt> <a class="py-toggle" href="#" id="Message.add_mpint-toggle" onclick="return toggle('Message.add_mpint');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.message.Message-class.html#add_mpint">add_mpint</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">z</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Message.add_mpint-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Message.add_mpint-expanded"><a name="L240"></a><tt class="py-lineno">240</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L241"></a><tt class="py-lineno">241</tt> <tt class="py-line"><tt class="py-docstring"> Add a long int to the stream, encoded as an infinite-precision</tt> </tt>
+<a name="L242"></a><tt class="py-lineno">242</tt> <tt class="py-line"><tt class="py-docstring"> integer. This method only works on positive numbers.</tt> </tt>
+<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"> @param z: long int to add</tt> </tt>
+<a name="L245"></a><tt class="py-lineno">245</tt> <tt class="py-line"><tt class="py-docstring"> @type z: long</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-name">self</tt><tt class="py-op">.</tt><tt id="link-41" 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-41', 'add_string', 'link-41');">add_string</a></tt><tt class="py-op">(</tt><tt id="link-42" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-42', 'util', 'link-1');">util</a></tt><tt class="py-op">.</tt><tt id="link-43" 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-43', 'deflate_long', 'link-43');">deflate_long</a></tt><tt class="py-op">(</tt><tt class="py-name">z</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-keyword">return</tt> <tt class="py-name">self</tt> </tt>
+</div><a name="L249"></a><tt class="py-lineno">249</tt> <tt class="py-line"> </tt>
+<a name="Message.add_string"></a><div id="Message.add_string-def"><a name="L250"></a><tt class="py-lineno">250</tt> <a class="py-toggle" href="#" id="Message.add_string-toggle" onclick="return toggle('Message.add_string');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.message.Message-class.html#add_string">add_string</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="Message.add_string-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Message.add_string-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"> Add a string to the stream.</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-docstring"> @param s: string to add</tt> </tt>
+<a name="L255"></a><tt class="py-lineno">255</tt> <tt class="py-line"><tt class="py-docstring"> @type s: str</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-name">self</tt><tt class="py-op">.</tt><tt id="link-44" 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-44', 'add_int', 'link-44');">add_int</a></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>
+<a name="L258"></a><tt class="py-lineno">258</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-45" class="py-name"><a title="paramiko.packet" class="py-name" href="#" onclick="return doclink('link-45', 'packet', 'link-2');">packet</a></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-32');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">s</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">return</tt> <tt class="py-name">self</tt> </tt>
+</div><a name="L260"></a><tt class="py-lineno">260</tt> <tt class="py-line"> </tt>
+<a name="Message.add_list"></a><div id="Message.add_list-def"><a name="L261"></a><tt class="py-lineno">261</tt> <a class="py-toggle" href="#" id="Message.add_list-toggle" onclick="return toggle('Message.add_list');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.message.Message-class.html#add_list">add_list</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">l</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Message.add_list-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Message.add_list-expanded"><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"> Add a list of strings to the stream. They are encoded identically to</tt> </tt>
+<a name="L264"></a><tt class="py-lineno">264</tt> <tt class="py-line"><tt class="py-docstring"> a single string of values separated by commas. (Yes, really, that's</tt> </tt>
+<a name="L265"></a><tt class="py-lineno">265</tt> <tt class="py-line"><tt class="py-docstring"> how SSH2 does it.)</tt> </tt>
+<a name="L266"></a><tt class="py-lineno">266</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L267"></a><tt class="py-lineno">267</tt> <tt class="py-line"><tt class="py-docstring"> @param l: list of strings to add</tt> </tt>
+<a name="L268"></a><tt class="py-lineno">268</tt> <tt class="py-line"><tt class="py-docstring"> @type l: list(str)</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-name">self</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-41');">add_string</a></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">l</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-keyword">return</tt> <tt class="py-name">self</tt> </tt>
+</div><a name="L272"></a><tt class="py-lineno">272</tt> <tt class="py-line"> </tt>
+<a name="Message._add"></a><div id="Message._add-def"><a name="L273"></a><tt class="py-lineno">273</tt> <a class="py-toggle" href="#" id="Message._add-toggle" onclick="return toggle('Message._add');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.message.Message-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">i</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Message._add-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Message._add-expanded"><a name="L274"></a><tt class="py-lineno">274</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">i</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="L275"></a><tt class="py-lineno">275</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-48" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-48', 'add_string', 'link-41');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">i</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">elif</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">i</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="L277"></a><tt class="py-lineno">277</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-49" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-49', 'add_int', 'link-44');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">i</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">elif</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">i</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="L279"></a><tt class="py-lineno">279</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">0xffffffffL</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">self</tt><tt class="py-op">.</tt><tt id="link-50" 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-50', 'add_mpint', 'link-50');">add_mpint</a></tt><tt class="py-op">(</tt><tt class="py-name">i</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">else</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">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-51" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-51', 'add_int', 'link-44');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">i</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">elif</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">i</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-name">bool</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">self</tt><tt class="py-op">.</tt><tt id="link-52" 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-52', 'add_boolean', 'link-52');">add_boolean</a></tt><tt class="py-op">(</tt><tt class="py-name">i</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">elif</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">i</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="L286"></a><tt class="py-lineno">286</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-53" 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-53', 'add_list', 'link-53');">add_list</a></tt><tt class="py-op">(</tt><tt class="py-name">i</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">else</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">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-string">'Unknown type'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L289"></a><tt class="py-lineno">289</tt> <tt class="py-line"> </tt>
+<a name="Message.add"></a><div id="Message.add-def"><a name="L290"></a><tt class="py-lineno">290</tt> <a class="py-toggle" href="#" id="Message.add-toggle" onclick="return toggle('Message.add');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.message.Message-class.html#add">add</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">seq</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Message.add-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Message.add-expanded"><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"> Add a sequence of items to the stream. The values are encoded based</tt> </tt>
+<a name="L293"></a><tt class="py-lineno">293</tt> <tt class="py-line"><tt class="py-docstring"> on their type: str, int, bool, list, or long.</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-docstring"> @param seq: the sequence of items</tt> </tt>
+<a name="L296"></a><tt class="py-lineno">296</tt> <tt class="py-line"><tt class="py-docstring"> @type seq: sequence</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"> @bug: longs are encoded non-deterministically. Don't use this method.</tt> </tt>
+<a name="L299"></a><tt class="py-lineno">299</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L300"></a><tt class="py-lineno">300</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">seq</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">self</tt><tt class="py-op">.</tt><tt class="py-name">_add</tt><tt class="py-op">(</tt><tt class="py-name">item</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L302"></a><tt class="py-lineno">302</tt> <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<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 Jul 6 18:30:37 2008
+ </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.packet-module.html b/docs/paramiko.packet-module.html
new file mode 100644
index 0000000..ae7f499
--- /dev/null
+++ b/docs/paramiko.packet-module.html
@@ -0,0 +1,574 @@
+<?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.packet</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> ::
+ Module&nbsp;packet
+ </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.packet-module.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module packet</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.packet-pysrc.html">source&nbsp;code</a></span></p>
+<p>Packetizer.</p>
+
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></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">Classes</span></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.packet.NeedRekeyException-class.html" class="summary-name">NeedRekeyException</a>
+ </td>
+ </tr>
+</table>
+<!-- ==================== FUNCTIONS ==================== -->
+<a name="section-Functions"></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">Functions</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="compute_hmac"></a><span class="summary-sig-name">compute_hmac</span>(<span class="summary-sig-arg">key</span>,
+ <span class="summary-sig-arg">message</span>,
+ <span class="summary-sig-arg">digest_class</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.packet-pysrc.html#compute_hmac">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </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="got_r_hmac"></a><span class="summary-name">got_r_hmac</span> = <code title="False">False</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>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">&nbsp;</span>
+ </td><td class="summary">
+ <a name="AUTH_PARTIALLY_SUCCESSFUL"></a><span class="summary-name">AUTH_PARTIALLY_SUCCESSFUL</span> = <code title="1">1</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_SUCCESSFUL"></a><span class="summary-name">AUTH_SUCCESSFUL</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 href="paramiko.packet-module.html#CONNECTION_FAILED_CODE" class="summary-name">CONNECTION_FAILED_CODE</a> = <code title="{1: 'Administratively prohibited',
+ 2: 'Connect failed',
+ 3: 'Unknown channel type',
+ 4: 'Resource shortage'}"><code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Administratively prohibited</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-op">:</code><code class="variable-ellipsis">...</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="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="DEBUG"></a><span class="summary-name">DEBUG</span> = <code title="10">10</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="DISCONNECT_AUTH_CANCELLED_BY_USER"></a><span class="summary-name">DISCONNECT_AUTH_CANCELLED_BY_USER</span> = <code title="13">13</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="DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE"></a><span class="summary-name">DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE</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="DISCONNECT_SERVICE_NOT_AVAILABLE"></a><span class="summary-name">DISCONNECT_SERVICE_NOT_AVAILABLE</span> = <code title="7">7</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="ERROR"></a><span class="summary-name">ERROR</span> = <code title="40">40</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="INFO"></a><span class="summary-name">INFO</span> = <code title="20">20</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="MSG_CHANNEL_CLOSE"></a><span class="summary-name">MSG_CHANNEL_CLOSE</span> = <code title="97">97</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="MSG_CHANNEL_DATA"></a><span class="summary-name">MSG_CHANNEL_DATA</span> = <code title="94">94</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="MSG_CHANNEL_EOF"></a><span class="summary-name">MSG_CHANNEL_EOF</span> = <code title="96">96</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="MSG_CHANNEL_EXTENDED_DATA"></a><span class="summary-name">MSG_CHANNEL_EXTENDED_DATA</span> = <code title="95">95</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="MSG_CHANNEL_FAILURE"></a><span class="summary-name">MSG_CHANNEL_FAILURE</span> = <code title="100">100</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="MSG_CHANNEL_OPEN"></a><span class="summary-name">MSG_CHANNEL_OPEN</span> = <code title="90">90</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="MSG_CHANNEL_OPEN_FAILURE"></a><span class="summary-name">MSG_CHANNEL_OPEN_FAILURE</span> = <code title="92">92</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="MSG_CHANNEL_OPEN_SUCCESS"></a><span class="summary-name">MSG_CHANNEL_OPEN_SUCCESS</span> = <code title="91">91</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="MSG_CHANNEL_REQUEST"></a><span class="summary-name">MSG_CHANNEL_REQUEST</span> = <code title="98">98</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="MSG_CHANNEL_SUCCESS"></a><span class="summary-name">MSG_CHANNEL_SUCCESS</span> = <code title="99">99</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="MSG_CHANNEL_WINDOW_ADJUST"></a><span class="summary-name">MSG_CHANNEL_WINDOW_ADJUST</span> = <code title="93">93</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="MSG_DEBUG"></a><span class="summary-name">MSG_DEBUG</span> = <code title="4">4</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="MSG_DISCONNECT"></a><span class="summary-name">MSG_DISCONNECT</span> = <code title="1">1</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="MSG_GLOBAL_REQUEST"></a><span class="summary-name">MSG_GLOBAL_REQUEST</span> = <code title="80">80</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="MSG_IGNORE"></a><span class="summary-name">MSG_IGNORE</span> = <code title="2">2</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="MSG_KEXINIT"></a><span class="summary-name">MSG_KEXINIT</span> = <code title="20">20</code>
+ </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.packet-module.html#MSG_NAMES" class="summary-name">MSG_NAMES</a> = <code title="{1: 'disconnect',
+ 2: 'ignore',
+ 3: 'unimplemented',
+ 4: 'debug',
+ 5: 'service-request',
+ 6: 'service-accept',
+ 20: 'kexinit',
+ 21: 'newkeys',
+..."><code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">disconnect</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">ignore</code><code class="variable-quote">'</code><code class="variable-op">, </code>3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">unimplemented</code><code class="variable-quote">'</code><code class="variable-op">,</code><code class="variable-ellipsis">...</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="MSG_NEWKEYS"></a><span class="summary-name">MSG_NEWKEYS</span> = <code title="21">21</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="MSG_REQUEST_FAILURE"></a><span class="summary-name">MSG_REQUEST_FAILURE</span> = <code title="82">82</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="MSG_REQUEST_SUCCESS"></a><span class="summary-name">MSG_REQUEST_SUCCESS</span> = <code title="81">81</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="MSG_SERVICE_ACCEPT"></a><span class="summary-name">MSG_SERVICE_ACCEPT</span> = <code title="6">6</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="MSG_SERVICE_REQUEST"></a><span class="summary-name">MSG_SERVICE_REQUEST</span> = <code title="5">5</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="MSG_UNIMPLEMENTED"></a><span class="summary-name">MSG_UNIMPLEMENTED</span> = <code title="3">3</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="MSG_USERAUTH_BANNER"></a><span class="summary-name">MSG_USERAUTH_BANNER</span> = <code title="53">53</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="MSG_USERAUTH_FAILURE"></a><span class="summary-name">MSG_USERAUTH_FAILURE</span> = <code title="51">51</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="MSG_USERAUTH_INFO_REQUEST"></a><span class="summary-name">MSG_USERAUTH_INFO_REQUEST</span> = <code title="60">60</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="MSG_USERAUTH_INFO_RESPONSE"></a><span class="summary-name">MSG_USERAUTH_INFO_RESPONSE</span> = <code title="61">61</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="MSG_USERAUTH_PK_OK"></a><span class="summary-name">MSG_USERAUTH_PK_OK</span> = <code title="60">60</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="MSG_USERAUTH_REQUEST"></a><span class="summary-name">MSG_USERAUTH_REQUEST</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="MSG_USERAUTH_SUCCESS"></a><span class="summary-name">MSG_USERAUTH_SUCCESS</span> = <code title="52">52</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="OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED"></a><span class="summary-name">OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED</span> = <code title="1">1</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="OPEN_FAILED_CONNECT_FAILED"></a><span class="summary-name">OPEN_FAILED_CONNECT_FAILED</span> = <code title="2">2</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="OPEN_FAILED_RESOURCE_SHORTAGE"></a><span class="summary-name">OPEN_FAILED_RESOURCE_SHORTAGE</span> = <code title="4">4</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="OPEN_FAILED_UNKNOWN_CHANNEL_TYPE"></a><span class="summary-name">OPEN_FAILED_UNKNOWN_CHANNEL_TYPE</span> = <code title="3">3</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="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="PY22"></a><span class="summary-name">PY22</span> = <code title="False">False</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="WARNING"></a><span class="summary-name">WARNING</span> = <code title="30">30</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>
+</table>
+<!-- ==================== VARIABLES DETAILS ==================== -->
+<a name="section-VariablesDetails"></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">Variables Details</span></td>
+</tr>
+</table>
+<a name="CONNECTION_FAILED_CODE"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">CONNECTION_FAILED_CODE</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Administratively prohibited</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Connect failed</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Unknown channel type</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Resource shortage</code><code class="variable-quote">'</code><code class="variable-group">}</code>
+</pre></td></tr></table>
+</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="MSG_NAMES"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">MSG_NAMES</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">disconnect</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">ignore</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">unimplemented</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">debug</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 5<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">service-request</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 6<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">service-accept</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 20<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">kexinit</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 21<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">newkeys</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+ </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 Jul 6 18:30:27 2008
+ </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.packet-pysrc.html b/docs/paramiko.packet-pysrc.html
new file mode 100644
index 0000000..1571204
--- /dev/null
+++ b/docs/paramiko.packet-pysrc.html
@@ -0,0 +1,964 @@
+<?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.packet</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> ::
+ Module&nbsp;packet
+ </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.packet-pysrc.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</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="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>
+<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">import</tt> <tt class="py-name">errno</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">select</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">socket</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">struct</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>
+<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.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="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-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>
+<a name="L32"></a><tt class="py-lineno"> 32</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-4" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-4', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-5" 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-5', 'ssh_exception', 'link-5');">ssh_exception</a></tt> <tt class="py-keyword">import</tt> <tt id="link-6" class="py-name" targets="Class paramiko.SSHException=paramiko.SSHException-class.html"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-6', 'SSHException', 'link-6');">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-7" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-7', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-8" class="py-name" targets="Module paramiko.message=paramiko.message-module.html"><a title="paramiko.message" class="py-name" href="#" onclick="return doclink('link-8', 'message', 'link-8');">message</a></tt> <tt class="py-keyword">import</tt> <tt id="link-9" class="py-name" targets="Class paramiko.Message=paramiko.Message-class.html"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-9', 'Message', 'link-9');">Message</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>
+<a name="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line"><tt id="link-10" class="py-name" targets="Variable paramiko.packet.got_r_hmac=paramiko.packet-module.html#got_r_hmac"><a title="paramiko.packet.got_r_hmac" class="py-name" href="#" onclick="return doclink('link-10', 'got_r_hmac', 'link-10');">got_r_hmac</a></tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt> <tt class="py-line"><tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L38"></a><tt class="py-lineno"> 38</tt> <tt class="py-line"> <tt class="py-keyword">import</tt> <tt class="py-name">r_hmac</tt> </tt>
+<a name="L39"></a><tt class="py-lineno"> 39</tt> <tt class="py-line"> <tt id="link-11" class="py-name"><a title="paramiko.packet.got_r_hmac" class="py-name" href="#" onclick="return doclink('link-11', 'got_r_hmac', 'link-10');">got_r_hmac</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</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="L41"></a><tt class="py-lineno"> 41</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+<a name="compute_hmac"></a><div id="compute_hmac-def"><a name="L42"></a><tt class="py-lineno"> 42</tt> <a class="py-toggle" href="#" id="compute_hmac-toggle" onclick="return toggle('compute_hmac');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.packet-module.html#compute_hmac">compute_hmac</a><tt class="py-op">(</tt><tt class="py-param">key</tt><tt class="py-op">,</tt> <tt class="py-param">message</tt><tt class="py-op">,</tt> <tt class="py-param">digest_class</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="compute_hmac-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="compute_hmac-expanded"><a name="L43"></a><tt class="py-lineno"> 43</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-12" class="py-name"><a title="paramiko.packet.got_r_hmac" class="py-name" href="#" onclick="return doclink('link-12', 'got_r_hmac', 'link-10');">got_r_hmac</a></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">r_hmac</tt><tt class="py-op">.</tt><tt class="py-name">HMAC</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt id="link-13" class="py-name"><a title="paramiko.message" class="py-name" href="#" onclick="return doclink('link-13', 'message', 'link-8');">message</a></tt><tt class="py-op">,</tt> <tt class="py-name">digest_class</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="L45"></a><tt class="py-lineno"> 45</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">HMAC</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">HMAC</tt><tt class="py-op">.</tt><tt class="py-name">HMAC</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt id="link-14" class="py-name"><a title="paramiko.message" class="py-name" href="#" onclick="return doclink('link-14', 'message', 'link-8');">message</a></tt><tt class="py-op">,</tt> <tt class="py-name">digest_class</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="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>
+<a name="NeedRekeyException"></a><div id="NeedRekeyException-def"><a name="L49"></a><tt class="py-lineno"> 49</tt> <a class="py-toggle" href="#" id="NeedRekeyException-toggle" onclick="return toggle('NeedRekeyException');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.packet.NeedRekeyException-class.html">NeedRekeyException</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="NeedRekeyException-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="NeedRekeyException-expanded"><a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+</div><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="Packetizer"></a><div id="Packetizer-def"><a name="L53"></a><tt class="py-lineno"> 53</tt> <a class="py-toggle" href="#" id="Packetizer-toggle" onclick="return toggle('Packetizer');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.packet.Packetizer-class.html">Packetizer</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="Packetizer-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Packetizer-expanded"><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-docstring"> Implementation of the base SSH packet protocol.</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="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="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>
+</div><div id="Packetizer.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Packetizer.__init__-expanded"><a name="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__socket</tt> <tt class="py-op">=</tt> <tt class="py-name">socket</tt> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__logger</tt> <tt class="py-op">=</tt> <tt class="py-name">None</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">__closed</tt> <tt class="py-op">=</tt> <tt class="py-name">False</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">__dump_packets</tt> <tt class="py-op">=</tt> <tt class="py-name">False</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">__need_rekey</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</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="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="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="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>
+<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">__block_engine_out</tt> <tt class="py-op">=</tt> <tt class="py-name">None</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">__block_engine_in</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"> <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-name">None</tt> </tt>
+<a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__mac_engine_in</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</tt> <tt class="py-line"> <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-string">''</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">__mac_key_in</tt> <tt class="py-op">=</tt> <tt class="py-string">''</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">__compress_engine_out</tt> <tt class="py-op">=</tt> <tt class="py-name">None</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">__compress_engine_in</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">__sequence_number_out</tt> <tt class="py-op">=</tt> <tt class="py-number">0L</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">__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="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="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>
+<a name="Packetizer.set_log"></a><div id="Packetizer.set_log-def"><a name="L103"></a><tt class="py-lineno">103</tt> <a class="py-toggle" href="#" id="Packetizer.set_log-toggle" onclick="return toggle('Packetizer.set_log');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.packet.Packetizer-class.html#set_log">set_log</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">log</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Packetizer.set_log-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Packetizer.set_log-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"> Set the python log object to use for logging.</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__logger</tt> <tt class="py-op">=</tt> <tt id="link-15" 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-15', 'log', 'link-15');">log</a></tt> </tt>
+</div><a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line"> </tt>
+<a name="Packetizer.set_outbound_cipher"></a><div id="Packetizer.set_outbound_cipher-def"><a name="L109"></a><tt class="py-lineno">109</tt> <a class="py-toggle" href="#" id="Packetizer.set_outbound_cipher-toggle" onclick="return toggle('Packetizer.set_outbound_cipher');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.packet.Packetizer-class.html#set_outbound_cipher">set_outbound_cipher</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">block_engine</tt><tt class="py-op">,</tt> <tt class="py-param">block_size</tt><tt class="py-op">,</tt> <tt class="py-param">mac_engine</tt><tt class="py-op">,</tt> <tt class="py-param">mac_size</tt><tt class="py-op">,</tt> <tt class="py-param">mac_key</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Packetizer.set_outbound_cipher-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Packetizer.set_outbound_cipher-expanded"><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"> Switch outbound data cipher.</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-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">block_engine</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 class="py-name">__block_size_out</tt> <tt class="py-op">=</tt> <tt class="py-name">block_size</tt> </tt>
+<a name="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"> <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-name">mac_engine</tt> </tt>
+<a name="L116"></a><tt class="py-lineno">116</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-name">mac_size</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">__mac_key_out</tt> <tt class="py-op">=</tt> <tt class="py-name">mac_key</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">__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="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>
+</div><a name="L125"></a><tt class="py-lineno">125</tt> <tt class="py-line"> </tt>
+<a name="Packetizer.set_inbound_cipher"></a><div id="Packetizer.set_inbound_cipher-def"><a name="L126"></a><tt class="py-lineno">126</tt> <a class="py-toggle" href="#" id="Packetizer.set_inbound_cipher-toggle" onclick="return toggle('Packetizer.set_inbound_cipher');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.packet.Packetizer-class.html#set_inbound_cipher">set_inbound_cipher</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">block_engine</tt><tt class="py-op">,</tt> <tt class="py-param">block_size</tt><tt class="py-op">,</tt> <tt class="py-param">mac_engine</tt><tt class="py-op">,</tt> <tt class="py-param">mac_size</tt><tt class="py-op">,</tt> <tt class="py-param">mac_key</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Packetizer.set_inbound_cipher-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Packetizer.set_inbound_cipher-expanded"><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"> Switch inbound data cipher.</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__block_engine_in</tt> <tt class="py-op">=</tt> <tt class="py-name">block_engine</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">__block_size_in</tt> <tt class="py-op">=</tt> <tt class="py-name">block_size</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">__mac_engine_in</tt> <tt class="py-op">=</tt> <tt class="py-name">mac_engine</tt> </tt>
+<a name="L133"></a><tt class="py-lineno">133</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-name">mac_size</tt> </tt>
+<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">__mac_key_in</tt> <tt class="py-op">=</tt> <tt class="py-name">mac_key</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 class="py-name">__received_bytes</tt> <tt class="py-op">=</tt> <tt class="py-number">0</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">__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="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>
+</div><a name="L143"></a><tt class="py-lineno">143</tt> <tt class="py-line"> </tt>
+<a name="Packetizer.set_outbound_compressor"></a><div id="Packetizer.set_outbound_compressor-def"><a name="L144"></a><tt class="py-lineno">144</tt> <a class="py-toggle" href="#" id="Packetizer.set_outbound_compressor-toggle" onclick="return toggle('Packetizer.set_outbound_compressor');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.packet.Packetizer-class.html#set_outbound_compressor">set_outbound_compressor</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">compressor</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Packetizer.set_outbound_compressor-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Packetizer.set_outbound_compressor-expanded"><a name="L145"></a><tt class="py-lineno">145</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__compress_engine_out</tt> <tt class="py-op">=</tt> <tt class="py-name">compressor</tt> </tt>
+</div><a name="L146"></a><tt class="py-lineno">146</tt> <tt class="py-line"> </tt>
+<a name="Packetizer.set_inbound_compressor"></a><div id="Packetizer.set_inbound_compressor-def"><a name="L147"></a><tt class="py-lineno">147</tt> <a class="py-toggle" href="#" id="Packetizer.set_inbound_compressor-toggle" onclick="return toggle('Packetizer.set_inbound_compressor');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.packet.Packetizer-class.html#set_inbound_compressor">set_inbound_compressor</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">compressor</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Packetizer.set_inbound_compressor-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Packetizer.set_inbound_compressor-expanded"><a name="L148"></a><tt class="py-lineno">148</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__compress_engine_in</tt> <tt class="py-op">=</tt> <tt class="py-name">compressor</tt> </tt>
+</div><a name="L149"></a><tt class="py-lineno">149</tt> <tt class="py-line"> </tt>
+<a name="Packetizer.close"></a><div id="Packetizer.close-def"><a name="L150"></a><tt class="py-lineno">150</tt> <a class="py-toggle" href="#" id="Packetizer.close-toggle" onclick="return toggle('Packetizer.close');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.packet.Packetizer-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="Packetizer.close-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Packetizer.close-expanded"><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">__closed</tt> <tt class="py-op">=</tt> <tt class="py-name">True</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">__socket</tt><tt class="py-op">.</tt><tt id="link-16" 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
+paramiko.SFTPFile.close
+paramiko.SFTPHandle.close
+paramiko.SSHClient.close
+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-16', 'close', 'link-16');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L153"></a><tt class="py-lineno">153</tt> <tt class="py-line"> </tt>
+<a name="Packetizer.set_hexdump"></a><div id="Packetizer.set_hexdump-def"><a name="L154"></a><tt class="py-lineno">154</tt> <a class="py-toggle" href="#" id="Packetizer.set_hexdump-toggle" onclick="return toggle('Packetizer.set_hexdump');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.packet.Packetizer-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="Packetizer.set_hexdump-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Packetizer.set_hexdump-expanded"><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">__dump_packets</tt> <tt class="py-op">=</tt> <tt class="py-name">hexdump</tt> </tt>
+</div><a name="L156"></a><tt class="py-lineno">156</tt> <tt class="py-line"> </tt>
+<a name="Packetizer.get_hexdump"></a><div id="Packetizer.get_hexdump-def"><a name="L157"></a><tt class="py-lineno">157</tt> <a class="py-toggle" href="#" id="Packetizer.get_hexdump-toggle" onclick="return toggle('Packetizer.get_hexdump');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.packet.Packetizer-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="Packetizer.get_hexdump-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Packetizer.get_hexdump-expanded"><a name="L158"></a><tt class="py-lineno">158</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">__dump_packets</tt> </tt>
+</div><a name="L159"></a><tt class="py-lineno">159</tt> <tt class="py-line"> </tt>
+<a name="Packetizer.get_mac_size_in"></a><div id="Packetizer.get_mac_size_in-def"><a name="L160"></a><tt class="py-lineno">160</tt> <a class="py-toggle" href="#" id="Packetizer.get_mac_size_in-toggle" onclick="return toggle('Packetizer.get_mac_size_in');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.packet.Packetizer-class.html#get_mac_size_in">get_mac_size_in</a><tt 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.get_mac_size_in-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Packetizer.get_mac_size_in-expanded"><a name="L161"></a><tt class="py-lineno">161</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">__mac_size_in</tt> </tt>
+</div><a name="L162"></a><tt class="py-lineno">162</tt> <tt class="py-line"> </tt>
+<a name="Packetizer.get_mac_size_out"></a><div id="Packetizer.get_mac_size_out-def"><a name="L163"></a><tt class="py-lineno">163</tt> <a class="py-toggle" href="#" id="Packetizer.get_mac_size_out-toggle" onclick="return toggle('Packetizer.get_mac_size_out');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.packet.Packetizer-class.html#get_mac_size_out">get_mac_size_out</a><tt 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.get_mac_size_out-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Packetizer.get_mac_size_out-expanded"><a name="L164"></a><tt class="py-lineno">164</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">__mac_size_out</tt> </tt>
+</div><a name="L165"></a><tt class="py-lineno">165</tt> <tt class="py-line"> </tt>
+<a name="Packetizer.need_rekey"></a><div id="Packetizer.need_rekey-def"><a name="L166"></a><tt class="py-lineno">166</tt> <a class="py-toggle" href="#" id="Packetizer.need_rekey-toggle" onclick="return toggle('Packetizer.need_rekey');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.packet.Packetizer-class.html#need_rekey">need_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.need_rekey-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Packetizer.need_rekey-expanded"><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-docstring"> Returns C{True} if a new set of keys needs to be negotiated. This</tt> </tt>
+<a name="L169"></a><tt class="py-lineno">169</tt> <tt class="py-line"><tt class="py-docstring"> will be triggered during a packet read or write, so it should be</tt> </tt>
+<a name="L170"></a><tt class="py-lineno">170</tt> <tt class="py-line"><tt class="py-docstring"> checked after every read or write, or at least after every few.</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"> @return: C{True} if a new set of keys needs to be negotiated</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-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__need_rekey</tt> </tt>
+</div><a name="L175"></a><tt class="py-lineno">175</tt> <tt class="py-line"> </tt>
+<a name="Packetizer.set_keepalive"></a><div id="Packetizer.set_keepalive-def"><a name="L176"></a><tt class="py-lineno">176</tt> <a class="py-toggle" href="#" id="Packetizer.set_keepalive-toggle" onclick="return toggle('Packetizer.set_keepalive');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.packet.Packetizer-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-param">callback</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Packetizer.set_keepalive-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Packetizer.set_keepalive-expanded"><a name="L177"></a><tt class="py-lineno">177</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L178"></a><tt class="py-lineno">178</tt> <tt class="py-line"><tt class="py-docstring"> Turn on/off the callback keepalive. If C{interval} seconds pass with</tt> </tt>
+<a name="L179"></a><tt class="py-lineno">179</tt> <tt class="py-line"><tt class="py-docstring"> no data read from or written to the socket, the callback will be</tt> </tt>
+<a name="L180"></a><tt class="py-lineno">180</tt> <tt class="py-line"><tt class="py-docstring"> executed and the timer will be reset.</tt> </tt>
+<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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__keepalive_interval</tt> <tt class="py-op">=</tt> <tt class="py-name">interval</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">__keepalive_callback</tt> <tt class="py-op">=</tt> <tt class="py-name">callback</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">__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>
+</div><a name="L185"></a><tt class="py-lineno">185</tt> <tt class="py-line"> </tt>
+<a name="Packetizer.read_all"></a><div id="Packetizer.read_all-def"><a name="L186"></a><tt class="py-lineno">186</tt> <a class="py-toggle" href="#" id="Packetizer.read_all-toggle" onclick="return toggle('Packetizer.read_all');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.packet.Packetizer-class.html#read_all">read_all</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-param">check_rekey</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="Packetizer.read_all-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Packetizer.read_all-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"> Read as close to N bytes as possible, blocking as long as necessary.</tt> </tt>
+<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"> @param n: number of bytes to read</tt> </tt>
+<a name="L191"></a><tt class="py-lineno">191</tt> <tt class="py-line"><tt class="py-docstring"> @type n: int</tt> </tt>
+<a name="L192"></a><tt class="py-lineno">192</tt> <tt class="py-line"><tt class="py-docstring"> @return: the data read</tt> </tt>
+<a name="L193"></a><tt class="py-lineno">193</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: str</tt> </tt>
+<a name="L194"></a><tt class="py-lineno">194</tt> <tt class="py-line"><tt class="py-docstring"> @raise EOFError: if the socket was closed before all the bytes could</tt> </tt>
+<a name="L195"></a><tt class="py-lineno">195</tt> <tt class="py-line"><tt class="py-docstring"> be read</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-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="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>
+<a name="L203"></a><tt class="py-lineno">203</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-17" class="py-name" targets="Variable paramiko.auth_handler.PY22=paramiko.auth_handler-module.html#PY22,Variable paramiko.channel.PY22=paramiko.channel-module.html#PY22,Variable paramiko.client.PY22=paramiko.client-module.html#PY22,Variable paramiko.common.PY22=paramiko.common-module.html#PY22,Variable paramiko.dsskey.PY22=paramiko.dsskey-module.html#PY22,Variable paramiko.hostkeys.PY22=paramiko.hostkeys-module.html#PY22,Variable paramiko.kex_gex.PY22=paramiko.kex_gex-module.html#PY22,Variable paramiko.kex_group1.PY22=paramiko.kex_group1-module.html#PY22,Variable paramiko.packet.PY22=paramiko.packet-module.html#PY22,Variable paramiko.pkey.PY22=paramiko.pkey-module.html#PY22,Variable paramiko.rsakey.PY22=paramiko.rsakey-module.html#PY22,Variable paramiko.server.PY22=paramiko.server-module.html#PY22,Variable paramiko.sftp.PY22=paramiko.sftp-module.html#PY22,Variable paramiko.sftp_attr.PY22=paramiko.sftp_attr-module.html#PY22,Variable paramiko.sftp_client.PY22=paramiko.sftp_client-module.html#PY22,Variable paramiko.sftp_file.PY22=paramiko.sftp_file-module.html#PY22,Variable paramiko.sftp_handle.PY22=paramiko.sftp_handle-module.html#PY22,Variable paramiko.sftp_server.PY22=paramiko.sftp_server-module.html#PY22,Variable paramiko.sftp_si.PY22=paramiko.sftp_si-module.html#PY22,Variable paramiko.transport.PY22=paramiko.transport-module.html#PY22,Variable paramiko.util.PY22=paramiko.util-module.html#PY22"><a title="paramiko.auth_handler.PY22
+paramiko.channel.PY22
+paramiko.client.PY22
+paramiko.common.PY22
+paramiko.dsskey.PY22
+paramiko.hostkeys.PY22
+paramiko.kex_gex.PY22
+paramiko.kex_group1.PY22
+paramiko.packet.PY22
+paramiko.pkey.PY22
+paramiko.rsakey.PY22
+paramiko.server.PY22
+paramiko.sftp.PY22
+paramiko.sftp_attr.PY22
+paramiko.sftp_client.PY22
+paramiko.sftp_file.PY22
+paramiko.sftp_handle.PY22
+paramiko.sftp_server.PY22
+paramiko.sftp_si.PY22
+paramiko.transport.PY22
+paramiko.util.PY22" class="py-name" href="#" onclick="return doclink('link-17', 'PY22', 'link-17');">PY22</a></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">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_py22_read_all</tt><tt class="py-op">(</tt><tt class="py-name">n</tt><tt class="py-op">,</tt> <tt class="py-name">out</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">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="L206"></a><tt class="py-lineno">206</tt> <tt class="py-line"> <tt class="py-name">got_timeout</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L207"></a><tt class="py-lineno">207</tt> <tt class="py-line"> <tt class="py-keyword">try</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">x</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__socket</tt><tt class="py-op">.</tt><tt id="link-18" 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-18', 'recv', 'link-18');">recv</a></tt><tt class="py-op">(</tt><tt class="py-name">n</tt><tt class="py-op">)</tt> </tt>
+<a name="L209"></a><tt class="py-lineno">209</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">0</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">raise</tt> <tt class="py-name">EOFError</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">out</tt> <tt class="py-op">+=</tt> <tt class="py-name">x</tt> </tt>
+<a name="L212"></a><tt class="py-lineno">212</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">x</tt><tt class="py-op">)</tt> </tt>
+<a name="L213"></a><tt class="py-lineno">213</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">timeout</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">got_timeout</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<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="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="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>
+<a name="L227"></a><tt class="py-lineno">227</tt> <tt class="py-line"> <tt class="py-keyword">raise</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">got_timeout</tt><tt class="py-op">:</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-op">:</tt> </tt>
+<a name="L230"></a><tt class="py-lineno">230</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="L231"></a><tt class="py-lineno">231</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">check_rekey</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">out</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__need_rekey</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">raise</tt> <tt id="link-20" class="py-name" targets="Class paramiko.packet.NeedRekeyException=paramiko.packet.NeedRekeyException-class.html"><a title="paramiko.packet.NeedRekeyException" class="py-name" href="#" onclick="return doclink('link-20', 'NeedRekeyException', 'link-20');">NeedRekeyException</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">self</tt><tt class="py-op">.</tt><tt class="py-name">_check_keepalive</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-keyword">return</tt> <tt class="py-name">out</tt> </tt>
+</div><a name="L235"></a><tt class="py-lineno">235</tt> <tt class="py-line"> </tt>
+<a name="Packetizer.write_all"></a><div id="Packetizer.write_all-def"><a name="L236"></a><tt class="py-lineno">236</tt> <a class="py-toggle" href="#" id="Packetizer.write_all-toggle" onclick="return toggle('Packetizer.write_all');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.packet.Packetizer-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">out</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Packetizer.write_all-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Packetizer.write_all-expanded"><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">__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="L238"></a><tt class="py-lineno">238</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">&gt;</tt> <tt class="py-number">0</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">got_timeout</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L240"></a><tt class="py-lineno">240</tt> <tt class="py-line"> <tt class="py-keyword">try</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">n</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__socket</tt><tt class="py-op">.</tt><tt id="link-21" 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-21', 'send', 'link-21');">send</a></tt><tt class="py-op">(</tt><tt class="py-name">out</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">except</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">timeout</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">got_timeout</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L244"></a><tt class="py-lineno">244</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-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-19');">error</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</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">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="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="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="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>
+<a name="L258"></a><tt class="py-lineno">258</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="L259"></a><tt class="py-lineno">259</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">n</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">0</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">EOFError</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-keyword">if</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">out</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">break</tt> </tt>
+<a name="L263"></a><tt class="py-lineno">263</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">n</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 class="py-keyword">return</tt> </tt>
+</div><a name="L265"></a><tt class="py-lineno">265</tt> <tt class="py-line"> </tt>
+<a name="Packetizer.readline"></a><div id="Packetizer.readline-def"><a name="L266"></a><tt class="py-lineno">266</tt> <a class="py-toggle" href="#" id="Packetizer.readline-toggle" onclick="return toggle('Packetizer.readline');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.packet.Packetizer-class.html#readline">readline</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="Packetizer.readline-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Packetizer.readline-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"> 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="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="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>
+<a name="L279"></a><tt class="py-lineno">279</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">buf</tt> </tt>
+</div><a name="L280"></a><tt class="py-lineno">280</tt> <tt class="py-line"> </tt>
+<a name="Packetizer.send_message"></a><div id="Packetizer.send_message-def"><a name="L281"></a><tt class="py-lineno">281</tt> <a class="py-toggle" href="#" id="Packetizer.send_message-toggle" onclick="return toggle('Packetizer.send_message');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.packet.Packetizer-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="Packetizer.send_message-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Packetizer.send_message-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"> 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="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
+paramiko.client.MSG_NAMES
+paramiko.common.MSG_NAMES
+paramiko.dsskey.MSG_NAMES
+paramiko.hostkeys.MSG_NAMES
+paramiko.kex_gex.MSG_NAMES
+paramiko.kex_group1.MSG_NAMES
+paramiko.packet.MSG_NAMES
+paramiko.pkey.MSG_NAMES
+paramiko.rsakey.MSG_NAMES
+paramiko.server.MSG_NAMES
+paramiko.sftp.MSG_NAMES
+paramiko.sftp_attr.MSG_NAMES
+paramiko.sftp_client.MSG_NAMES
+paramiko.sftp_file.MSG_NAMES
+paramiko.sftp_handle.MSG_NAMES
+paramiko.sftp_server.MSG_NAMES
+paramiko.sftp_si.MSG_NAMES
+paramiko.transport.MSG_NAMES
+paramiko.util.MSG_NAMES" class="py-name" href="#" onclick="return doclink('link-23', 'MSG_NAMES', 'link-23');">MSG_NAMES</a></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">cmd_name</tt> <tt class="py-op">=</tt> <tt id="link-24" class="py-name"><a title="paramiko.auth_handler.MSG_NAMES
+paramiko.channel.MSG_NAMES
+paramiko.client.MSG_NAMES
+paramiko.common.MSG_NAMES
+paramiko.dsskey.MSG_NAMES
+paramiko.hostkeys.MSG_NAMES
+paramiko.kex_gex.MSG_NAMES
+paramiko.kex_group1.MSG_NAMES
+paramiko.packet.MSG_NAMES
+paramiko.pkey.MSG_NAMES
+paramiko.rsakey.MSG_NAMES
+paramiko.server.MSG_NAMES
+paramiko.sftp.MSG_NAMES
+paramiko.sftp_attr.MSG_NAMES
+paramiko.sftp_client.MSG_NAMES
+paramiko.sftp_file.MSG_NAMES
+paramiko.sftp_handle.MSG_NAMES
+paramiko.sftp_server.MSG_NAMES
+paramiko.sftp_si.MSG_NAMES
+paramiko.transport.MSG_NAMES
+paramiko.util.MSG_NAMES" class="py-name" href="#" onclick="return doclink('link-24', 'MSG_NAMES', 'link-23');">MSG_NAMES</a></tt><tt class="py-op">[</tt><tt class="py-name">cmd</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">else</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">cmd_name</tt> <tt class="py-op">=</tt> <tt class="py-string">'$%x'</tt> <tt class="py-op">%</tt> <tt class="py-name">cmd</tt> </tt>
+<a name="L292"></a><tt class="py-lineno">292</tt> <tt class="py-line"> <tt class="py-name">orig_len</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="L293"></a><tt class="py-lineno">293</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">acquire</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-keyword">try</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">__compress_engine_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>
+<a name="L296"></a><tt class="py-lineno">296</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">__compress_engine_out</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
+<a name="L297"></a><tt class="py-lineno">297</tt> <tt class="py-line"> <tt id="link-25" class="py-name" targets="Module paramiko.packet=paramiko.packet-module.html"><a title="paramiko.packet" class="py-name" href="#" onclick="return doclink('link-25', 'packet', 'link-25');">packet</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_build_packet</tt><tt class="py-op">(</tt><tt class="py-name">data</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">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__dump_packets</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">_log</tt><tt class="py-op">(</tt><tt id="link-26" 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
+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-26', 'DEBUG', 'link-26');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Write packet &lt;%s&gt;, length %d'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">cmd_name</tt><tt class="py-op">,</tt> <tt class="py-name">orig_len</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">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-27" 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-27', 'DEBUG', 'link-26');">DEBUG</a></tt><tt class="py-op">,</tt> <tt id="link-28" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-28', 'util', 'link-3');">util</a></tt><tt class="py-op">.</tt><tt id="link-29" class="py-name" targets="Function paramiko.util.format_binary()=paramiko.util-module.html#format_binary"><a title="paramiko.util.format_binary" class="py-name" href="#" onclick="return doclink('link-29', 'format_binary', 'link-29');">format_binary</a></tt><tt class="py-op">(</tt><tt id="link-30" class="py-name"><a title="paramiko.packet" class="py-name" href="#" onclick="return doclink('link-30', 'packet', 'link-25');">packet</a></tt><tt class="py-op">,</tt> <tt class="py-string">'OUT: '</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-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="L302"></a><tt class="py-lineno">302</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">__block_engine_out</tt><tt class="py-op">.</tt><tt class="py-name">encrypt</tt><tt class="py-op">(</tt><tt id="link-31" class="py-name"><a title="paramiko.packet" class="py-name" href="#" onclick="return doclink('link-31', 'packet', 'link-25');">packet</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-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="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>
+<a name="L310"></a><tt class="py-lineno">310</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">write_all</tt><tt class="py-op">(</tt><tt class="py-name">out</tt><tt class="py-op">)</tt> </tt>
+<a name="L311"></a><tt class="py-lineno">311</tt> <tt class="py-line"> </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">__sent_bytes</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>
+<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
+paramiko.channel.randpool
+paramiko.client.randpool
+paramiko.common.randpool
+paramiko.dsskey.randpool
+paramiko.hostkeys.randpool
+paramiko.kex_gex.randpool
+paramiko.kex_group1.randpool
+paramiko.packet.randpool
+paramiko.pkey.randpool
+paramiko.rsakey.randpool
+paramiko.server.randpool
+paramiko.sftp.randpool
+paramiko.sftp_attr.randpool
+paramiko.sftp_client.randpool
+paramiko.sftp_file.randpool
+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-35', 'randpool', 'link-35');">randpool</a></tt><tt class="py-op">.</tt><tt id="link-36" 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-36', 'stir', 'link-36');">stir</a></tt><tt class="py-op">(</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-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
+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-37', 'DEBUG', 'link-26');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Rekeying (hit %d packets, %d bytes sent)'</tt> <tt class="py-op">%</tt> </tt>
+<a name="L321"></a><tt class="py-lineno">321</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">__sent_packets</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">)</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">__received_packets_overflow</tt> <tt class="py-op">=</tt> <tt class="py-number">0</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">_trigger_rekey</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-keyword">finally</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">self</tt><tt class="py-op">.</tt><tt class="py-name">__write_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="L326"></a><tt class="py-lineno">326</tt> <tt class="py-line"> </tt>
+<a name="Packetizer.read_message"></a><div id="Packetizer.read_message-def"><a name="L327"></a><tt class="py-lineno">327</tt> <a class="py-toggle" href="#" id="Packetizer.read_message-toggle" onclick="return toggle('Packetizer.read_message');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.packet.Packetizer-class.html#read_message">read_message</a><tt 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.read_message-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Packetizer.read_message-expanded"><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"> Only one thread should ever be in this function (no other locking is</tt> </tt>
+<a name="L330"></a><tt class="py-lineno">330</tt> <tt class="py-line"><tt class="py-docstring"> done).</tt> </tt>
+<a name="L331"></a><tt class="py-lineno">331</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L332"></a><tt class="py-lineno">332</tt> <tt class="py-line"><tt class="py-docstring"> @raise SSHException: if the packet is mangled</tt> </tt>
+<a name="L333"></a><tt class="py-lineno">333</tt> <tt class="py-line"><tt class="py-docstring"> @raise NeedRekeyException: if the transport should rekey</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">header</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">self</tt><tt class="py-op">.</tt><tt class="py-name">__block_size_in</tt><tt class="py-op">,</tt> <tt class="py-name">check_rekey</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L336"></a><tt class="py-lineno">336</tt> <tt 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_in</tt> <tt class="py-op">!=</tt> <tt class="py-name">None</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">header</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__block_engine_in</tt><tt class="py-op">.</tt><tt class="py-name">decrypt</tt><tt class="py-op">(</tt><tt class="py-name">header</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">self</tt><tt class="py-op">.</tt><tt class="py-name">__dump_packets</tt><tt class="py-op">:</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">_log</tt><tt class="py-op">(</tt><tt id="link-38" 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-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="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>
+<a name="L346"></a><tt class="py-lineno">346</tt> <tt class="py-line"> <tt id="link-42" class="py-name"><a title="paramiko.packet" class="py-name" href="#" onclick="return doclink('link-42', 'packet', 'link-25');">packet</a></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">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>
+<a name="L347"></a><tt class="py-lineno">347</tt> <tt class="py-line"> <tt class="py-name">post_packet</tt> <tt class="py-op">=</tt> <tt class="py-name">buf</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>
+<a name="L348"></a><tt class="py-lineno">348</tt> <tt 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_in</tt> <tt class="py-op">!=</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L349"></a><tt class="py-lineno">349</tt> <tt class="py-line"> <tt id="link-43" class="py-name"><a title="paramiko.packet" class="py-name" href="#" onclick="return doclink('link-43', 'packet', 'link-25');">packet</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__block_engine_in</tt><tt class="py-op">.</tt><tt class="py-name">decrypt</tt><tt class="py-op">(</tt><tt id="link-44" class="py-name"><a title="paramiko.packet" class="py-name" href="#" onclick="return doclink('link-44', 'packet', 'link-25');">packet</a></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">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__dump_packets</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">_log</tt><tt class="py-op">(</tt><tt id="link-45" 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-45', 'DEBUG', 'link-26');">DEBUG</a></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.format_binary" class="py-name" href="#" onclick="return doclink('link-47', 'format_binary', 'link-29');">format_binary</a></tt><tt class="py-op">(</tt><tt id="link-48" class="py-name"><a title="paramiko.packet" class="py-name" href="#" onclick="return doclink('link-48', 'packet', 'link-25');">packet</a></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="L352"></a><tt class="py-lineno">352</tt> <tt class="py-line"> <tt id="link-49" class="py-name"><a title="paramiko.packet" class="py-name" href="#" onclick="return doclink('link-49', 'packet', 'link-25');">packet</a></tt> <tt class="py-op">=</tt> <tt class="py-name">leftover</tt> <tt class="py-op">+</tt> <tt id="link-50" class="py-name"><a title="paramiko.packet" class="py-name" href="#" onclick="return doclink('link-50', 'packet', 'link-25');">packet</a></tt> </tt>
+<a name="L353"></a><tt class="py-lineno">353</tt> <tt class="py-line"> </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">self</tt><tt class="py-op">.</tt><tt class="py-name">__mac_size_in</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</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">mac</tt> <tt class="py-op">=</tt> <tt class="py-name">post_packet</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_in</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">mac_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;II'</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-name">packet_size</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt id="link-51" class="py-name"><a title="paramiko.packet" class="py-name" href="#" onclick="return doclink('link-51', 'packet', 'link-25');">packet</a></tt> </tt>
+<a name="L357"></a><tt class="py-lineno">357</tt> <tt class="py-line"> <tt class="py-name">my_mac</tt> <tt class="py-op">=</tt> <tt id="link-52" class="py-name"><a title="paramiko.packet.compute_hmac" class="py-name" href="#" onclick="return doclink('link-52', '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_in</tt><tt class="py-op">,</tt> <tt class="py-name">mac_payload</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__mac_engine_in</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_in</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">if</tt> <tt class="py-name">my_mac</tt> <tt class="py-op">!=</tt> <tt class="py-name">mac</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">raise</tt> <tt id="link-53" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-53', 'SSHException', 'link-6');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Mismatched MAC'</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">padding</tt> <tt class="py-op">=</tt> <tt class="py-name">ord</tt><tt class="py-op">(</tt><tt id="link-54" class="py-name"><a title="paramiko.packet" class="py-name" href="#" onclick="return doclink('link-54', 'packet', 'link-25');">packet</a></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="L361"></a><tt class="py-lineno">361</tt> <tt class="py-line"> <tt class="py-name">payload</tt> <tt class="py-op">=</tt> <tt id="link-55" class="py-name"><a title="paramiko.packet" class="py-name" href="#" onclick="return doclink('link-55', 'packet', 'link-25');">packet</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-name">packet_size</tt> <tt class="py-op">-</tt> <tt class="py-name">padding</tt><tt class="py-op">]</tt> </tt>
+<a name="L362"></a><tt class="py-lineno">362</tt> <tt class="py-line"> <tt id="link-56" class="py-name"><a title="paramiko.auth_handler.randpool
+paramiko.channel.randpool
+paramiko.client.randpool
+paramiko.common.randpool
+paramiko.dsskey.randpool
+paramiko.hostkeys.randpool
+paramiko.kex_gex.randpool
+paramiko.kex_group1.randpool
+paramiko.packet.randpool
+paramiko.pkey.randpool
+paramiko.rsakey.randpool
+paramiko.server.randpool
+paramiko.sftp.randpool
+paramiko.sftp_attr.randpool
+paramiko.sftp_client.randpool
+paramiko.sftp_file.randpool
+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-56', 'randpool', 'link-35');">randpool</a></tt><tt class="py-op">.</tt><tt id="link-57" class="py-name" targets="Method paramiko.rng.StrongLockingRandomPool.add_event()=paramiko.rng.StrongLockingRandomPool-class.html#add_event"><a title="paramiko.rng.StrongLockingRandomPool.add_event" class="py-name" href="#" onclick="return doclink('link-57', 'add_event', 'link-57');">add_event</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-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__dump_packets</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">_log</tt><tt class="py-op">(</tt><tt id="link-58" 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-58', 'DEBUG', 'link-26');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Got payload (%d bytes, %d padding)'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">packet_size</tt><tt class="py-op">,</tt> <tt class="py-name">padding</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>
+<a name="L366"></a><tt class="py-lineno">366</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__compress_engine_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>
+<a name="L367"></a><tt class="py-lineno">367</tt> <tt class="py-line"> <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">__compress_engine_in</tt><tt class="py-op">(</tt><tt class="py-name">payload</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">msg</tt> <tt class="py-op">=</tt> <tt id="link-59" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-59', 'Message', 'link-9');">Message</a></tt><tt class="py-op">(</tt><tt class="py-name">payload</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="L370"></a><tt class="py-lineno">370</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt class="py-name">seqno</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>
+<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="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="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
+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-61', 'DEBUG', 'link-26');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Rekeying (hit %d packets, %d bytes received)'</tt> <tt class="py-op">%</tt> </tt>
+<a name="L386"></a><tt class="py-lineno">386</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_packets</tt><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">)</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">__received_packets_overflow</tt> <tt class="py-op">=</tt> <tt class="py-number">0</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">_trigger_rekey</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>
+<a name="L390"></a><tt class="py-lineno">390</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">payload</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="L391"></a><tt class="py-lineno">391</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-62" class="py-name"><a title="paramiko.auth_handler.MSG_NAMES
+paramiko.channel.MSG_NAMES
+paramiko.client.MSG_NAMES
+paramiko.common.MSG_NAMES
+paramiko.dsskey.MSG_NAMES
+paramiko.hostkeys.MSG_NAMES
+paramiko.kex_gex.MSG_NAMES
+paramiko.kex_group1.MSG_NAMES
+paramiko.packet.MSG_NAMES
+paramiko.pkey.MSG_NAMES
+paramiko.rsakey.MSG_NAMES
+paramiko.server.MSG_NAMES
+paramiko.sftp.MSG_NAMES
+paramiko.sftp_attr.MSG_NAMES
+paramiko.sftp_client.MSG_NAMES
+paramiko.sftp_file.MSG_NAMES
+paramiko.sftp_handle.MSG_NAMES
+paramiko.sftp_server.MSG_NAMES
+paramiko.sftp_si.MSG_NAMES
+paramiko.transport.MSG_NAMES
+paramiko.util.MSG_NAMES" class="py-name" href="#" onclick="return doclink('link-62', 'MSG_NAMES', 'link-23');">MSG_NAMES</a></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">cmd_name</tt> <tt class="py-op">=</tt> <tt id="link-63" class="py-name"><a title="paramiko.auth_handler.MSG_NAMES
+paramiko.channel.MSG_NAMES
+paramiko.client.MSG_NAMES
+paramiko.common.MSG_NAMES
+paramiko.dsskey.MSG_NAMES
+paramiko.hostkeys.MSG_NAMES
+paramiko.kex_gex.MSG_NAMES
+paramiko.kex_group1.MSG_NAMES
+paramiko.packet.MSG_NAMES
+paramiko.pkey.MSG_NAMES
+paramiko.rsakey.MSG_NAMES
+paramiko.server.MSG_NAMES
+paramiko.sftp.MSG_NAMES
+paramiko.sftp_attr.MSG_NAMES
+paramiko.sftp_client.MSG_NAMES
+paramiko.sftp_file.MSG_NAMES
+paramiko.sftp_handle.MSG_NAMES
+paramiko.sftp_server.MSG_NAMES
+paramiko.sftp_si.MSG_NAMES
+paramiko.transport.MSG_NAMES
+paramiko.util.MSG_NAMES" class="py-name" href="#" onclick="return doclink('link-63', 'MSG_NAMES', 'link-23');">MSG_NAMES</a></tt><tt class="py-op">[</tt><tt class="py-name">cmd</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">else</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">cmd_name</tt> <tt class="py-op">=</tt> <tt class="py-string">'$%x'</tt> <tt class="py-op">%</tt> <tt class="py-name">cmd</tt> </tt>
+<a name="L395"></a><tt class="py-lineno">395</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__dump_packets</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">_log</tt><tt class="py-op">(</tt><tt id="link-64" 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-64', 'DEBUG', 'link-26');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Read packet &lt;%s&gt;, length %d'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">cmd_name</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-op">)</tt> </tt>
+<a name="L397"></a><tt class="py-lineno">397</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">cmd</tt><tt class="py-op">,</tt> <tt class="py-name">msg</tt> </tt>
+</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="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>
+<a name="L405"></a><tt class="py-lineno">405</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L406"></a><tt class="py-lineno">406</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="L407"></a><tt class="py-lineno">407</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="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">__logger</tt><tt class="py-op">.</tt><tt id="link-65" class="py-name"><a title="paramiko.logging22.logger.log" class="py-name" href="#" onclick="return doclink('link-65', 'log', 'link-15');">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="L409"></a><tt class="py-lineno">409</tt> <tt class="py-line"> <tt class="py-keyword">else</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">__logger</tt><tt class="py-op">.</tt><tt id="link-66" class="py-name"><a title="paramiko.logging22.logger.log" class="py-name" href="#" onclick="return doclink('link-66', 'log', 'link-15');">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>
+</div><a name="L411"></a><tt class="py-lineno">411</tt> <tt class="py-line"> </tt>
+<a name="Packetizer._check_keepalive"></a><div id="Packetizer._check_keepalive-def"><a name="L412"></a><tt class="py-lineno">412</tt> <a class="py-toggle" href="#" id="Packetizer._check_keepalive-toggle" onclick="return toggle('Packetizer._check_keepalive');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.packet.Packetizer-class.html#_check_keepalive">_check_keepalive</a><tt 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._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="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>
+<a name="L420"></a><tt class="py-lineno">420</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">now</tt> </tt>
+</div><a name="L421"></a><tt class="py-lineno">421</tt> <tt class="py-line"> </tt>
+<a name="Packetizer._py22_read_all"></a><div id="Packetizer._py22_read_all-def"><a name="L422"></a><tt class="py-lineno">422</tt> <a class="py-toggle" href="#" id="Packetizer._py22_read_all-toggle" onclick="return toggle('Packetizer._py22_read_all');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.packet.Packetizer-class.html#_py22_read_all">_py22_read_all</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-param">out</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Packetizer._py22_read_all-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Packetizer._py22_read_all-expanded"><a name="L423"></a><tt class="py-lineno">423</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="L424"></a><tt class="py-lineno">424</tt> <tt class="py-line"> <tt class="py-name">r</tt><tt class="py-op">,</tt> <tt class="py-name">w</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt class="py-name">select</tt><tt class="py-op">.</tt><tt class="py-name">select</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">__socket</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 class="py-op">,</tt> <tt class="py-number">0.1</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">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__socket</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">r</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">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="L427"></a><tt class="py-lineno">427</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="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">_check_keepalive</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-keyword">else</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">x</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__socket</tt><tt class="py-op">.</tt><tt id="link-67" class="py-name"><a title="paramiko.Channel.recv
+paramiko.win_pageant.PageantConnection.recv" class="py-name" href="#" onclick="return doclink('link-67', 'recv', 'link-18');">recv</a></tt><tt class="py-op">(</tt><tt class="py-name">n</tt><tt class="py-op">)</tt> </tt>
+<a name="L431"></a><tt class="py-lineno">431</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">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L432"></a><tt class="py-lineno">432</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="L433"></a><tt class="py-lineno">433</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">+=</tt> <tt class="py-name">x</tt> </tt>
+<a name="L434"></a><tt class="py-lineno">434</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">x</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">return</tt> <tt class="py-name">out</tt> </tt>
+</div><a name="L436"></a><tt class="py-lineno">436</tt> <tt class="py-line"> </tt>
+<a name="Packetizer._py22_read_timeout"></a><div id="Packetizer._py22_read_timeout-def"><a name="L437"></a><tt class="py-lineno">437</tt> <a class="py-toggle" href="#" id="Packetizer._py22_read_timeout-toggle" onclick="return toggle('Packetizer._py22_read_timeout');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.packet.Packetizer-class.html#_py22_read_timeout">_py22_read_timeout</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="Packetizer._py22_read_timeout-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Packetizer._py22_read_timeout-expanded"><a name="L438"></a><tt class="py-lineno">438</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="L439"></a><tt class="py-lineno">439</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="L440"></a><tt class="py-lineno">440</tt> <tt class="py-line"> <tt class="py-name">r</tt><tt class="py-op">,</tt> <tt class="py-name">w</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt class="py-name">select</tt><tt class="py-op">.</tt><tt class="py-name">select</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">__socket</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 class="py-op">,</tt> <tt class="py-number">0.1</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">self</tt><tt class="py-op">.</tt><tt class="py-name">__socket</tt> <tt class="py-keyword">in</tt> <tt class="py-name">r</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">x</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__socket</tt><tt class="py-op">.</tt><tt id="link-68" class="py-name"><a title="paramiko.Channel.recv
+paramiko.win_pageant.PageantConnection.recv" class="py-name" href="#" onclick="return doclink('link-68', 'recv', 'link-18');">recv</a></tt><tt class="py-op">(</tt><tt class="py-number">1</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">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">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L444"></a><tt class="py-lineno">444</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="L445"></a><tt class="py-lineno">445</tt> <tt class="py-line"> <tt class="py-keyword">break</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">self</tt><tt class="py-op">.</tt><tt class="py-name">__closed</tt><tt class="py-op">:</tt> </tt>
+<a name="L447"></a><tt class="py-lineno">447</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="L448"></a><tt class="py-lineno">448</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="L449"></a><tt class="py-lineno">449</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">now</tt> <tt class="py-op">-</tt> <tt class="py-name">start</tt> <tt class="py-op">&gt;=</tt> <tt class="py-name">timeout</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">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="L451"></a><tt class="py-lineno">451</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">x</tt> </tt>
+</div><a name="L452"></a><tt class="py-lineno">452</tt> <tt class="py-line"> </tt>
+<a name="Packetizer._read_timeout"></a><div id="Packetizer._read_timeout-def"><a name="L453"></a><tt class="py-lineno">453</tt> <a class="py-toggle" href="#" id="Packetizer._read_timeout-toggle" onclick="return toggle('Packetizer._read_timeout');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.packet.Packetizer-class.html#_read_timeout">_read_timeout</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="Packetizer._read_timeout-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="Packetizer._read_timeout-expanded"><a name="L454"></a><tt class="py-lineno">454</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-69" class="py-name"><a title="paramiko.auth_handler.PY22
+paramiko.channel.PY22
+paramiko.client.PY22
+paramiko.common.PY22
+paramiko.dsskey.PY22
+paramiko.hostkeys.PY22
+paramiko.kex_gex.PY22
+paramiko.kex_group1.PY22
+paramiko.packet.PY22
+paramiko.pkey.PY22
+paramiko.rsakey.PY22
+paramiko.server.PY22
+paramiko.sftp.PY22
+paramiko.sftp_attr.PY22
+paramiko.sftp_client.PY22
+paramiko.sftp_file.PY22
+paramiko.sftp_handle.PY22
+paramiko.sftp_server.PY22
+paramiko.sftp_si.PY22
+paramiko.transport.PY22
+paramiko.util.PY22" class="py-name" href="#" onclick="return doclink('link-69', 'PY22', 'link-17');">PY22</a></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">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_py22_read_timeout</tt><tt class="py-op">(</tt><tt class="py-name">timeout</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">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="L457"></a><tt class="py-lineno">457</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="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">x</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__socket</tt><tt class="py-op">.</tt><tt id="link-70" class="py-name"><a title="paramiko.Channel.recv
+paramiko.win_pageant.PageantConnection.recv" class="py-name" href="#" onclick="return doclink('link-70', 'recv', 'link-18');">recv</a></tt><tt class="py-op">(</tt><tt class="py-number">128</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">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">0</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">raise</tt> <tt class="py-name">EOFError</tt><tt class="py-op">(</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">break</tt> </tt>
+<a name="L463"></a><tt class="py-lineno">463</tt> <tt class="py-line"> <tt class="py-keyword">except</tt> <tt class="py-name">socket</tt><tt class="py-op">.</tt><tt class="py-name">timeout</tt><tt class="py-op">:</tt> </tt>
+<a name="L464"></a><tt class="py-lineno">464</tt> <tt class="py-line"> <tt class="py-keyword">pass</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">self</tt><tt class="py-op">.</tt><tt class="py-name">__closed</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">raise</tt> <tt class="py-name">EOFError</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L467"></a><tt class="py-lineno">467</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="L468"></a><tt class="py-lineno">468</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">now</tt> <tt class="py-op">-</tt> <tt class="py-name">start</tt> <tt class="py-op">&gt;=</tt> <tt class="py-name">timeout</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">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="L470"></a><tt class="py-lineno">470</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">x</tt> </tt>
+</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="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>
+<a name="L478"></a><tt class="py-lineno">478</tt> <tt 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-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L479"></a><tt class="py-lineno">479</tt> <tt class="py-line"> <tt id="link-73" class="py-name"><a title="paramiko.packet" class="py-name" href="#" onclick="return doclink('link-73', 'packet', 'link-25');">packet</a></tt> <tt class="py-op">+=</tt> <tt id="link-74" class="py-name"><a title="paramiko.auth_handler.randpool
+paramiko.channel.randpool
+paramiko.client.randpool
+paramiko.common.randpool
+paramiko.dsskey.randpool
+paramiko.hostkeys.randpool
+paramiko.kex_gex.randpool
+paramiko.kex_group1.randpool
+paramiko.packet.randpool
+paramiko.pkey.randpool
+paramiko.rsakey.randpool
+paramiko.server.randpool
+paramiko.sftp.randpool
+paramiko.sftp_attr.randpool
+paramiko.sftp_client.randpool
+paramiko.sftp_file.randpool
+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-74', 'randpool', 'link-35');">randpool</a></tt><tt class="py-op">.</tt><tt id="link-75" 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-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="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>
+</div></div><a name="L489"></a><tt class="py-lineno">489</tt> <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<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 Jul 6 18:30:31 2008
+ </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.packet.NeedRekeyException-class.html b/docs/paramiko.packet.NeedRekeyException-class.html
new file mode 100644
index 0000000..fbfd820
--- /dev/null
+++ b/docs/paramiko.packet.NeedRekeyException-class.html
@@ -0,0 +1,165 @@
+<?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.packet.NeedRekeyException</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.packet-module.html" onclick="show_private();">Module&nbsp;packet</a> ::
+ Class&nbsp;NeedRekeyException
+ </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.packet.NeedRekeyException-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class NeedRekeyException</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.packet-pysrc.html#NeedRekeyException">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+ object --+
+ |
+exceptions.BaseException --+
+ |
+ exceptions.Exception --+
+ |
+ <strong class="uidshort">NeedRekeyException</strong>
+</pre>
+
+<hr />
+<!-- ==================== 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 colspan="2" class="summary">
+ <p class="indent-wrapped-lines"><b>Inherited from <code>exceptions.Exception</code></b>:
+ <code>__init__</code>,
+ <code>__new__</code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>exceptions.BaseException</code></b>:
+ <code>__delattr__</code>,
+ <code>__getattribute__</code>,
+ <code>__getitem__</code>,
+ <code>__reduce__</code>,
+ <code>__repr__</code>,
+ <code>__setattr__</code>,
+ <code>__setstate__</code>,
+ <code>__str__</code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__hash__</code>,
+ <code>__reduce_ex__</code>
+ </p>
+ </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>exceptions.BaseException</code></b>:
+ <code>args</code>,
+ <code>message</code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__class__</code>
+ </p>
+ </td>
+ </tr>
+</table>
+<!-- ==================== 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 Jul 6 18:30:30 2008
+ </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.pipe-module.html b/docs/paramiko.pipe-module.html
new file mode 100644
index 0000000..808764c
--- /dev/null
+++ b/docs/paramiko.pipe-module.html
@@ -0,0 +1,215 @@
+<?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.pipe</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> ::
+ Module&nbsp;pipe
+ </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.pipe-module.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module pipe</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.pipe-pysrc.html">source&nbsp;code</a></span></p>
+<p>Abstraction of a one-way pipe where the read end can be used in
+ select(). Normally this is trivial, but Windows makes it nearly
+ impossible.</p>
+ <p>The pipe acts like an Event, which can be set or cleared. When set,
+ the pipe will trigger as readable in select().</p>
+
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></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">Classes</span></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.pipe.PosixPipe-class.html" class="summary-name">PosixPipe</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.pipe.WindowsPipe-class.html" class="summary-name">WindowsPipe</a><br />
+ On Windows, only an OS-level &quot;WinSock&quot; may be used in
+ select(), but reads and writes must be to the actual socket object.
+ </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.pipe.OrPipe-class.html" class="summary-name">OrPipe</a>
+ </td>
+ </tr>
+</table>
+<!-- ==================== FUNCTIONS ==================== -->
+<a name="section-Functions"></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">Functions</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="make_pipe"></a><span class="summary-sig-name">make_pipe</span>()</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.pipe-pysrc.html#make_pipe">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 href="paramiko.pipe-module.html#make_or_pipe" class="summary-sig-name">make_or_pipe</a>(<span class="summary-sig-arg">pipe</span>)</span><br />
+ wraps a pipe into two pipe-like objects which are &quot;or&quot;d
+ together to affect the real pipe.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.pipe-pysrc.html#make_or_pipe">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+</table>
+<!-- ==================== FUNCTION DETAILS ==================== -->
+<a name="section-FunctionDetails"></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">Function Details</span></td>
+</tr>
+</table>
+<a name="make_or_pipe"></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">make_or_pipe</span>(<span class="sig-arg">pipe</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.pipe-pysrc.html#make_or_pipe">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>wraps a pipe into two pipe-like objects which are &quot;or&quot;d
+ together to affect the real pipe. if either returned pipe is set, the
+ wrapped pipe is set. when both are cleared, the wrapped pipe is
+ cleared.</p>
+ <dl class="fields">
+ </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 Jul 6 18:30:27 2008
+ </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.pipe-pysrc.html b/docs/paramiko.pipe-pysrc.html
new file mode 100644
index 0000000..4a16395
--- /dev/null
+++ b/docs/paramiko.pipe-pysrc.html
@@ -0,0 +1,327 @@
+<?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.pipe</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> ::
+ Module&nbsp;pipe
+ </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.pipe-pysrc.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</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="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>
+<a name="L22"></a><tt class="py-lineno"> 22</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L23"></a><tt class="py-lineno"> 23</tt> <tt class="py-line"><tt class="py-docstring">The pipe acts like an Event, which can be set or cleared. When set, the pipe</tt> </tt>
+<a name="L24"></a><tt class="py-lineno"> 24</tt> <tt class="py-line"><tt class="py-docstring">will trigger as readable in select().</tt> </tt>
+<a name="L25"></a><tt class="py-lineno"> 25</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L26"></a><tt class="py-lineno"> 26</tt> <tt class="py-line"> </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">os</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">socket</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>
+<a name="make_pipe"></a><div id="make_pipe-def"><a name="L32"></a><tt class="py-lineno"> 32</tt> <a class="py-toggle" href="#" id="make_pipe-toggle" onclick="return toggle('make_pipe');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.pipe-module.html#make_pipe">make_pipe</a> <tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="make_pipe-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="make_pipe-expanded"><a name="L33"></a><tt class="py-lineno"> 33</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-op">:</tt><tt class="py-number">3</tt><tt class="py-op">]</tt> <tt class="py-op">!=</tt> <tt class="py-string">'win'</tt><tt class="py-op">:</tt> </tt>
+<a name="L34"></a><tt class="py-lineno"> 34</tt> <tt class="py-line"> <tt class="py-name">p</tt> <tt class="py-op">=</tt> <tt id="link-0" class="py-name" targets="Class paramiko.pipe.PosixPipe=paramiko.pipe.PosixPipe-class.html"><a title="paramiko.pipe.PosixPipe" class="py-name" href="#" onclick="return doclink('link-0', 'PosixPipe', 'link-0');">PosixPipe</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 class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line"> <tt class="py-name">p</tt> <tt class="py-op">=</tt> <tt id="link-1" class="py-name" targets="Class paramiko.pipe.WindowsPipe=paramiko.pipe.WindowsPipe-class.html"><a title="paramiko.pipe.WindowsPipe" class="py-name" href="#" onclick="return doclink('link-1', 'WindowsPipe', 'link-1');">WindowsPipe</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">p</tt> </tt>
+</div><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>
+<a name="PosixPipe"></a><div id="PosixPipe-def"><a name="L40"></a><tt class="py-lineno"> 40</tt> <a class="py-toggle" href="#" id="PosixPipe-toggle" onclick="return toggle('PosixPipe');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.pipe.PosixPipe-class.html">PosixPipe</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="PosixPipe-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="PosixPipe-expanded"><a name="PosixPipe.__init__"></a><div id="PosixPipe.__init__-def"><a name="L41"></a><tt class="py-lineno"> 41</tt> <a class="py-toggle" href="#" id="PosixPipe.__init__-toggle" onclick="return toggle('PosixPipe.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.pipe.PosixPipe-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="PosixPipe.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="PosixPipe.__init__-expanded"><a name="L42"></a><tt class="py-lineno"> 42</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_rfd</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 class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-2" class="py-name" targets="Module paramiko.pipe=paramiko.pipe-module.html"><a title="paramiko.pipe" class="py-name" href="#" onclick="return doclink('link-2', 'pipe', 'link-2');">pipe</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_set</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_forever</tt> <tt class="py-op">=</tt> <tt class="py-name">False</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 class="py-name">_closed</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+</div><a name="L46"></a><tt class="py-lineno"> 46</tt> <tt class="py-line"> </tt>
+<a name="PosixPipe.close"></a><div id="PosixPipe.close-def"><a name="L47"></a><tt class="py-lineno"> 47</tt> <a class="py-toggle" href="#" id="PosixPipe.close-toggle" onclick="return toggle('PosixPipe.close');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.pipe.PosixPipe-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="PosixPipe.close-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="PosixPipe.close-expanded"><a name="L48"></a><tt class="py-lineno"> 48</tt> <tt class="py-line"> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3" 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
+paramiko.SFTPFile.close
+paramiko.SFTPHandle.close
+paramiko.SSHClient.close
+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-3', '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">_rfd</tt><tt class="py-op">)</tt> </tt>
+<a name="L49"></a><tt class="py-lineno"> 49</tt> <tt class="py-line"> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-4" class="py-name"><a title="paramiko.Agent.close
+paramiko.BufferedFile.close
+paramiko.Channel.close
+paramiko.SFTPClient.close
+paramiko.SFTPFile.close
+paramiko.SFTPHandle.close
+paramiko.SSHClient.close
+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-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>
+</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>
+</div><a name="L55"></a><tt class="py-lineno"> 55</tt> <tt class="py-line"> </tt>
+<a name="PosixPipe.clear"></a><div id="PosixPipe.clear-def"><a name="L56"></a><tt class="py-lineno"> 56</tt> <a class="py-toggle" href="#" id="PosixPipe.clear-toggle" onclick="return toggle('PosixPipe.clear');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.pipe.PosixPipe-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="PosixPipe.clear-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="PosixPipe.clear-expanded"><a name="L57"></a><tt class="py-lineno"> 57</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">_set</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_forever</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-name">os</tt><tt class="py-op">.</tt><tt id="link-5" 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-5', 'read', 'link-5');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_rfd</tt><tt class="py-op">,</tt> <tt class="py-number">1</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">self</tt><tt class="py-op">.</tt><tt class="py-name">_set</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+</div><a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"> </tt>
+<a name="PosixPipe.set"></a><div id="PosixPipe.set-def"><a name="L62"></a><tt class="py-lineno"> 62</tt> <a class="py-toggle" href="#" id="PosixPipe.set-toggle" onclick="return toggle('PosixPipe.set');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.pipe.PosixPipe-class.html#set">set</a> <tt 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.set-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="PosixPipe.set-expanded"><a name="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_set</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="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</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-name">True</tt> </tt>
+<a name="L66"></a><tt class="py-lineno"> 66</tt> <tt class="py-line"> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-6" 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-6', 'write', 'link-6');">write</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 class="py-string">'*'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line"> </tt>
+<a name="PosixPipe.set_forever"></a><div id="PosixPipe.set_forever-def"><a name="L68"></a><tt class="py-lineno"> 68</tt> <a class="py-toggle" href="#" id="PosixPipe.set_forever-toggle" onclick="return toggle('PosixPipe.set_forever');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.pipe.PosixPipe-class.html#set_forever">set_forever</a> <tt 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.set_forever-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="PosixPipe.set_forever-expanded"><a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_forever</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<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 id="link-7" 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-7', 'set', 'link-7');">set</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div></div><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>
+<a name="WindowsPipe"></a><div id="WindowsPipe-def"><a name="L73"></a><tt class="py-lineno"> 73</tt> <a class="py-toggle" href="#" id="WindowsPipe-toggle" onclick="return toggle('WindowsPipe');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.pipe.WindowsPipe-class.html">WindowsPipe</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="WindowsPipe-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="WindowsPipe-expanded"><a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"><tt class="py-docstring"> On Windows, only an OS-level "WinSock" may be used in select(), but reads</tt> </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"><tt class="py-docstring"> and writes must be to the actual socket object.</tt> </tt>
+<a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="WindowsPipe.__init__"></a><div id="WindowsPipe.__init__-def"><a name="L78"></a><tt class="py-lineno"> 78</tt> <a class="py-toggle" href="#" id="WindowsPipe.__init__-toggle" onclick="return toggle('WindowsPipe.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.pipe.WindowsPipe-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="WindowsPipe.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="WindowsPipe.__init__-expanded"><a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line"> <tt class="py-name">serv</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="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"> <tt class="py-name">serv</tt><tt class="py-op">.</tt><tt class="py-name">bind</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-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-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="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>
+<a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_wsock</tt><tt class="py-op">,</tt> <tt class="py-name">addr</tt> <tt class="py-op">=</tt> <tt class="py-name">serv</tt><tt class="py-op">.</tt><tt id="link-9" class="py-name" targets="Method paramiko.Transport.accept()=paramiko.Transport-class.html#accept"><a title="paramiko.Transport.accept" class="py-name" href="#" onclick="return doclink('link-9', 'accept', 'link-9');">accept</a></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">serv</tt><tt class="py-op">.</tt><tt id="link-10" class="py-name"><a title="paramiko.Agent.close
+paramiko.BufferedFile.close
+paramiko.Channel.close
+paramiko.SFTPClient.close
+paramiko.SFTPFile.close
+paramiko.SFTPHandle.close
+paramiko.SSHClient.close
+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-10', 'close', 'link-3');">close</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">_set</tt> <tt class="py-op">=</tt> <tt class="py-name">False</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">_forever</tt> <tt class="py-op">=</tt> <tt class="py-name">False</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">_closed</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+</div><a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line"> </tt>
+<a name="WindowsPipe.close"></a><div id="WindowsPipe.close-def"><a name="L93"></a><tt class="py-lineno"> 93</tt> <a class="py-toggle" href="#" id="WindowsPipe.close-toggle" onclick="return toggle('WindowsPipe.close');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.pipe.WindowsPipe-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="WindowsPipe.close-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="WindowsPipe.close-expanded"><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">_rsock</tt><tt class="py-op">.</tt><tt id="link-11" class="py-name"><a title="paramiko.Agent.close
+paramiko.BufferedFile.close
+paramiko.Channel.close
+paramiko.SFTPClient.close
+paramiko.SFTPFile.close
+paramiko.SFTPHandle.close
+paramiko.SSHClient.close
+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-11', 'close', 'link-3');">close</a></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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_wsock</tt><tt class="py-op">.</tt><tt id="link-12" class="py-name"><a title="paramiko.Agent.close
+paramiko.BufferedFile.close
+paramiko.Channel.close
+paramiko.SFTPClient.close
+paramiko.SFTPFile.close
+paramiko.SFTPHandle.close
+paramiko.SSHClient.close
+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-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>
+</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
+paramiko.pipe.PosixPipe.fileno
+paramiko.pipe.WindowsPipe.fileno" class="py-name" href="#" onclick="return doclink('link-13', 'fileno', 'link-13');">fileno</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"> </tt>
+<a name="WindowsPipe.clear"></a><div id="WindowsPipe.clear-def"><a name="L102"></a><tt class="py-lineno">102</tt> <a class="py-toggle" href="#" id="WindowsPipe.clear-toggle" onclick="return toggle('WindowsPipe.clear');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.pipe.WindowsPipe-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="WindowsPipe.clear-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="WindowsPipe.clear-expanded"><a name="L103"></a><tt class="py-lineno">103</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">_set</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_forever</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>
+<a name="L105"></a><tt class="py-lineno">105</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-14" 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-14', 'recv', 'link-14');">recv</a></tt><tt class="py-op">(</tt><tt class="py-number">1</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 class="py-name">_set</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+</div><a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"> </tt>
+<a name="WindowsPipe.set"></a><div id="WindowsPipe.set-def"><a name="L108"></a><tt class="py-lineno">108</tt> <a class="py-toggle" href="#" id="WindowsPipe.set-toggle" onclick="return toggle('WindowsPipe.set');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.pipe.WindowsPipe-class.html#set">set</a> <tt 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.set-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="WindowsPipe.set-expanded"><a name="L109"></a><tt class="py-lineno">109</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_set</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="L110"></a><tt class="py-lineno">110</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L111"></a><tt class="py-lineno">111</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-name">True</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">_wsock</tt><tt class="py-op">.</tt><tt id="link-15" 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-15', 'send', 'link-15');">send</a></tt><tt class="py-op">(</tt><tt class="py-string">'*'</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="WindowsPipe.set_forever"></a><div id="WindowsPipe.set_forever-def"><a name="L114"></a><tt class="py-lineno">114</tt> <a class="py-toggle" href="#" id="WindowsPipe.set_forever-toggle" onclick="return toggle('WindowsPipe.set_forever');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.pipe.WindowsPipe-class.html#set_forever">set_forever</a> <tt 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.set_forever-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="WindowsPipe.set_forever-expanded"><a name="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_forever</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L116"></a><tt class="py-lineno">116</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.pipe.OrPipe.set
+paramiko.pipe.PosixPipe.set
+paramiko.pipe.WindowsPipe.set" class="py-name" href="#" onclick="return doclink('link-16', 'set', 'link-7');">set</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"> </tt>
+<a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"> </tt>
+<a name="OrPipe"></a><div id="OrPipe-def"><a name="L119"></a><tt class="py-lineno">119</tt> <a class="py-toggle" href="#" id="OrPipe-toggle" onclick="return toggle('OrPipe');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.pipe.OrPipe-class.html">OrPipe</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="OrPipe-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="OrPipe-expanded"><a name="OrPipe.__init__"></a><div id="OrPipe.__init__-def"><a name="L120"></a><tt class="py-lineno">120</tt> <a class="py-toggle" href="#" id="OrPipe.__init__-toggle" onclick="return toggle('OrPipe.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.pipe.OrPipe-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">pipe</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="OrPipe.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="OrPipe.__init__-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-name">False</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">_partner</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">_pipe</tt> <tt class="py-op">=</tt> <tt id="link-17" class="py-name"><a title="paramiko.pipe" class="py-name" href="#" onclick="return doclink('link-17', 'pipe', 'link-2');">pipe</a></tt> </tt>
+</div><a name="L124"></a><tt class="py-lineno">124</tt> <tt class="py-line"> </tt>
+<a name="OrPipe.set"></a><div id="OrPipe.set-def"><a name="L125"></a><tt class="py-lineno">125</tt> <a class="py-toggle" href="#" id="OrPipe.set-toggle" onclick="return toggle('OrPipe.set');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.pipe.OrPipe-class.html#set">set</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="OrPipe.set-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="OrPipe.set-expanded"><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 class="py-name">_set</tt> <tt class="py-op">=</tt> <tt class="py-name">True</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-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_partner</tt><tt class="py-op">.</tt><tt class="py-name">_set</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">self</tt><tt class="py-op">.</tt><tt class="py-name">_pipe</tt><tt class="py-op">.</tt><tt id="link-18" 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-18', 'set', 'link-7');">set</a></tt><tt class="py-op">(</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="OrPipe.clear"></a><div id="OrPipe.clear-def"><a name="L130"></a><tt class="py-lineno">130</tt> <a class="py-toggle" href="#" id="OrPipe.clear-toggle" onclick="return toggle('OrPipe.clear');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.pipe.OrPipe-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="OrPipe.clear-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="OrPipe.clear-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-name">False</tt> </tt>
+<a name="L132"></a><tt class="py-lineno">132</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">_partner</tt><tt class="py-op">.</tt><tt class="py-name">_set</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">self</tt><tt class="py-op">.</tt><tt class="py-name">_pipe</tt><tt class="py-op">.</tt><tt id="link-19" 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-19', 'clear', 'link-19');">clear</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L134"></a><tt class="py-lineno">134</tt> <tt class="py-line"> </tt>
+<a name="L135"></a><tt class="py-lineno">135</tt> <tt class="py-line"> </tt>
+<a name="make_or_pipe"></a><div id="make_or_pipe-def"><a name="L136"></a><tt class="py-lineno">136</tt> <a class="py-toggle" href="#" id="make_or_pipe-toggle" onclick="return toggle('make_or_pipe');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.pipe-module.html#make_or_pipe">make_or_pipe</a><tt class="py-op">(</tt><tt class="py-param">pipe</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="make_or_pipe-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="make_or_pipe-expanded"><a name="L137"></a><tt class="py-lineno">137</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L138"></a><tt class="py-lineno">138</tt> <tt class="py-line"><tt class="py-docstring"> wraps a pipe into two pipe-like objects which are "or"d together to</tt> </tt>
+<a name="L139"></a><tt class="py-lineno">139</tt> <tt class="py-line"><tt class="py-docstring"> affect the real pipe. if either returned pipe is set, the wrapped pipe</tt> </tt>
+<a name="L140"></a><tt class="py-lineno">140</tt> <tt class="py-line"><tt class="py-docstring"> is set. when both are cleared, the wrapped pipe is cleared.</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-name">p1</tt> <tt class="py-op">=</tt> <tt id="link-20" class="py-name" targets="Class paramiko.pipe.OrPipe=paramiko.pipe.OrPipe-class.html"><a title="paramiko.pipe.OrPipe" class="py-name" href="#" onclick="return doclink('link-20', 'OrPipe', 'link-20');">OrPipe</a></tt><tt class="py-op">(</tt><tt id="link-21" class="py-name"><a title="paramiko.pipe" class="py-name" href="#" onclick="return doclink('link-21', 'pipe', 'link-2');">pipe</a></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">p2</tt> <tt class="py-op">=</tt> <tt id="link-22" class="py-name"><a title="paramiko.pipe.OrPipe" class="py-name" href="#" onclick="return doclink('link-22', 'OrPipe', 'link-20');">OrPipe</a></tt><tt class="py-op">(</tt><tt id="link-23" class="py-name"><a title="paramiko.pipe" class="py-name" href="#" onclick="return doclink('link-23', 'pipe', 'link-2');">pipe</a></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">p1</tt><tt class="py-op">.</tt><tt class="py-name">_partner</tt> <tt class="py-op">=</tt> <tt class="py-name">p2</tt> </tt>
+<a name="L145"></a><tt class="py-lineno">145</tt> <tt class="py-line"> <tt class="py-name">p2</tt><tt class="py-op">.</tt><tt class="py-name">_partner</tt> <tt class="py-op">=</tt> <tt class="py-name">p1</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">p1</tt><tt class="py-op">,</tt> <tt class="py-name">p2</tt> </tt>
+</div><a name="L147"></a><tt class="py-lineno">147</tt> <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<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 Jul 6 18:30:35 2008
+ </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.pipe.OrPipe-class.html b/docs/paramiko.pipe.OrPipe-class.html
new file mode 100644
index 0000000..225310f
--- /dev/null
+++ b/docs/paramiko.pipe.OrPipe-class.html
@@ -0,0 +1,236 @@
+<?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.pipe.OrPipe</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.pipe-module.html" onclick="show_private();">Module&nbsp;pipe</a> ::
+ Class&nbsp;OrPipe
+ </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.pipe.OrPipe-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class OrPipe</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.pipe-pysrc.html#OrPipe">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+object --+
+ |
+ <strong class="uidshort">OrPipe</strong>
+</pre>
+
+<hr />
+<!-- ==================== 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.pipe.OrPipe-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">pipe</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.pipe-pysrc.html#OrPipe.__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="set"></a><span class="summary-sig-name">set</span>(<span class="summary-sig-arg">self</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.pipe-pysrc.html#OrPipe.set">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="clear"></a><span class="summary-sig-name">clear</span>(<span class="summary-sig-arg">self</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.pipe-pysrc.html#OrPipe.clear">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>__getattribute__</code>,
+ <code>__hash__</code>,
+ <code>__new__</code>,
+ <code>__reduce__</code>,
+ <code>__reduce_ex__</code>,
+ <code>__repr__</code>,
+ <code>__setattr__</code>,
+ <code>__str__</code>
+ </p>
+ </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">pipe</span>)</span>
+ <br /><em class="fname">(Constructor)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.pipe-pysrc.html#OrPipe.__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 Jul 6 18:30:30 2008
+ </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.pipe.PosixPipe-class.html b/docs/paramiko.pipe.PosixPipe-class.html
new file mode 100644
index 0000000..b0b67eb
--- /dev/null
+++ b/docs/paramiko.pipe.PosixPipe-class.html
@@ -0,0 +1,282 @@
+<?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.pipe.PosixPipe</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.pipe-module.html" onclick="show_private();">Module&nbsp;pipe</a> ::
+ Class&nbsp;PosixPipe
+ </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.pipe.PosixPipe-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class PosixPipe</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.pipe-pysrc.html#PosixPipe">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+object --+
+ |
+ <strong class="uidshort">PosixPipe</strong>
+</pre>
+
+<hr />
+<!-- ==================== 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.pipe.PosixPipe-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</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.pipe-pysrc.html#PosixPipe.__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="close"></a><span class="summary-sig-name">close</span>(<span class="summary-sig-arg">self</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.pipe-pysrc.html#PosixPipe.close">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="fileno"></a><span class="summary-sig-name">fileno</span>(<span class="summary-sig-arg">self</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.pipe-pysrc.html#PosixPipe.fileno">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="clear"></a><span class="summary-sig-name">clear</span>(<span class="summary-sig-arg">self</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.pipe-pysrc.html#PosixPipe.clear">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="set"></a><span class="summary-sig-name">set</span>(<span class="summary-sig-arg">self</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.pipe-pysrc.html#PosixPipe.set">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="set_forever"></a><span class="summary-sig-name">set_forever</span>(<span class="summary-sig-arg">self</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.pipe-pysrc.html#PosixPipe.set_forever">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>__getattribute__</code>,
+ <code>__hash__</code>,
+ <code>__new__</code>,
+ <code>__reduce__</code>,
+ <code>__reduce_ex__</code>,
+ <code>__repr__</code>,
+ <code>__setattr__</code>,
+ <code>__str__</code>
+ </p>
+ </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>
+ <br /><em class="fname">(Constructor)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.pipe-pysrc.html#PosixPipe.__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 Jul 6 18:30:30 2008
+ </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.pipe.WindowsPipe-class.html b/docs/paramiko.pipe.WindowsPipe-class.html
new file mode 100644
index 0000000..7e20560
--- /dev/null
+++ b/docs/paramiko.pipe.WindowsPipe-class.html
@@ -0,0 +1,285 @@
+<?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.pipe.WindowsPipe</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.pipe-module.html" onclick="show_private();">Module&nbsp;pipe</a> ::
+ Class&nbsp;WindowsPipe
+ </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.pipe.WindowsPipe-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class WindowsPipe</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.pipe-pysrc.html#WindowsPipe">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+object --+
+ |
+ <strong class="uidshort">WindowsPipe</strong>
+</pre>
+
+<hr />
+<p>On Windows, only an OS-level &quot;WinSock&quot; may be used in
+ select(), but reads and writes must be to the actual socket object.</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.pipe.WindowsPipe-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</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.pipe-pysrc.html#WindowsPipe.__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="close"></a><span class="summary-sig-name">close</span>(<span class="summary-sig-arg">self</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.pipe-pysrc.html#WindowsPipe.close">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="fileno"></a><span class="summary-sig-name">fileno</span>(<span class="summary-sig-arg">self</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.pipe-pysrc.html#WindowsPipe.fileno">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="clear"></a><span class="summary-sig-name">clear</span>(<span class="summary-sig-arg">self</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.pipe-pysrc.html#WindowsPipe.clear">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="set"></a><span class="summary-sig-name">set</span>(<span class="summary-sig-arg">self</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.pipe-pysrc.html#WindowsPipe.set">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="set_forever"></a><span class="summary-sig-name">set_forever</span>(<span class="summary-sig-arg">self</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.pipe-pysrc.html#WindowsPipe.set_forever">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>__getattribute__</code>,
+ <code>__hash__</code>,
+ <code>__new__</code>,
+ <code>__reduce__</code>,
+ <code>__reduce_ex__</code>,
+ <code>__repr__</code>,
+ <code>__setattr__</code>,
+ <code>__str__</code>
+ </p>
+ </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>
+ <br /><em class="fname">(Constructor)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.pipe-pysrc.html#WindowsPipe.__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 Jul 6 18:30:30 2008
+ </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.pkey-module.html b/docs/paramiko.pkey-module.html
new file mode 100644
index 0000000..baa61f7
--- /dev/null
+++ b/docs/paramiko.pkey-module.html
@@ -0,0 +1,524 @@
+<?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.pkey</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> ::
+ Module&nbsp;pkey
+ </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.pkey-module.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module pkey</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.pkey-pysrc.html">source&nbsp;code</a></span></p>
+<p>Common API for all public keys.</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="AUTH_FAILED"></a><span class="summary-name">AUTH_FAILED</span> = <code title="2">2</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_PARTIALLY_SUCCESSFUL"></a><span class="summary-name">AUTH_PARTIALLY_SUCCESSFUL</span> = <code title="1">1</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_SUCCESSFUL"></a><span class="summary-name">AUTH_SUCCESSFUL</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 href="paramiko.pkey-module.html#CONNECTION_FAILED_CODE" class="summary-name">CONNECTION_FAILED_CODE</a> = <code title="{1: 'Administratively prohibited',
+ 2: 'Connect failed',
+ 3: 'Unknown channel type',
+ 4: 'Resource shortage'}"><code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Administratively prohibited</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-op">:</code><code class="variable-ellipsis">...</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="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="DEBUG"></a><span class="summary-name">DEBUG</span> = <code title="10">10</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="DISCONNECT_AUTH_CANCELLED_BY_USER"></a><span class="summary-name">DISCONNECT_AUTH_CANCELLED_BY_USER</span> = <code title="13">13</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="DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE"></a><span class="summary-name">DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE</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="DISCONNECT_SERVICE_NOT_AVAILABLE"></a><span class="summary-name">DISCONNECT_SERVICE_NOT_AVAILABLE</span> = <code title="7">7</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="ERROR"></a><span class="summary-name">ERROR</span> = <code title="40">40</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="INFO"></a><span class="summary-name">INFO</span> = <code title="20">20</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="MSG_CHANNEL_CLOSE"></a><span class="summary-name">MSG_CHANNEL_CLOSE</span> = <code title="97">97</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="MSG_CHANNEL_DATA"></a><span class="summary-name">MSG_CHANNEL_DATA</span> = <code title="94">94</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="MSG_CHANNEL_EOF"></a><span class="summary-name">MSG_CHANNEL_EOF</span> = <code title="96">96</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="MSG_CHANNEL_EXTENDED_DATA"></a><span class="summary-name">MSG_CHANNEL_EXTENDED_DATA</span> = <code title="95">95</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="MSG_CHANNEL_FAILURE"></a><span class="summary-name">MSG_CHANNEL_FAILURE</span> = <code title="100">100</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="MSG_CHANNEL_OPEN"></a><span class="summary-name">MSG_CHANNEL_OPEN</span> = <code title="90">90</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="MSG_CHANNEL_OPEN_FAILURE"></a><span class="summary-name">MSG_CHANNEL_OPEN_FAILURE</span> = <code title="92">92</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="MSG_CHANNEL_OPEN_SUCCESS"></a><span class="summary-name">MSG_CHANNEL_OPEN_SUCCESS</span> = <code title="91">91</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="MSG_CHANNEL_REQUEST"></a><span class="summary-name">MSG_CHANNEL_REQUEST</span> = <code title="98">98</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="MSG_CHANNEL_SUCCESS"></a><span class="summary-name">MSG_CHANNEL_SUCCESS</span> = <code title="99">99</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="MSG_CHANNEL_WINDOW_ADJUST"></a><span class="summary-name">MSG_CHANNEL_WINDOW_ADJUST</span> = <code title="93">93</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="MSG_DEBUG"></a><span class="summary-name">MSG_DEBUG</span> = <code title="4">4</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="MSG_DISCONNECT"></a><span class="summary-name">MSG_DISCONNECT</span> = <code title="1">1</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="MSG_GLOBAL_REQUEST"></a><span class="summary-name">MSG_GLOBAL_REQUEST</span> = <code title="80">80</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="MSG_IGNORE"></a><span class="summary-name">MSG_IGNORE</span> = <code title="2">2</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="MSG_KEXINIT"></a><span class="summary-name">MSG_KEXINIT</span> = <code title="20">20</code>
+ </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.pkey-module.html#MSG_NAMES" class="summary-name">MSG_NAMES</a> = <code title="{1: 'disconnect',
+ 2: 'ignore',
+ 3: 'unimplemented',
+ 4: 'debug',
+ 5: 'service-request',
+ 6: 'service-accept',
+ 20: 'kexinit',
+ 21: 'newkeys',
+..."><code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">disconnect</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">ignore</code><code class="variable-quote">'</code><code class="variable-op">, </code>3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">unimplemented</code><code class="variable-quote">'</code><code class="variable-op">,</code><code class="variable-ellipsis">...</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="MSG_NEWKEYS"></a><span class="summary-name">MSG_NEWKEYS</span> = <code title="21">21</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="MSG_REQUEST_FAILURE"></a><span class="summary-name">MSG_REQUEST_FAILURE</span> = <code title="82">82</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="MSG_REQUEST_SUCCESS"></a><span class="summary-name">MSG_REQUEST_SUCCESS</span> = <code title="81">81</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="MSG_SERVICE_ACCEPT"></a><span class="summary-name">MSG_SERVICE_ACCEPT</span> = <code title="6">6</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="MSG_SERVICE_REQUEST"></a><span class="summary-name">MSG_SERVICE_REQUEST</span> = <code title="5">5</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="MSG_UNIMPLEMENTED"></a><span class="summary-name">MSG_UNIMPLEMENTED</span> = <code title="3">3</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="MSG_USERAUTH_BANNER"></a><span class="summary-name">MSG_USERAUTH_BANNER</span> = <code title="53">53</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="MSG_USERAUTH_FAILURE"></a><span class="summary-name">MSG_USERAUTH_FAILURE</span> = <code title="51">51</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="MSG_USERAUTH_INFO_REQUEST"></a><span class="summary-name">MSG_USERAUTH_INFO_REQUEST</span> = <code title="60">60</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="MSG_USERAUTH_INFO_RESPONSE"></a><span class="summary-name">MSG_USERAUTH_INFO_RESPONSE</span> = <code title="61">61</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="MSG_USERAUTH_PK_OK"></a><span class="summary-name">MSG_USERAUTH_PK_OK</span> = <code title="60">60</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="MSG_USERAUTH_REQUEST"></a><span class="summary-name">MSG_USERAUTH_REQUEST</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="MSG_USERAUTH_SUCCESS"></a><span class="summary-name">MSG_USERAUTH_SUCCESS</span> = <code title="52">52</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="OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED"></a><span class="summary-name">OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED</span> = <code title="1">1</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="OPEN_FAILED_CONNECT_FAILED"></a><span class="summary-name">OPEN_FAILED_CONNECT_FAILED</span> = <code title="2">2</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="OPEN_FAILED_RESOURCE_SHORTAGE"></a><span class="summary-name">OPEN_FAILED_RESOURCE_SHORTAGE</span> = <code title="4">4</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="OPEN_FAILED_UNKNOWN_CHANNEL_TYPE"></a><span class="summary-name">OPEN_FAILED_UNKNOWN_CHANNEL_TYPE</span> = <code title="3">3</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="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="PY22"></a><span class="summary-name">PY22</span> = <code title="False">False</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="WARNING"></a><span class="summary-name">WARNING</span> = <code title="30">30</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>
+</table>
+<!-- ==================== VARIABLES DETAILS ==================== -->
+<a name="section-VariablesDetails"></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">Variables Details</span></td>
+</tr>
+</table>
+<a name="CONNECTION_FAILED_CODE"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">CONNECTION_FAILED_CODE</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Administratively prohibited</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Connect failed</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Unknown channel type</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Resource shortage</code><code class="variable-quote">'</code><code class="variable-group">}</code>
+</pre></td></tr></table>
+</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="MSG_NAMES"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">MSG_NAMES</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">disconnect</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">ignore</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">unimplemented</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">debug</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 5<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">service-request</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 6<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">service-accept</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 20<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">kexinit</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 21<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">newkeys</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+ </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 Jul 6 18:30:27 2008
+ </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.pkey-pysrc.html b/docs/paramiko.pkey-pysrc.html
new file mode 100644
index 0000000..8a9e368
--- /dev/null
+++ b/docs/paramiko.pkey-pysrc.html
@@ -0,0 +1,540 @@
+<?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.pkey</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> ::
+ Module&nbsp;pkey
+ </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.pkey-pysrc.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</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="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>
+<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">import</tt> <tt class="py-name">base64</tt> </tt>
+<a name="L24"></a><tt class="py-lineno"> 24</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="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>
+<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">Hash</tt> <tt class="py-keyword">import</tt> <tt class="py-name">MD5</tt> </tt>
+<a name="L28"></a><tt class="py-lineno"> 28</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">DES3</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.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="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-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>
+<a name="L32"></a><tt class="py-lineno"> 32</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-4" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-4', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-5" class="py-name" targets="Module paramiko.message=paramiko.message-module.html"><a title="paramiko.message" class="py-name" href="#" onclick="return doclink('link-5', 'message', 'link-5');">message</a></tt> <tt class="py-keyword">import</tt> <tt id="link-6" class="py-name" targets="Class paramiko.Message=paramiko.Message-class.html"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-6', 'Message', 'link-6');">Message</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-7" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-7', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-8" 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-8', 'ssh_exception', 'link-8');">ssh_exception</a></tt> <tt class="py-keyword">import</tt> <tt id="link-9" class="py-name" targets="Class paramiko.SSHException=paramiko.SSHException-class.html"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-9', 'SSHException', 'link-9');">SSHException</a></tt><tt class="py-op">,</tt> <tt id="link-10" class="py-name" targets="Class paramiko.PasswordRequiredException=paramiko.PasswordRequiredException-class.html"><a title="paramiko.PasswordRequiredException" class="py-name" href="#" onclick="return doclink('link-10', 'PasswordRequiredException', 'link-10');">PasswordRequiredException</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>
+<a name="PKey"></a><div id="PKey-def"><a name="L36"></a><tt class="py-lineno"> 36</tt> <a class="py-toggle" href="#" id="PKey-toggle" onclick="return toggle('PKey');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.pkey.PKey-class.html">PKey</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="PKey-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="PKey-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"> Base class for public keys.</tt> </tt>
+<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="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>
+<a name="L46"></a><tt class="py-lineno"> 46</tt> <tt class="py-line"> </tt>
+<a name="PKey.__init__"></a><div id="PKey.__init__-def"><a name="L47"></a><tt class="py-lineno"> 47</tt> <a class="py-toggle" href="#" id="PKey.__init__-toggle" onclick="return toggle('PKey.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.pkey.PKey-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">msg</tt><tt class="py-op">=</tt><tt class="py-name">None</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-op">:</tt> </tt>
+</div><div id="PKey.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="PKey.__init__-expanded"><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"> Create a new instance of this public key type. If C{msg} is given,</tt> </tt>
+<a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"><tt class="py-docstring"> the key's public part(s) will be filled in from the message. If</tt> </tt>
+<a name="L51"></a><tt class="py-lineno"> 51</tt> <tt class="py-line"><tt class="py-docstring"> C{data} is given, the key's public part(s) will be filled in from</tt> </tt>
+<a name="L52"></a><tt class="py-lineno"> 52</tt> <tt class="py-line"><tt class="py-docstring"> the string.</tt> </tt>
+<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"> @param msg: an optional SSH L{Message} containing a public key of this</tt> </tt>
+<a name="L55"></a><tt class="py-lineno"> 55</tt> <tt class="py-line"><tt class="py-docstring"> type.</tt> </tt>
+<a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"><tt class="py-docstring"> @type msg: L{Message}</tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"><tt class="py-docstring"> @param data: an optional string containing a public key of this type</tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"><tt class="py-docstring"> @type data: str</tt> </tt>
+<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"> @raise SSHException: if a key cannot be created from the C{data} or</tt> </tt>
+<a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"><tt class="py-docstring"> C{msg} given, or no key was passed in.</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-keyword">pass</tt> </tt>
+</div><a name="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line"> </tt>
+<a name="PKey.__str__"></a><div id="PKey.__str__-def"><a name="L65"></a><tt class="py-lineno"> 65</tt> <a class="py-toggle" href="#" id="PKey.__str__-toggle" onclick="return toggle('PKey.__str__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.pkey.PKey-class.html#__str__">__str__</a><tt 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.__str__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="PKey.__str__-expanded"><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 class="py-docstring"> Return a string of an SSH L{Message} made up of the public part(s) of</tt> </tt>
+<a name="L68"></a><tt class="py-lineno"> 68</tt> <tt class="py-line"><tt class="py-docstring"> this key. This string is suitable for passing to L{__init__} to</tt> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"><tt class="py-docstring"> re-create the key object later.</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-docstring"> @return: string representation of an SSH key message.</tt> </tt>
+<a name="L72"></a><tt class="py-lineno"> 72</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: str</tt> </tt>
+<a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"><tt class="py-docstring"> """</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-string">''</tt> </tt>
+</div><a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"> </tt>
+<a name="PKey.__cmp__"></a><div id="PKey.__cmp__-def"><a name="L76"></a><tt class="py-lineno"> 76</tt> <a class="py-toggle" href="#" id="PKey.__cmp__-toggle" onclick="return toggle('PKey.__cmp__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.pkey.PKey-class.html#__cmp__">__cmp__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">other</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="PKey.__cmp__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="PKey.__cmp__-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"> Compare this key to another. Returns 0 if this key is equivalent to</tt> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line"><tt class="py-docstring"> the given key, or non-0 if they are different. Only the public parts</tt> </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"><tt class="py-docstring"> of the key are compared, so a public key will compare equal to its</tt> </tt>
+<a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"><tt class="py-docstring"> corresponding private key.</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"> @param other: key to compare to.</tt> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"><tt class="py-docstring"> @type other: L{PKey}</tt> </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"><tt class="py-docstring"> @return: 0 if the two keys are equivalent, non-0 otherwise.</tt> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: int</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-name">hs</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>
+<a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"> <tt class="py-name">ho</tt> <tt class="py-op">=</tt> <tt class="py-name">hash</tt><tt class="py-op">(</tt><tt class="py-name">other</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">hs</tt> <tt class="py-op">!=</tt> <tt class="py-name">ho</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">return</tt> <tt class="py-name">cmp</tt><tt class="py-op">(</tt><tt class="py-name">hs</tt><tt class="py-op">,</tt> <tt class="py-name">ho</tt><tt class="py-op">)</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">cmp</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-name">str</tt><tt class="py-op">(</tt><tt class="py-name">other</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"> </tt>
+<a name="PKey.get_name"></a><div id="PKey.get_name-def"><a name="L94"></a><tt class="py-lineno"> 94</tt> <a class="py-toggle" href="#" id="PKey.get_name-toggle" onclick="return toggle('PKey.get_name');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.pkey.PKey-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="PKey.get_name-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="PKey.get_name-expanded"><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"> Return the name of this private key implementation.</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-docstring"> @return: name of this private key type, in SSH terminology (for</tt> </tt>
+<a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"><tt class="py-docstring"> example, C{"ssh-rsa"}).</tt> </tt>
+<a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: str</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-keyword">return</tt> <tt class="py-string">''</tt> </tt>
+</div><a name="L103"></a><tt class="py-lineno">103</tt> <tt class="py-line"> </tt>
+<a name="PKey.get_bits"></a><div id="PKey.get_bits-def"><a name="L104"></a><tt class="py-lineno">104</tt> <a class="py-toggle" href="#" id="PKey.get_bits-toggle" onclick="return toggle('PKey.get_bits');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.pkey.PKey-class.html#get_bits">get_bits</a><tt 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_bits-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="PKey.get_bits-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 the number of significant bits in this key. This is useful</tt> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"><tt class="py-docstring"> for judging the relative security of a key.</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"> @return: bits in the key.</tt> </tt>
+<a name="L110"></a><tt class="py-lineno">110</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: int</tt> </tt>
+<a name="L111"></a><tt class="py-lineno">111</tt> <tt class="py-line"><tt class="py-docstring"> """</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-number">0</tt> </tt>
+</div><a name="L113"></a><tt class="py-lineno">113</tt> <tt class="py-line"> </tt>
+<a name="PKey.can_sign"></a><div id="PKey.can_sign-def"><a name="L114"></a><tt class="py-lineno">114</tt> <a class="py-toggle" href="#" id="PKey.can_sign-toggle" onclick="return toggle('PKey.can_sign');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.pkey.PKey-class.html#can_sign">can_sign</a><tt 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.can_sign-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="PKey.can_sign-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"> Return C{True} if this key has the private part necessary for signing</tt> </tt>
+<a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"><tt class="py-docstring"> data.</tt> </tt>
+<a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"><tt class="py-docstring"> @return: C{True} if this is a private key.</tt> </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: bool</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-keyword">return</tt> <tt class="py-name">False</tt> </tt>
+</div><a name="L123"></a><tt class="py-lineno">123</tt> <tt class="py-line"> </tt>
+<a name="PKey.get_fingerprint"></a><div id="PKey.get_fingerprint-def"><a name="L124"></a><tt class="py-lineno">124</tt> <a class="py-toggle" href="#" id="PKey.get_fingerprint-toggle" onclick="return toggle('PKey.get_fingerprint');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.pkey.PKey-class.html#get_fingerprint">get_fingerprint</a><tt 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_fingerprint-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="PKey.get_fingerprint-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"> Return an MD5 fingerprint of the public part of this key. Nothing</tt> </tt>
+<a name="L127"></a><tt class="py-lineno">127</tt> <tt class="py-line"><tt class="py-docstring"> secret is revealed.</tt> </tt>
+<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"> @return: a 16-byte string (binary) of the MD5 fingerprint, in SSH</tt> </tt>
+<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>
+</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>
+<a name="L137"></a><tt class="py-lineno">137</tt> <tt class="py-line"><tt class="py-docstring"> Return a base64 string containing the public part of this key. Nothing</tt> </tt>
+<a name="L138"></a><tt class="py-lineno">138</tt> <tt class="py-line"><tt class="py-docstring"> secret is revealed. This format is compatible with that used to store</tt> </tt>
+<a name="L139"></a><tt class="py-lineno">139</tt> <tt class="py-line"><tt class="py-docstring"> public key files or recognized host keys.</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"> @return: a base64 string containing the public part of the key.</tt> </tt>
+<a name="L142"></a><tt class="py-lineno">142</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: 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-keyword">return</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">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">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="L145"></a><tt class="py-lineno">145</tt> <tt class="py-line"> </tt>
+<a name="PKey.sign_ssh_data"></a><div id="PKey.sign_ssh_data-def"><a name="L146"></a><tt class="py-lineno">146</tt> <a class="py-toggle" href="#" id="PKey.sign_ssh_data-toggle" onclick="return toggle('PKey.sign_ssh_data');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.pkey.PKey-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">randpool</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="PKey.sign_ssh_data-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="PKey.sign_ssh_data-expanded"><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"> Sign a blob of data with this private key, and return a L{Message}</tt> </tt>
+<a name="L149"></a><tt class="py-lineno">149</tt> <tt class="py-line"><tt class="py-docstring"> representing an SSH signature message.</tt> </tt>
+<a name="L150"></a><tt class="py-lineno">150</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L151"></a><tt class="py-lineno">151</tt> <tt class="py-line"><tt class="py-docstring"> @param randpool: a secure random number generator.</tt> </tt>
+<a name="L152"></a><tt class="py-lineno">152</tt> <tt class="py-line"><tt class="py-docstring"> @type randpool: L{Crypto.Util.randpool.RandomPool}</tt> </tt>
+<a name="L153"></a><tt class="py-lineno">153</tt> <tt class="py-line"><tt class="py-docstring"> @param data: the data to sign.</tt> </tt>
+<a name="L154"></a><tt class="py-lineno">154</tt> <tt class="py-line"><tt class="py-docstring"> @type data: str</tt> </tt>
+<a name="L155"></a><tt class="py-lineno">155</tt> <tt class="py-line"><tt class="py-docstring"> @return: an SSH signature message.</tt> </tt>
+<a name="L156"></a><tt class="py-lineno">156</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: L{Message}</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-keyword">return</tt> <tt class="py-string">''</tt> </tt>
+</div><a name="L159"></a><tt class="py-lineno">159</tt> <tt class="py-line"> </tt>
+<a name="PKey.verify_ssh_sig"></a><div id="PKey.verify_ssh_sig-def"><a name="L160"></a><tt class="py-lineno">160</tt> <a class="py-toggle" href="#" id="PKey.verify_ssh_sig-toggle" onclick="return toggle('PKey.verify_ssh_sig');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.pkey.PKey-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="PKey.verify_ssh_sig-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="PKey.verify_ssh_sig-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"> Given a blob of data, and an SSH message representing a signature of</tt> </tt>
+<a name="L163"></a><tt class="py-lineno">163</tt> <tt class="py-line"><tt class="py-docstring"> that data, verify that it was signed with this key.</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"> @param data: the data that was signed.</tt> </tt>
+<a name="L166"></a><tt class="py-lineno">166</tt> <tt class="py-line"><tt class="py-docstring"> @type data: str</tt> </tt>
+<a name="L167"></a><tt class="py-lineno">167</tt> <tt class="py-line"><tt class="py-docstring"> @param msg: an SSH signature message</tt> </tt>
+<a name="L168"></a><tt class="py-lineno">168</tt> <tt class="py-line"><tt class="py-docstring"> @type msg: L{Message}</tt> </tt>
+<a name="L169"></a><tt class="py-lineno">169</tt> <tt class="py-line"><tt class="py-docstring"> @return: C{True} if the signature verifies correctly; C{False}</tt> </tt>
+<a name="L170"></a><tt class="py-lineno">170</tt> <tt class="py-line"><tt class="py-docstring"> otherwise.</tt> </tt>
+<a name="L171"></a><tt class="py-lineno">171</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: boolean</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-keyword">return</tt> <tt class="py-name">False</tt> </tt>
+</div><a name="L174"></a><tt class="py-lineno">174</tt> <tt class="py-line"> </tt>
+<a name="PKey.from_private_key_file"></a><div id="PKey.from_private_key_file-def"><a name="L175"></a><tt class="py-lineno">175</tt> <a class="py-toggle" href="#" id="PKey.from_private_key_file-toggle" onclick="return toggle('PKey.from_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#from_private_key_file">from_private_key_file</a><tt class="py-op">(</tt><tt class="py-param">cls</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.from_private_key_file-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="PKey.from_private_key_file-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"> Create a key object by reading a private key file. If the private</tt> </tt>
+<a name="L178"></a><tt class="py-lineno">178</tt> <tt class="py-line"><tt class="py-docstring"> key is encrypted and C{password} is not C{None}, the given password</tt> </tt>
+<a name="L179"></a><tt class="py-lineno">179</tt> <tt class="py-line"><tt class="py-docstring"> will be used to decrypt the key (otherwise L{PasswordRequiredException}</tt> </tt>
+<a name="L180"></a><tt class="py-lineno">180</tt> <tt class="py-line"><tt class="py-docstring"> is thrown). Through the magic of python, this factory method will</tt> </tt>
+<a name="L181"></a><tt class="py-lineno">181</tt> <tt class="py-line"><tt class="py-docstring"> exist in all subclasses of PKey (such as L{RSAKey} or L{DSSKey}), but</tt> </tt>
+<a name="L182"></a><tt class="py-lineno">182</tt> <tt class="py-line"><tt class="py-docstring"> is useless on the abstract PKey class.</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"> @param filename: name of the file to read</tt> </tt>
+<a name="L185"></a><tt class="py-lineno">185</tt> <tt class="py-line"><tt class="py-docstring"> @type filename: str</tt> </tt>
+<a name="L186"></a><tt class="py-lineno">186</tt> <tt class="py-line"><tt class="py-docstring"> @param password: an optional password to use to decrypt the key file,</tt> </tt>
+<a name="L187"></a><tt class="py-lineno">187</tt> <tt class="py-line"><tt class="py-docstring"> if it's encrypted</tt> </tt>
+<a name="L188"></a><tt class="py-lineno">188</tt> <tt class="py-line"><tt class="py-docstring"> @type password: str</tt> </tt>
+<a name="L189"></a><tt class="py-lineno">189</tt> <tt class="py-line"><tt class="py-docstring"> @return: a new key object based on the given private key</tt> </tt>
+<a name="L190"></a><tt class="py-lineno">190</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: 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-docstring"> @raise IOError: if there was an error reading the file</tt> </tt>
+<a name="L193"></a><tt class="py-lineno">193</tt> <tt class="py-line"><tt class="py-docstring"> @raise PasswordRequiredException: if the private key file is</tt> </tt>
+<a name="L194"></a><tt class="py-lineno">194</tt> <tt class="py-line"><tt class="py-docstring"> encrypted, and C{password} is C{None}</tt> </tt>
+<a name="L195"></a><tt class="py-lineno">195</tt> <tt class="py-line"><tt class="py-docstring"> @raise SSHException: if the key file is invalid</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-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>
+<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>
+<a name="L203"></a><tt class="py-lineno">203</tt> <tt class="py-line"><tt class="py-docstring"> Create a key object by reading a private key from a file (or file-like)</tt> </tt>
+<a name="L204"></a><tt class="py-lineno">204</tt> <tt class="py-line"><tt class="py-docstring"> object. If the private key is encrypted and C{password} is not C{None},</tt> </tt>
+<a name="L205"></a><tt class="py-lineno">205</tt> <tt class="py-line"><tt class="py-docstring"> the given password will be used to decrypt the key (otherwise</tt> </tt>
+<a name="L206"></a><tt class="py-lineno">206</tt> <tt class="py-line"><tt class="py-docstring"> L{PasswordRequiredException} is thrown).</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 file_obj: the file to read from</tt> </tt>
+<a name="L209"></a><tt class="py-lineno">209</tt> <tt class="py-line"><tt class="py-docstring"> @type file_obj: file</tt> </tt>
+<a name="L210"></a><tt class="py-lineno">210</tt> <tt class="py-line"><tt class="py-docstring"> @param password: an optional password to use to decrypt the key, if it's</tt> </tt>
+<a name="L211"></a><tt class="py-lineno">211</tt> <tt class="py-line"><tt class="py-docstring"> encrypted</tt> </tt>
+<a name="L212"></a><tt class="py-lineno">212</tt> <tt class="py-line"><tt class="py-docstring"> @type password: str</tt> </tt>
+<a name="L213"></a><tt class="py-lineno">213</tt> <tt class="py-line"><tt class="py-docstring"> @return: a new key object based on the given private key</tt> </tt>
+<a name="L214"></a><tt class="py-lineno">214</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: L{PKey}</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-docstring"> @raise IOError: if there was an error reading the key</tt> </tt>
+<a name="L217"></a><tt class="py-lineno">217</tt> <tt class="py-line"><tt class="py-docstring"> @raise PasswordRequiredException: if the private key file is encrypted,</tt> </tt>
+<a name="L218"></a><tt class="py-lineno">218</tt> <tt class="py-line"><tt class="py-docstring"> and C{password} is C{None}</tt> </tt>
+<a name="L219"></a><tt class="py-lineno">219</tt> <tt class="py-line"><tt class="py-docstring"> @raise SSHException: if the key file is invalid</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-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>
+<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>
+<a name="L227"></a><tt class="py-lineno">227</tt> <tt class="py-line"><tt class="py-docstring"> Write private key contents into a file. If the password is not</tt> </tt>
+<a name="L228"></a><tt class="py-lineno">228</tt> <tt class="py-line"><tt class="py-docstring"> C{None}, the key is encrypted before writing.</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-docstring"> @param filename: name of the file to write</tt> </tt>
+<a name="L231"></a><tt class="py-lineno">231</tt> <tt class="py-line"><tt class="py-docstring"> @type filename: str</tt> </tt>
+<a name="L232"></a><tt class="py-lineno">232</tt> <tt class="py-line"><tt class="py-docstring"> @param password: an optional password to use to encrypt the key file</tt> </tt>
+<a name="L233"></a><tt class="py-lineno">233</tt> <tt class="py-line"><tt class="py-docstring"> @type password: str</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"> @raise IOError: if there was an error writing the file</tt> </tt>
+<a name="L236"></a><tt class="py-lineno">236</tt> <tt class="py-line"><tt class="py-docstring"> @raise SSHException: if the key is invalid</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-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-string">'Not implemented in PKey'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L239"></a><tt class="py-lineno">239</tt> <tt class="py-line"> </tt>
+<a name="PKey.write_private_key"></a><div id="PKey.write_private_key-def"><a name="L240"></a><tt class="py-lineno">240</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">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.write_private_key-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="PKey.write_private_key-expanded"><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-docstring"> Write private key contents into a file (or file-like) object. If the</tt> </tt>
+<a name="L243"></a><tt class="py-lineno">243</tt> <tt class="py-line"><tt class="py-docstring"> password is not C{None}, the key is encrypted before writing.</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"> @param file_obj: the file object to write into</tt> </tt>
+<a name="L246"></a><tt class="py-lineno">246</tt> <tt class="py-line"><tt class="py-docstring"> @type file_obj: file</tt> </tt>
+<a name="L247"></a><tt class="py-lineno">247</tt> <tt class="py-line"><tt class="py-docstring"> @param password: an optional password to use to encrypt the key</tt> </tt>
+<a name="L248"></a><tt class="py-lineno">248</tt> <tt class="py-line"><tt class="py-docstring"> @type password: str</tt> </tt>
+<a name="L249"></a><tt class="py-lineno">249</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L250"></a><tt class="py-lineno">250</tt> <tt class="py-line"><tt class="py-docstring"> @raise IOError: if there was an error writing to the file</tt> </tt>
+<a name="L251"></a><tt class="py-lineno">251</tt> <tt class="py-line"><tt class="py-docstring"> @raise SSHException: if the key is invalid</tt> </tt>
+<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-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-string">'Not implemented in PKey'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L254"></a><tt class="py-lineno">254</tt> <tt class="py-line"> </tt>
+<a name="PKey._read_private_key_file"></a><div id="PKey._read_private_key_file-def"><a name="L255"></a><tt class="py-lineno">255</tt> <a class="py-toggle" href="#" id="PKey._read_private_key_file-toggle" onclick="return toggle('PKey._read_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#_read_private_key_file">_read_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">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_file-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="PKey._read_private_key_file-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"> Read an SSH2-format private key file, looking for a string of the type</tt> </tt>
+<a name="L258"></a><tt class="py-lineno">258</tt> <tt class="py-line"><tt class="py-docstring"> C{"BEGIN xxx PRIVATE KEY"} for some C{xxx}, base64-decode the text we</tt> </tt>
+<a name="L259"></a><tt class="py-lineno">259</tt> <tt class="py-line"><tt class="py-docstring"> find, and return it as a string. If the private key is encrypted and</tt> </tt>
+<a name="L260"></a><tt class="py-lineno">260</tt> <tt class="py-line"><tt class="py-docstring"> C{password} is not C{None}, the given password will be used to decrypt</tt> </tt>
+<a name="L261"></a><tt class="py-lineno">261</tt> <tt class="py-line"><tt class="py-docstring"> the key (otherwise L{PasswordRequiredException} is thrown).</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"> @param tag: C{"RSA"} or C{"DSA"}, the tag used to mark the data block.</tt> </tt>
+<a name="L264"></a><tt class="py-lineno">264</tt> <tt class="py-line"><tt class="py-docstring"> @type tag: str</tt> </tt>
+<a name="L265"></a><tt class="py-lineno">265</tt> <tt class="py-line"><tt class="py-docstring"> @param filename: name of the file to read.</tt> </tt>
+<a name="L266"></a><tt class="py-lineno">266</tt> <tt class="py-line"><tt class="py-docstring"> @type filename: str</tt> </tt>
+<a name="L267"></a><tt class="py-lineno">267</tt> <tt class="py-line"><tt class="py-docstring"> @param password: an optional password to use to decrypt the key file,</tt> </tt>
+<a name="L268"></a><tt class="py-lineno">268</tt> <tt class="py-line"><tt class="py-docstring"> if it's encrypted.</tt> </tt>
+<a name="L269"></a><tt class="py-lineno">269</tt> <tt class="py-line"><tt class="py-docstring"> @type password: str</tt> </tt>
+<a name="L270"></a><tt class="py-lineno">270</tt> <tt class="py-line"><tt class="py-docstring"> @return: data blob that makes up the private key.</tt> </tt>
+<a name="L271"></a><tt class="py-lineno">271</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: str</tt> </tt>
+<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"> @raise IOError: if there was an error reading the file.</tt> </tt>
+<a name="L274"></a><tt class="py-lineno">274</tt> <tt class="py-line"><tt class="py-docstring"> @raise PasswordRequiredException: if the private key file is</tt> </tt>
+<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="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
+paramiko.BufferedFile.close
+paramiko.Channel.close
+paramiko.SFTPClient.close
+paramiko.SFTPFile.close
+paramiko.SFTPHandle.close
+paramiko.SSHClient.close
+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>
+<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>
+<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="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="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>
+<a name="L295"></a><tt class="py-lineno">295</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-op">==</tt> <tt class="py-number">1</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">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="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="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="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="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="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="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="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>
+</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>
+<a name="L332"></a><tt class="py-lineno">332</tt> <tt class="py-line"><tt class="py-docstring"> Write an SSH2-format private key file in a form that can be read by</tt> </tt>
+<a name="L333"></a><tt class="py-lineno">333</tt> <tt class="py-line"><tt class="py-docstring"> paramiko or openssh. If no password is given, the key is written in</tt> </tt>
+<a name="L334"></a><tt class="py-lineno">334</tt> <tt class="py-line"><tt class="py-docstring"> a trivially-encoded format (base64) which is completely insecure. If</tt> </tt>
+<a name="L335"></a><tt class="py-lineno">335</tt> <tt class="py-line"><tt class="py-docstring"> a password is given, DES-EDE3-CBC is used.</tt> </tt>
+<a name="L336"></a><tt class="py-lineno">336</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L337"></a><tt class="py-lineno">337</tt> <tt class="py-line"><tt class="py-docstring"> @param tag: C{"RSA"} or C{"DSA"}, the tag used to mark the data block.</tt> </tt>
+<a name="L338"></a><tt class="py-lineno">338</tt> <tt class="py-line"><tt class="py-docstring"> @type tag: str</tt> </tt>
+<a name="L339"></a><tt class="py-lineno">339</tt> <tt class="py-line"><tt class="py-docstring"> @param filename: name of the file to write.</tt> </tt>
+<a name="L340"></a><tt class="py-lineno">340</tt> <tt class="py-line"><tt class="py-docstring"> @type filename: str</tt> </tt>
+<a name="L341"></a><tt class="py-lineno">341</tt> <tt class="py-line"><tt class="py-docstring"> @param data: data blob that makes up the private key.</tt> </tt>
+<a name="L342"></a><tt class="py-lineno">342</tt> <tt class="py-line"><tt class="py-docstring"> @type data: str</tt> </tt>
+<a name="L343"></a><tt class="py-lineno">343</tt> <tt class="py-line"><tt class="py-docstring"> @param password: an optional password to use to encrypt the file.</tt> </tt>
+<a name="L344"></a><tt class="py-lineno">344</tt> <tt class="py-line"><tt class="py-docstring"> @type password: str</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"> @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="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="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
+paramiko.BufferedFile.close
+paramiko.Channel.close
+paramiko.SFTPClient.close
+paramiko.SFTPFile.close
+paramiko.SFTPHandle.close
+paramiko.SSHClient.close
+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>
+</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>
+<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
+paramiko.channel.randpool
+paramiko.client.randpool
+paramiko.common.randpool
+paramiko.dsskey.randpool
+paramiko.hostkeys.randpool
+paramiko.kex_gex.randpool
+paramiko.kex_group1.randpool
+paramiko.packet.randpool
+paramiko.pkey.randpool
+paramiko.rsakey.randpool
+paramiko.server.randpool
+paramiko.sftp.randpool
+paramiko.sftp_attr.randpool
+paramiko.sftp_client.randpool
+paramiko.sftp_file.randpool
+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>
+<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="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="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>
+</div></div><a name="L381"></a><tt class="py-lineno">381</tt> <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<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 Jul 6 18:30:35 2008
+ </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.primes-module.html b/docs/paramiko.primes-module.html
new file mode 100644
index 0000000..8ce7a25
--- /dev/null
+++ b/docs/paramiko.primes-module.html
@@ -0,0 +1,122 @@
+<?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.primes</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> ::
+ Module&nbsp;primes
+ </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.primes-module.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module primes</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.primes-pysrc.html">source&nbsp;code</a></span></p>
+<p>Utility functions for dealing with primes.</p>
+
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></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">Classes</span></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.primes.ModulusPack-class.html" class="summary-name">ModulusPack</a><br />
+ convenience object for holding the contents of the /etc/ssh/moduli
+ file, on systems that have such a file.
+ </td>
+ </tr>
+</table>
+<!-- ==================== 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 Jul 6 18:30:27 2008
+ </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.primes-pysrc.html b/docs/paramiko.primes-pysrc.html
new file mode 100644
index 0000000..41800d7
--- /dev/null
+++ b/docs/paramiko.primes-pysrc.html
@@ -0,0 +1,333 @@
+<?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.primes</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> ::
+ Module&nbsp;primes
+ </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.primes-pysrc.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</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="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>
+<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">Crypto</tt><tt class="py-op">.</tt><tt class="py-name">Util</tt> <tt class="py-keyword">import</tt> <tt class="py-name">number</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 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-keyword">import</tt> <tt id="link-1" class="py-name" targets="Module paramiko.util=paramiko.util-module.html"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-1', 'util', 'link-1');">util</a></tt> </tt>
+<a name="L26"></a><tt class="py-lineno"> 26</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.ssh_exception=paramiko.ssh_exception-module.html"><a title="paramiko.ssh_exception" class="py-name" href="#" onclick="return doclink('link-3', 'ssh_exception', 'link-3');">ssh_exception</a></tt> <tt class="py-keyword">import</tt> <tt id="link-4" class="py-name" targets="Class paramiko.SSHException=paramiko.SSHException-class.html"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-4', 'SSHException', 'link-4');">SSHException</a></tt> </tt>
+<a name="L27"></a><tt class="py-lineno"> 27</tt> <tt class="py-line"> </tt>
+<a name="L28"></a><tt class="py-lineno"> 28</tt> <tt class="py-line"> </tt>
+<a name="_generate_prime"></a><div id="_generate_prime-def"><a name="L29"></a><tt class="py-lineno"> 29</tt> <a class="py-toggle" href="#" id="_generate_prime-toggle" onclick="return toggle('_generate_prime');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.primes-module.html#_generate_prime">_generate_prime</a><tt class="py-op">(</tt><tt class="py-param">bits</tt><tt class="py-op">,</tt> <tt class="py-param">randpool</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_generate_prime-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_generate_prime-expanded"><a name="L30"></a><tt class="py-lineno"> 30</tt> <tt class="py-line"> <tt class="py-docstring">"primtive attempt at prime generation"</tt> </tt>
+<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
+paramiko.channel.randpool
+paramiko.client.randpool
+paramiko.common.randpool
+paramiko.dsskey.randpool
+paramiko.hostkeys.randpool
+paramiko.kex_gex.randpool
+paramiko.kex_group1.randpool
+paramiko.packet.randpool
+paramiko.pkey.randpool
+paramiko.rsakey.randpool
+paramiko.server.randpool
+paramiko.sftp.randpool
+paramiko.sftp_attr.randpool
+paramiko.sftp_client.randpool
+paramiko.sftp_file.randpool
+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-5', 'randpool', 'link-5');">randpool</a></tt><tt class="py-op">.</tt><tt id="link-6" 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-6', 'get_bytes', 'link-6');">get_bytes</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">bits</tt><tt class="py-op">+</tt><tt class="py-number">7</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="L35"></a><tt class="py-lineno"> 35</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>
+<a name="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line"> <tt class="py-name">x</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-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> <tt class="py-op">&amp;</tt> <tt class="py-name">hbyte_mask</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-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt> <tt class="py-line"> <tt class="py-name">n</tt> <tt class="py-op">=</tt> <tt id="link-7" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-7', 'util', 'link-1');">util</a></tt><tt class="py-op">.</tt><tt id="link-8" 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-8', 'inflate_long', 'link-8');">inflate_long</a></tt><tt class="py-op">(</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L38"></a><tt class="py-lineno"> 38</tt> <tt class="py-line"> <tt class="py-name">n</tt> <tt class="py-op">|=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L39"></a><tt class="py-lineno"> 39</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 class="py-op">&lt;&lt;</tt> <tt class="py-op">(</tt><tt class="py-name">bits</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="L40"></a><tt class="py-lineno"> 40</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-keyword">not</tt> <tt class="py-name">number</tt><tt class="py-op">.</tt><tt class="py-name">isPrime</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="L41"></a><tt class="py-lineno"> 41</tt> <tt class="py-line"> <tt class="py-name">n</tt> <tt class="py-op">+=</tt> <tt class="py-number">2</tt> </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-9" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-9', 'util', 'link-1');">util</a></tt><tt class="py-op">.</tt><tt id="link-10" 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-10', 'bit_length', 'link-10');">bit_length</a></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">bits</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">break</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">n</tt> </tt>
+</div><a name="L45"></a><tt class="py-lineno"> 45</tt> <tt class="py-line"> </tt>
+<a name="_roll_random"></a><div id="_roll_random-def"><a name="L46"></a><tt class="py-lineno"> 46</tt> <a class="py-toggle" href="#" id="_roll_random-toggle" onclick="return toggle('_roll_random');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.primes-module.html#_roll_random">_roll_random</a><tt class="py-op">(</tt><tt class="py-param">rpool</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="_roll_random-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_roll_random-expanded"><a name="L47"></a><tt class="py-lineno"> 47</tt> <tt class="py-line"> <tt class="py-docstring">"returns a random # from 0 to N-1"</tt> </tt>
+<a name="L48"></a><tt class="py-lineno"> 48</tt> <tt class="py-line"> <tt class="py-name">bits</tt> <tt class="py-op">=</tt> <tt id="link-11" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-11', 'util', 'link-1');">util</a></tt><tt class="py-op">.</tt><tt id="link-12" class="py-name"><a title="paramiko.util.bit_length" class="py-name" href="#" onclick="return doclink('link-12', 'bit_length', 'link-10');">bit_length</a></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>
+<a name="L49"></a><tt class="py-lineno"> 49</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">bits</tt> <tt class="py-op">+</tt> <tt class="py-number">7</tt><tt class="py-op">)</tt> <tt class="py-op">//</tt> <tt class="py-number">8</tt> </tt>
+<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="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>
+<a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"> <tt class="py-name">x</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-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> <tt class="py-op">&amp;</tt> <tt class="py-name">hbyte_mask</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-number">1</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">num</tt> <tt class="py-op">=</tt> <tt id="link-14" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-14', 'util', 'link-1');">util</a></tt><tt class="py-op">.</tt><tt id="link-15" class="py-name"><a title="paramiko.util.inflate_long" class="py-name" href="#" onclick="return doclink('link-15', 'inflate_long', 'link-8');">inflate_long</a></tt><tt class="py-op">(</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-number">1</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">num</tt> <tt class="py-op">&lt;</tt> <tt class="py-name">n</tt><tt class="py-op">:</tt> </tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">num</tt> </tt>
+</div><a name="L66"></a><tt class="py-lineno"> 66</tt> <tt class="py-line"> </tt>
+<a name="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line"> </tt>
+<a name="ModulusPack"></a><div id="ModulusPack-def"><a name="L68"></a><tt class="py-lineno"> 68</tt> <a class="py-toggle" href="#" id="ModulusPack-toggle" onclick="return toggle('ModulusPack');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.primes.ModulusPack-class.html">ModulusPack</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="ModulusPack-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="ModulusPack-expanded"><a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line"><tt class="py-docstring"> convenience object for holding the contents of the /etc/ssh/moduli file,</tt> </tt>
+<a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line"><tt class="py-docstring"> on systems that have such a file.</tt> </tt>
+<a name="L72"></a><tt class="py-lineno"> 72</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<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="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
+paramiko.client.randpool
+paramiko.common.randpool
+paramiko.dsskey.randpool
+paramiko.hostkeys.randpool
+paramiko.kex_gex.randpool
+paramiko.kex_group1.randpool
+paramiko.packet.randpool
+paramiko.pkey.randpool
+paramiko.rsakey.randpool
+paramiko.server.randpool
+paramiko.sftp.randpool
+paramiko.sftp_attr.randpool
+paramiko.sftp_client.randpool
+paramiko.sftp_file.randpool
+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-16', 'randpool', 'link-5');">randpool</a></tt> <tt class="py-op">=</tt> <tt class="py-name">rpool</tt> </tt>
+</div><a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line"> </tt>
+<a name="ModulusPack._parse_modulus"></a><div id="ModulusPack._parse_modulus-def"><a name="L80"></a><tt class="py-lineno"> 80</tt> <a class="py-toggle" href="#" id="ModulusPack._parse_modulus-toggle" onclick="return toggle('ModulusPack._parse_modulus');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.primes.ModulusPack-class.html#_parse_modulus">_parse_modulus</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">line</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ModulusPack._parse_modulus-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="ModulusPack._parse_modulus-expanded"><a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"> <tt class="py-name">timestamp</tt><tt class="py-op">,</tt> <tt class="py-name">mod_type</tt><tt class="py-op">,</tt> <tt class="py-name">tests</tt><tt class="py-op">,</tt> <tt class="py-name">tries</tt><tt class="py-op">,</tt> <tt class="py-name">size</tt><tt class="py-op">,</tt> <tt class="py-name">generator</tt><tt class="py-op">,</tt> <tt class="py-name">modulus</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-op">)</tt> </tt>
+<a name="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"> <tt class="py-name">mod_type</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">mod_type</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">tests</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">tests</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">tries</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">tries</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">size</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">size</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">generator</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">generator</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">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="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="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>
+<a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">bl</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">pack</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 class="py-name">pack</tt><tt class="py-op">[</tt><tt class="py-name">bl</tt><tt class="py-op">]</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">self</tt><tt class="py-op">.</tt><tt class="py-name">pack</tt><tt class="py-op">[</tt><tt class="py-name">bl</tt><tt class="py-op">]</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">generator</tt><tt class="py-op">,</tt> <tt class="py-name">modulus</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="ModulusPack.read_file"></a><div id="ModulusPack.read_file-def"><a name="L110"></a><tt class="py-lineno">110</tt> <a class="py-toggle" href="#" id="ModulusPack.read_file-toggle" onclick="return toggle('ModulusPack.read_file');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.primes.ModulusPack-class.html#read_file">read_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-op">:</tt> </tt>
+</div><div id="ModulusPack.read_file-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="ModulusPack.read_file-expanded"><a name="L111"></a><tt class="py-lineno">111</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L112"></a><tt class="py-lineno">112</tt> <tt class="py-line"><tt class="py-docstring"> @raise IOError: passed from any file operations that fail.</tt> </tt>
+<a name="L113"></a><tt class="py-lineno">113</tt> <tt class="py-line"><tt class="py-docstring"> """</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 class="py-name">pack</tt> <tt class="py-op">=</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">f</tt> <tt class="py-op">=</tt> <tt id="link-19" 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-19', 'open', 'link-19');">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="L116"></a><tt class="py-lineno">116</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="L117"></a><tt class="py-lineno">117</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="L118"></a><tt class="py-lineno">118</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="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"> <tt class="py-keyword">continue</tt> </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt> <tt class="py-line"> <tt class="py-keyword">try</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">_parse_modulus</tt><tt class="py-op">(</tt><tt class="py-name">line</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">except</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">continue</tt> </tt>
+<a name="L124"></a><tt class="py-lineno">124</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
+paramiko.SFTPFile.close
+paramiko.SFTPHandle.close
+paramiko.SSHClient.close
+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-20', 'close', 'link-20');">close</a></tt><tt class="py-op">(</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="ModulusPack.get_modulus"></a><div id="ModulusPack.get_modulus-def"><a name="L126"></a><tt class="py-lineno">126</tt> <a class="py-toggle" href="#" id="ModulusPack.get_modulus-toggle" onclick="return toggle('ModulusPack.get_modulus');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.primes.ModulusPack-class.html#get_modulus">get_modulus</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">min</tt><tt class="py-op">,</tt> <tt class="py-param">prefer</tt><tt class="py-op">,</tt> <tt class="py-param">max</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ModulusPack.get_modulus-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="ModulusPack.get_modulus-expanded"><a name="L127"></a><tt class="py-lineno">127</tt> <tt class="py-line"> <tt class="py-name">bitsizes</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pack</tt><tt class="py-op">.</tt><tt id="link-21" 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-21', 'keys', 'link-21');">keys</a></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">bitsizes</tt><tt class="py-op">.</tt><tt class="py-name">sort</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-keyword">if</tt> <tt class="py-name">len</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">0</tt><tt class="py-op">:</tt> </tt>
+<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="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="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="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
+paramiko.channel.randpool
+paramiko.client.randpool
+paramiko.common.randpool
+paramiko.dsskey.randpool
+paramiko.hostkeys.randpool
+paramiko.kex_gex.randpool
+paramiko.kex_group1.randpool
+paramiko.packet.randpool
+paramiko.pkey.randpool
+paramiko.rsakey.randpool
+paramiko.server.randpool
+paramiko.sftp.randpool
+paramiko.sftp_attr.randpool
+paramiko.sftp_client.randpool
+paramiko.sftp_file.randpool
+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-23', 'randpool', 'link-5');">randpool</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">pack</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-op">)</tt> </tt>
+<a name="L151"></a><tt class="py-lineno">151</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">pack</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-name">n</tt><tt class="py-op">]</tt> </tt>
+</div></div><a name="L152"></a><tt class="py-lineno">152</tt> <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<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 Jul 6 18:30:37 2008
+ </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.primes.ModulusPack-class.html b/docs/paramiko.primes.ModulusPack-class.html
new file mode 100644
index 0000000..6789760
--- /dev/null
+++ b/docs/paramiko.primes.ModulusPack-class.html
@@ -0,0 +1,267 @@
+<?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.primes.ModulusPack</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.primes-module.html" onclick="show_private();">Module&nbsp;primes</a> ::
+ Class&nbsp;ModulusPack
+ </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.primes.ModulusPack-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class ModulusPack</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.primes-pysrc.html#ModulusPack">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+object --+
+ |
+ <strong class="uidshort">ModulusPack</strong>
+</pre>
+
+<hr />
+<p>convenience object for holding the contents of the /etc/ssh/moduli
+ file, on systems that have such a file.</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.primes.ModulusPack-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">rpool</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.primes-pysrc.html#ModulusPack.__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 href="paramiko.primes.ModulusPack-class.html#read_file" class="summary-sig-name">read_file</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">filename</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.primes-pysrc.html#ModulusPack.read_file">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="get_modulus"></a><span class="summary-sig-name">get_modulus</span>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">min</span>,
+ <span class="summary-sig-arg">prefer</span>,
+ <span class="summary-sig-arg">max</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.primes-pysrc.html#ModulusPack.get_modulus">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>__getattribute__</code>,
+ <code>__hash__</code>,
+ <code>__new__</code>,
+ <code>__reduce__</code>,
+ <code>__reduce_ex__</code>,
+ <code>__repr__</code>,
+ <code>__setattr__</code>,
+ <code>__str__</code>
+ </p>
+ </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">rpool</span>)</span>
+ <br /><em class="fname">(Constructor)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.primes-pysrc.html#ModulusPack.__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>
+<a name="read_file"></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">read_file</span>(<span class="sig-arg">self</span>,
+ <span class="sig-arg">filename</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.primes-pysrc.html#ModulusPack.read_file">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+
+ <dl class="fields">
+ <dt>Raises:</dt>
+ <dd><ul class="nomargin-top">
+ <li><code><strong class='fraise'>IOError</strong></code> - passed from any file operations that fail.</li>
+ </ul></dd>
+ </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 Jul 6 18:30:30 2008
+ </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.resource-module.html b/docs/paramiko.resource-module.html
new file mode 100644
index 0000000..2219925
--- /dev/null
+++ b/docs/paramiko.resource-module.html
@@ -0,0 +1,120 @@
+<?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.resource</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> ::
+ Module&nbsp;resource
+ </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.resource-module.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module resource</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.resource-pysrc.html">source&nbsp;code</a></span></p>
+<p>Resource manager.</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="ResourceManager"></a><span class="summary-name">ResourceManager</span> = <code title="ResourceManager()">ResourceManager()</code>
+ </td>
+ </tr>
+</table>
+<!-- ==================== 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 Jul 6 18:30:27 2008
+ </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.resource-pysrc.html b/docs/paramiko.resource-pysrc.html
new file mode 100644
index 0000000..86d5279
--- /dev/null
+++ b/docs/paramiko.resource-pysrc.html
@@ -0,0 +1,192 @@
+<?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.resource</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> ::
+ Module&nbsp;resource
+ </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.resource-pysrc.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</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="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>
+<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">import</tt> <tt class="py-name">weakref</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>
+<a name="ResourceManager"></a><div id="ResourceManager-def"><a name="L26"></a><tt class="py-lineno">26</tt> <a class="py-toggle" href="#" id="ResourceManager-toggle" onclick="return toggle('ResourceManager');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.resource.ResourceManager-class.html">ResourceManager</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="ResourceManager-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="ResourceManager-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"> A registry of objects and resources that should be closed when those</tt> </tt>
+<a name="L29"></a><tt class="py-lineno">29</tt> <tt class="py-line"><tt class="py-docstring"> objects are deleted.</tt> </tt>
+<a name="L30"></a><tt class="py-lineno">30</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L31"></a><tt class="py-lineno">31</tt> <tt class="py-line"><tt class="py-docstring"> This is meant to be a safer alternative to python's C{__del__} method,</tt> </tt>
+<a name="L32"></a><tt class="py-lineno">32</tt> <tt class="py-line"><tt class="py-docstring"> which can cause reference cycles to never be collected. Objects registered</tt> </tt>
+<a name="L33"></a><tt class="py-lineno">33</tt> <tt class="py-line"><tt class="py-docstring"> with the ResourceManager can be collected but still free resources when</tt> </tt>
+<a name="L34"></a><tt class="py-lineno">34</tt> <tt class="py-line"><tt class="py-docstring"> they die.</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 class="py-docstring"> Resources are registered using L{register}, and when an object is garbage</tt> </tt>
+<a name="L37"></a><tt class="py-lineno">37</tt> <tt class="py-line"><tt class="py-docstring"> collected, each registered resource is closed by having its C{close()}</tt> </tt>
+<a name="L38"></a><tt class="py-lineno">38</tt> <tt class="py-line"><tt class="py-docstring"> method called. Multiple resources may be registered per object, but a</tt> </tt>
+<a name="L39"></a><tt class="py-lineno">39</tt> <tt class="py-line"><tt class="py-docstring"> resource will only be closed once, even if multiple objects register it.</tt> </tt>
+<a name="L40"></a><tt class="py-lineno">40</tt> <tt class="py-line"><tt class="py-docstring"> (The last object to register it wins.)</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>
+<a name="ResourceManager.__init__"></a><div id="ResourceManager.__init__-def"><a name="L43"></a><tt class="py-lineno">43</tt> <a class="py-toggle" href="#" id="ResourceManager.__init__-toggle" onclick="return toggle('ResourceManager.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.resource.ResourceManager-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="ResourceManager.__init__-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="ResourceManager.__init__-expanded"><a name="L44"></a><tt class="py-lineno">44</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-op">{</tt><tt class="py-op">}</tt> </tt>
+</div><a name="L45"></a><tt class="py-lineno">45</tt> <tt class="py-line"> </tt>
+<a name="ResourceManager.register"></a><div id="ResourceManager.register-def"><a name="L46"></a><tt class="py-lineno">46</tt> <a class="py-toggle" href="#" id="ResourceManager.register-toggle" onclick="return toggle('ResourceManager.register');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.resource.ResourceManager-class.html#register">register</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">obj</tt><tt class="py-op">,</tt> <tt class="py-param">resource</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ResourceManager.register-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="ResourceManager.register-expanded"><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"> Register a resource to be closed with an object is collected.</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"> When the given C{obj} is garbage-collected by the python interpreter,</tt> </tt>
+<a name="L51"></a><tt class="py-lineno">51</tt> <tt class="py-line"><tt class="py-docstring"> the C{resource} will be closed by having its C{close()} method called.</tt> </tt>
+<a name="L52"></a><tt class="py-lineno">52</tt> <tt class="py-line"><tt class="py-docstring"> Any exceptions are ignored.</tt> </tt>
+<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"> @param obj: the object to track</tt> </tt>
+<a name="L55"></a><tt class="py-lineno">55</tt> <tt class="py-line"><tt class="py-docstring"> @type obj: object</tt> </tt>
+<a name="L56"></a><tt class="py-lineno">56</tt> <tt class="py-line"><tt class="py-docstring"> @param resource: the resource to close when the object is collected</tt> </tt>
+<a name="L57"></a><tt class="py-lineno">57</tt> <tt class="py-line"><tt class="py-docstring"> @type resource: object</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">def</tt> <tt class="py-def-name">callback</tt><tt class="py-op">(</tt><tt class="py-param">ref</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">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L61"></a><tt class="py-lineno">61</tt> <tt class="py-line"> <tt id="link-0" class="py-name" targets="Module paramiko.resource=paramiko.resource-module.html"><a title="paramiko.resource" class="py-name" href="#" onclick="return doclink('link-0', 'resource', 'link-0');">resource</a></tt><tt class="py-op">.</tt><tt id="link-1" 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
+paramiko.SFTPFile.close
+paramiko.SFTPHandle.close
+paramiko.SSHClient.close
+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-1', 'close', 'link-1');">close</a></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">except</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">pass</tt> </tt>
+<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>
+</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="L73"></a><tt class="py-lineno">73</tt> <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<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 Jul 6 18:30:35 2008
+ </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.rng-module.html b/docs/paramiko.rng-module.html
new file mode 100644
index 0000000..bb81ec3
--- /dev/null
+++ b/docs/paramiko.rng-module.html
@@ -0,0 +1,135 @@
+<?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.rng</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> ::
+ Module&nbsp;rng
+ </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.rng-module.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module rng</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.rng-pysrc.html">source&nbsp;code</a></span></p>
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></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">Classes</span></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.rng.StrongLockingRandomPool-class.html" class="summary-name">StrongLockingRandomPool</a><br />
+ Wrapper around RandomPool guaranteeing strong random numbers.
+ </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="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>
+</table>
+<!-- ==================== 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 Jul 6 18:30:27 2008
+ </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.rng-pysrc.html b/docs/paramiko.rng-pysrc.html
new file mode 100644
index 0000000..1e91cb8
--- /dev/null
+++ b/docs/paramiko.rng-pysrc.html
@@ -0,0 +1,368 @@
+<?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.rng</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> ::
+ Module&nbsp;rng
+ </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.rng-pysrc.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<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="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
+paramiko.channel.randpool
+paramiko.client.randpool
+paramiko.common.randpool
+paramiko.dsskey.randpool
+paramiko.hostkeys.randpool
+paramiko.kex_gex.randpool
+paramiko.kex_group1.randpool
+paramiko.packet.randpool
+paramiko.pkey.randpool
+paramiko.rsakey.randpool
+paramiko.server.randpool
+paramiko.sftp.randpool
+paramiko.sftp_attr.randpool
+paramiko.sftp_client.randpool
+paramiko.sftp_file.randpool
+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-0', 'randpool', 'link-0');">randpool</a></tt> <tt class="py-keyword">import</tt> <tt class="py-name">RandomPool</tt> <tt class="py-keyword">as</tt> <tt class="py-name">_RandomPool</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">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">import</tt> <tt class="py-name">platform</tt> </tt>
+<a name="L27"></a><tt class="py-lineno"> 27</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="L28"></a><tt class="py-lineno"> 28</tt> <tt class="py-line"> <tt class="py-name">platform</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> <tt class="py-comment"># Not available using Python 2.2</tt> </tt>
+<a name="L29"></a><tt class="py-lineno"> 29</tt> <tt class="py-line"> </tt>
+<a name="_strxor"></a><div id="_strxor-def"><a name="L30"></a><tt class="py-lineno"> 30</tt> <a class="py-toggle" href="#" id="_strxor-toggle" onclick="return toggle('_strxor');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.rng-module.html#_strxor">_strxor</a><tt class="py-op">(</tt><tt class="py-param">a</tt><tt class="py-op">,</tt> <tt class="py-param">b</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_strxor-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_strxor-expanded"><a name="L31"></a><tt class="py-lineno"> 31</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">a</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">b</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">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="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="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="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>
+<a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line"> </tt>
+<a name="StrongLockingRandomPool"></a><div id="StrongLockingRandomPool-def"><a name="L55"></a><tt class="py-lineno"> 55</tt> <a class="py-toggle" href="#" id="StrongLockingRandomPool-toggle" onclick="return toggle('StrongLockingRandomPool');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.rng.StrongLockingRandomPool-class.html">StrongLockingRandomPool</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="StrongLockingRandomPool-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="StrongLockingRandomPool-expanded"><a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"> <tt class="py-docstring">"""Wrapper around RandomPool guaranteeing strong random numbers.</tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"><tt class="py-docstring"> Crypto.Util.randpool.RandomPool will silently operate even if it is seeded</tt> </tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"><tt class="py-docstring"> with little or no entropy, and it provides no prediction resistance if its</tt> </tt>
+<a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"><tt class="py-docstring"> state is ever compromised throughout its runtime. It is also not thread-safe.</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"> This wrapper augments RandomPool by XORing its output with random bits from</tt> </tt>
+<a name="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"><tt class="py-docstring"> the operating system, and by controlling access to the underlying</tt> </tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line"><tt class="py-docstring"> RandomPool using an exclusive lock.</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>
+<a name="StrongLockingRandomPool.__init__"></a><div id="StrongLockingRandomPool.__init__-def"><a name="L67"></a><tt class="py-lineno"> 67</tt> <a class="py-toggle" href="#" id="StrongLockingRandomPool.__init__-toggle" onclick="return toggle('StrongLockingRandomPool.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.rng.StrongLockingRandomPool-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">instance</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="StrongLockingRandomPool.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="StrongLockingRandomPool.__init__-expanded"><a name="L68"></a><tt class="py-lineno"> 68</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">instance</tt> <tt class="py-keyword">is</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 class="py-name">instance</tt> <tt class="py-op">=</tt> <tt class="py-name">_RandomPool</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">self</tt><tt class="py-op">.</tt><tt id="link-11" class="py-name"><a title="paramiko.auth_handler.randpool
+paramiko.channel.randpool
+paramiko.client.randpool
+paramiko.common.randpool
+paramiko.dsskey.randpool
+paramiko.hostkeys.randpool
+paramiko.kex_gex.randpool
+paramiko.kex_group1.randpool
+paramiko.packet.randpool
+paramiko.pkey.randpool
+paramiko.rsakey.randpool
+paramiko.server.randpool
+paramiko.sftp.randpool
+paramiko.sftp_attr.randpool
+paramiko.sftp_client.randpool
+paramiko.sftp_file.randpool
+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-11', 'randpool', 'link-0');">randpool</a></tt> <tt class="py-op">=</tt> <tt class="py-name">instance</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">randpool_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="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
+paramiko.channel.randpool
+paramiko.client.randpool
+paramiko.common.randpool
+paramiko.dsskey.randpool
+paramiko.hostkeys.randpool
+paramiko.kex_gex.randpool
+paramiko.kex_group1.randpool
+paramiko.packet.randpool
+paramiko.pkey.randpool
+paramiko.rsakey.randpool
+paramiko.server.randpool
+paramiko.sftp.randpool
+paramiko.sftp_attr.randpool
+paramiko.sftp_client.randpool
+paramiko.sftp_file.randpool
+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-13', 'randpool', 'link-0');">randpool</a></tt><tt class="py-op">.</tt><tt id="link-14" 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-14', 'stir', 'link-14');">stir</a></tt><tt class="py-op">(</tt><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-15" 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-15', 'read', 'link-15');">read</a></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="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">entropy</tt><tt class="py-op">.</tt><tt id="link-16" class="py-name" targets="Method paramiko.rng.StrongLockingRandomPool.randomize()=paramiko.rng.StrongLockingRandomPool-class.html#randomize"><a title="paramiko.rng.StrongLockingRandomPool.randomize" class="py-name" href="#" onclick="return doclink('link-16', 'randomize', 'link-16');">randomize</a></tt><tt class="py-op">(</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="StrongLockingRandomPool.stir"></a><div id="StrongLockingRandomPool.stir-def"><a name="L78"></a><tt class="py-lineno"> 78</tt> <a class="py-toggle" href="#" id="StrongLockingRandomPool.stir-toggle" onclick="return toggle('StrongLockingRandomPool.stir');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.rng.StrongLockingRandomPool-class.html#stir">stir</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-string">''</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="StrongLockingRandomPool.stir-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="StrongLockingRandomPool.stir-expanded"><a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">randpool_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="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"> <tt class="py-keyword">try</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">self</tt><tt class="py-op">.</tt><tt id="link-17" class="py-name"><a title="paramiko.auth_handler.randpool
+paramiko.channel.randpool
+paramiko.client.randpool
+paramiko.common.randpool
+paramiko.dsskey.randpool
+paramiko.hostkeys.randpool
+paramiko.kex_gex.randpool
+paramiko.kex_group1.randpool
+paramiko.packet.randpool
+paramiko.pkey.randpool
+paramiko.rsakey.randpool
+paramiko.server.randpool
+paramiko.sftp.randpool
+paramiko.sftp_attr.randpool
+paramiko.sftp_client.randpool
+paramiko.sftp_file.randpool
+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-17', 'randpool', 'link-0');">randpool</a></tt><tt class="py-op">.</tt><tt id="link-18" class="py-name"><a title="paramiko.rng.StrongLockingRandomPool.stir" class="py-name" href="#" onclick="return doclink('link-18', 'stir', 'link-14');">stir</a></tt><tt class="py-op">(</tt><tt class="py-name">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-keyword">finally</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">randpool_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="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">entropy</tt><tt class="py-op">.</tt><tt id="link-19" class="py-name"><a title="paramiko.rng.StrongLockingRandomPool.randomize" class="py-name" href="#" onclick="return doclink('link-19', 'randomize', 'link-16');">randomize</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"> </tt>
+<a name="StrongLockingRandomPool.randomize"></a><div id="StrongLockingRandomPool.randomize-def"><a name="L86"></a><tt class="py-lineno"> 86</tt> <a class="py-toggle" href="#" id="StrongLockingRandomPool.randomize-toggle" onclick="return toggle('StrongLockingRandomPool.randomize');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.rng.StrongLockingRandomPool-class.html#randomize">randomize</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-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="StrongLockingRandomPool.randomize-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="StrongLockingRandomPool.randomize-expanded"><a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">randpool_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="L88"></a><tt class="py-lineno"> 88</tt> <tt class="py-line"> <tt class="py-keyword">try</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 id="link-20" class="py-name"><a title="paramiko.auth_handler.randpool
+paramiko.channel.randpool
+paramiko.client.randpool
+paramiko.common.randpool
+paramiko.dsskey.randpool
+paramiko.hostkeys.randpool
+paramiko.kex_gex.randpool
+paramiko.kex_group1.randpool
+paramiko.packet.randpool
+paramiko.pkey.randpool
+paramiko.rsakey.randpool
+paramiko.server.randpool
+paramiko.sftp.randpool
+paramiko.sftp_attr.randpool
+paramiko.sftp_client.randpool
+paramiko.sftp_file.randpool
+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-20', 'randpool', 'link-0');">randpool</a></tt><tt class="py-op">.</tt><tt id="link-21" class="py-name"><a title="paramiko.rng.StrongLockingRandomPool.randomize" class="py-name" href="#" onclick="return doclink('link-21', 'randomize', 'link-16');">randomize</a></tt><tt class="py-op">(</tt><tt class="py-name">N</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">finally</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">randpool_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="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">entropy</tt><tt class="py-op">.</tt><tt id="link-22" class="py-name"><a title="paramiko.rng.StrongLockingRandomPool.randomize" class="py-name" href="#" onclick="return doclink('link-22', 'randomize', 'link-16');">randomize</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"> </tt>
+<a name="StrongLockingRandomPool.add_event"></a><div id="StrongLockingRandomPool.add_event-def"><a name="L94"></a><tt class="py-lineno"> 94</tt> <a class="py-toggle" href="#" id="StrongLockingRandomPool.add_event-toggle" onclick="return toggle('StrongLockingRandomPool.add_event');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.rng.StrongLockingRandomPool-class.html#add_event">add_event</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-string">''</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="StrongLockingRandomPool.add_event-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="StrongLockingRandomPool.add_event-expanded"><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">randpool_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="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"> <tt class="py-keyword">try</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">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
+paramiko.dsskey.randpool
+paramiko.hostkeys.randpool
+paramiko.kex_gex.randpool
+paramiko.kex_group1.randpool
+paramiko.packet.randpool
+paramiko.pkey.randpool
+paramiko.rsakey.randpool
+paramiko.server.randpool
+paramiko.sftp.randpool
+paramiko.sftp_attr.randpool
+paramiko.sftp_client.randpool
+paramiko.sftp_file.randpool
+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-23', 'randpool', 'link-0');">randpool</a></tt><tt class="py-op">.</tt><tt id="link-24" class="py-name" targets="Method paramiko.rng.StrongLockingRandomPool.add_event()=paramiko.rng.StrongLockingRandomPool-class.html#add_event"><a title="paramiko.rng.StrongLockingRandomPool.add_event" class="py-name" href="#" onclick="return doclink('link-24', 'add_event', 'link-24');">add_event</a></tt><tt class="py-op">(</tt><tt class="py-name">s</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">finally</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 class="py-name">randpool_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="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"> </tt>
+<a name="StrongLockingRandomPool.get_bytes"></a><div id="StrongLockingRandomPool.get_bytes-def"><a name="L101"></a><tt class="py-lineno">101</tt> <a class="py-toggle" href="#" id="StrongLockingRandomPool.get_bytes-toggle" onclick="return toggle('StrongLockingRandomPool.get_bytes');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.rng.StrongLockingRandomPool-class.html#get_bytes">get_bytes</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="StrongLockingRandomPool.get_bytes-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="StrongLockingRandomPool.get_bytes-expanded"><a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">randpool_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="L103"></a><tt class="py-lineno">103</tt> <tt class="py-line"> <tt class="py-keyword">try</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">randpool_data</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-25" class="py-name"><a title="paramiko.auth_handler.randpool
+paramiko.channel.randpool
+paramiko.client.randpool
+paramiko.common.randpool
+paramiko.dsskey.randpool
+paramiko.hostkeys.randpool
+paramiko.kex_gex.randpool
+paramiko.kex_group1.randpool
+paramiko.packet.randpool
+paramiko.pkey.randpool
+paramiko.rsakey.randpool
+paramiko.server.randpool
+paramiko.sftp.randpool
+paramiko.sftp_attr.randpool
+paramiko.sftp_client.randpool
+paramiko.sftp_file.randpool
+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-25', 'randpool', 'link-0');">randpool</a></tt><tt class="py-op">.</tt><tt id="link-26" 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-26', 'get_bytes', 'link-26');">get_bytes</a></tt><tt class="py-op">(</tt><tt class="py-name">N</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">finally</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 class="py-name">randpool_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="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"> <tt class="py-name">entropy_data</tt> <tt class="py-op">=</tt> <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-27" class="py-name"><a title="paramiko.BufferedFile.read
+paramiko.SFTPHandle.read
+paramiko.buffered_pipe.BufferedPipe.read" class="py-name" href="#" onclick="return doclink('link-27', 'read', 'link-15');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">N</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">result</tt> <tt class="py-op">=</tt> <tt class="py-name">_strxor</tt><tt class="py-op">(</tt><tt class="py-name">randpool_data</tt><tt class="py-op">,</tt> <tt class="py-name">entropy_data</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">assert</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">randpool_data</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">N</tt> <tt class="py-keyword">and</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">entropy_data</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">N</tt> <tt class="py-keyword">and</tt> <tt class="py-name">len</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">N</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">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">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<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 Jul 6 18:30:35 2008
+ </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.rng.StrongLockingRandomPool-class.html b/docs/paramiko.rng.StrongLockingRandomPool-class.html
new file mode 100644
index 0000000..a1d792a
--- /dev/null
+++ b/docs/paramiko.rng.StrongLockingRandomPool-class.html
@@ -0,0 +1,281 @@
+<?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.rng.StrongLockingRandomPool</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.rng-module.html" onclick="show_private();">Module&nbsp;rng</a> ::
+ Class&nbsp;StrongLockingRandomPool
+ </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.rng.StrongLockingRandomPool-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class StrongLockingRandomPool</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.rng-pysrc.html#StrongLockingRandomPool">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+object --+
+ |
+ <strong class="uidshort">StrongLockingRandomPool</strong>
+</pre>
+
+<hr />
+<p>Wrapper around RandomPool guaranteeing strong random numbers.</p>
+ <p>Crypto.Util.randpool.RandomPool will silently operate even if it is
+ seeded with little or no entropy, and it provides no prediction
+ resistance if its state is ever compromised throughout its runtime. It
+ is also not thread-safe.</p>
+ <p>This wrapper augments RandomPool by XORing its output with random bits
+ from the operating system, and by controlling access to the underlying
+ RandomPool using an exclusive lock.</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.rng.StrongLockingRandomPool-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">instance</span>=<span class="summary-sig-default">None</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.rng-pysrc.html#StrongLockingRandomPool.__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="stir"></a><span class="summary-sig-name">stir</span>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">s</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string"></code><code class="variable-quote">'</code></span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.rng-pysrc.html#StrongLockingRandomPool.stir">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="randomize"></a><span class="summary-sig-name">randomize</span>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">N</span>=<span class="summary-sig-default">0</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.rng-pysrc.html#StrongLockingRandomPool.randomize">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="add_event"></a><span class="summary-sig-name">add_event</span>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">s</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string"></code><code class="variable-quote">'</code></span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.rng-pysrc.html#StrongLockingRandomPool.add_event">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="get_bytes"></a><span class="summary-sig-name">get_bytes</span>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">N</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.rng-pysrc.html#StrongLockingRandomPool.get_bytes">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>__getattribute__</code>,
+ <code>__hash__</code>,
+ <code>__new__</code>,
+ <code>__reduce__</code>,
+ <code>__reduce_ex__</code>,
+ <code>__repr__</code>,
+ <code>__setattr__</code>,
+ <code>__str__</code>
+ </p>
+ </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">instance</span>=<span class="sig-default">None</span>)</span>
+ <br /><em class="fname">(Constructor)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.rng-pysrc.html#StrongLockingRandomPool.__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 Jul 6 18:30:31 2008
+ </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.rng_posix-module.html b/docs/paramiko.rng_posix-module.html
new file mode 100644
index 0000000..cb912ad
--- /dev/null
+++ b/docs/paramiko.rng_posix-module.html
@@ -0,0 +1,144 @@
+<?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.rng_posix</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> ::
+ Module&nbsp;rng_posix
+ </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.rng_posix-module.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module rng_posix</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.rng_posix-pysrc.html">source&nbsp;code</a></span></p>
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></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">Classes</span></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.rng_posix.error-class.html" class="summary-name">error</a>
+ </td>
+ </tr>
+</table>
+<!-- ==================== FUNCTIONS ==================== -->
+<a name="section-Functions"></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">Functions</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="open_rng_device"></a><span class="summary-sig-name">open_rng_device</span>(<span class="summary-sig-arg">device_path</span>=<span class="summary-sig-default">None</span>)</span><br />
+ Open /dev/urandom and perform some sanity checks.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.rng_posix-pysrc.html#open_rng_device">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+</table>
+<!-- ==================== 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 Jul 6 18:30:27 2008
+ </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.rng_posix-pysrc.html b/docs/paramiko.rng_posix-pysrc.html
new file mode 100644
index 0000000..108ba64
--- /dev/null
+++ b/docs/paramiko.rng_posix-pysrc.html
@@ -0,0 +1,285 @@
+<?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.rng_posix</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> ::
+ Module&nbsp;rng_posix
+ </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.rng_posix-pysrc.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<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="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
+paramiko.SFTPHandle.stat
+paramiko.SFTPServerInterface.stat" class="py-name" href="#" onclick="return doclink('link-0', 'stat', 'link-0');">stat</a></tt> </tt>
+<a name="L24"></a><tt class="py-lineno">24</tt> <tt class="py-line"> </tt>
+<a name="error"></a><div id="error-def"><a name="L25"></a><tt class="py-lineno">25</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_posix.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="L26"></a><tt class="py-lineno">26</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L27"></a><tt class="py-lineno">27</tt> <tt class="py-line"> </tt>
+<a name="_RNG"></a><div id="_RNG-def"><a name="L28"></a><tt class="py-lineno">28</tt> <a class="py-toggle" href="#" id="_RNG-toggle" onclick="return toggle('_RNG');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.rng_posix._RNG-class.html">_RNG</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="_RNG-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="_RNG-expanded"><a name="_RNG.__init__"></a><div id="_RNG.__init__-def"><a name="L29"></a><tt class="py-lineno">29</tt> <a class="py-toggle" href="#" id="_RNG.__init__-toggle" onclick="return toggle('_RNG.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.rng_posix._RNG-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">file</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_RNG.__init__-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="_RNG.__init__-expanded"><a name="L30"></a><tt class="py-lineno">30</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1" 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-1', 'file', 'link-1');">file</a></tt> <tt class="py-op">=</tt> <tt id="link-2" class="py-name"><a title="paramiko.SFTPClient.file
+paramiko.file" class="py-name" href="#" onclick="return doclink('link-2', 'file', 'link-1');">file</a></tt> </tt>
+</div><a name="L31"></a><tt class="py-lineno">31</tt> <tt class="py-line"> </tt>
+<a name="_RNG.read"></a><div id="_RNG.read-def"><a name="L32"></a><tt class="py-lineno">32</tt> <a class="py-toggle" href="#" id="_RNG.read-toggle" onclick="return toggle('_RNG.read');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.rng_posix._RNG-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">bytes</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_RNG.read-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="_RNG.read-expanded"><a name="L33"></a><tt class="py-lineno">33</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-3" class="py-name"><a title="paramiko.SFTPClient.file
+paramiko.file" class="py-name" href="#" onclick="return doclink('link-3', 'file', 'link-1');">file</a></tt><tt class="py-op">.</tt><tt id="link-4" 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-4', 'read', 'link-4');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">bytes</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L34"></a><tt class="py-lineno">34</tt> <tt class="py-line"> </tt>
+<a name="_RNG.close"></a><div id="_RNG.close-def"><a name="L35"></a><tt class="py-lineno">35</tt> <a class="py-toggle" href="#" id="_RNG.close-toggle" onclick="return toggle('_RNG.close');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.rng_posix._RNG-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="_RNG.close-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="_RNG.close-expanded"><a name="L36"></a><tt class="py-lineno">36</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-5" class="py-name"><a title="paramiko.SFTPClient.file
+paramiko.file" class="py-name" href="#" onclick="return doclink('link-5', 'file', 'link-1');">file</a></tt><tt class="py-op">.</tt><tt id="link-6" 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
+paramiko.SFTPFile.close
+paramiko.SFTPHandle.close
+paramiko.SSHClient.close
+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-6', 'close', 'link-6');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L37"></a><tt class="py-lineno">37</tt> <tt class="py-line"> </tt>
+<a name="_RNG.randomize"></a><div id="_RNG.randomize-def"><a name="L38"></a><tt class="py-lineno">38</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_posix._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="L39"></a><tt class="py-lineno">39</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+</div></div><a name="L40"></a><tt class="py-lineno">40</tt> <tt class="py-line"> </tt>
+<a name="open_rng_device"></a><div id="open_rng_device-def"><a name="L41"></a><tt class="py-lineno">41</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_posix-module.html#open_rng_device">open_rng_device</a><tt class="py-op">(</tt><tt class="py-param">device_path</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="open_rng_device-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="open_rng_device-expanded"><a name="L42"></a><tt class="py-lineno">42</tt> <tt class="py-line"> <tt class="py-docstring">"""Open /dev/urandom and perform some sanity checks."""</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-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="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="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="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="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
+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
+paramiko.SFTPFile.stat
+paramiko.SFTPHandle.stat
+paramiko.SFTPServerInterface.stat" class="py-name" href="#" onclick="return doclink('link-12', 'stat', 'link-0');">stat</a></tt><tt class="py-op">.</tt><tt class="py-name">S_ISREG</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-keyword">or</tt> <tt class="py-keyword">not</tt> <tt id="link-13" 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-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="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>
+<a name="L70"></a><tt class="py-lineno">70</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-16" 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-16', 'stat', 'link-0');">stat</a></tt><tt class="py-op">.</tt><tt class="py-name">S_ISREG</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-keyword">or</tt> <tt class="py-keyword">not</tt> <tt id="link-17" 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-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="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
+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
+paramiko.SFTPHandle.read
+paramiko.buffered_pipe.BufferedPipe.read" class="py-name" href="#" onclick="return doclink('link-20', '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="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="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="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
+paramiko.BufferedFile.close
+paramiko.Channel.close
+paramiko.SFTPClient.close
+paramiko.SFTPFile.close
+paramiko.SFTPHandle.close
+paramiko.SSHClient.close
+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-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="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>
+<a name="L90"></a><tt class="py-lineno">90</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">f</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="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-25" class="py-name"><a title="paramiko.Agent.close
+paramiko.BufferedFile.close
+paramiko.Channel.close
+paramiko.SFTPClient.close
+paramiko.SFTPFile.close
+paramiko.SFTPHandle.close
+paramiko.SSHClient.close
+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-25', 'close', 'link-6');">close</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-keyword">if</tt> <tt class="py-name">g</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="L93"></a><tt class="py-lineno">93</tt> <tt class="py-line"> <tt class="py-name">g</tt><tt class="py-op">.</tt><tt id="link-26" class="py-name"><a title="paramiko.Agent.close
+paramiko.BufferedFile.close
+paramiko.Channel.close
+paramiko.SFTPClient.close
+paramiko.SFTPFile.close
+paramiko.SFTPHandle.close
+paramiko.SSHClient.close
+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-26', 'close', 'link-6');">close</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">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">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<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 Jul 6 18:30:36 2008
+ </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.rng_posix.error-class.html b/docs/paramiko.rng_posix.error-class.html
new file mode 100644
index 0000000..6224757
--- /dev/null
+++ b/docs/paramiko.rng_posix.error-class.html
@@ -0,0 +1,165 @@
+<?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.rng_posix.error</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.rng_posix-module.html" onclick="show_private();">Module&nbsp;rng_posix</a> ::
+ Class&nbsp;error
+ </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.rng_posix.error-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class error</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.rng_posix-pysrc.html#error">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+ object --+
+ |
+exceptions.BaseException --+
+ |
+ exceptions.Exception --+
+ |
+ <strong class="uidshort">error</strong>
+</pre>
+
+<hr />
+<!-- ==================== 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 colspan="2" class="summary">
+ <p class="indent-wrapped-lines"><b>Inherited from <code>exceptions.Exception</code></b>:
+ <code>__init__</code>,
+ <code>__new__</code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>exceptions.BaseException</code></b>:
+ <code>__delattr__</code>,
+ <code>__getattribute__</code>,
+ <code>__getitem__</code>,
+ <code>__reduce__</code>,
+ <code>__repr__</code>,
+ <code>__setattr__</code>,
+ <code>__setstate__</code>,
+ <code>__str__</code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__hash__</code>,
+ <code>__reduce_ex__</code>
+ </p>
+ </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>exceptions.BaseException</code></b>:
+ <code>args</code>,
+ <code>message</code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__class__</code>
+ </p>
+ </td>
+ </tr>
+</table>
+<!-- ==================== 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 Jul 6 18:30:31 2008
+ </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.rng_win32-module.html b/docs/paramiko.rng_win32-module.html
new file mode 100644
index 0000000..3bbbfa8
--- /dev/null
+++ b/docs/paramiko.rng_win32-module.html
@@ -0,0 +1,143 @@
+<?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.rng_win32</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> ::
+ Module&nbsp;rng_win32
+ </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.rng_win32-module.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module rng_win32</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.rng_win32-pysrc.html">source&nbsp;code</a></span></p>
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></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">Classes</span></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.rng_win32.error-class.html" class="summary-name">error</a>
+ </td>
+ </tr>
+</table>
+<!-- ==================== FUNCTIONS ==================== -->
+<a name="section-Functions"></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">Functions</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="open_rng_device"></a><span class="summary-sig-name">open_rng_device</span>()</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.rng_win32-pysrc.html#open_rng_device">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+</table>
+<!-- ==================== 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 Jul 6 18:30:27 2008
+ </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.rng_win32-pysrc.html b/docs/paramiko.rng_win32-pysrc.html
new file mode 100644
index 0000000..450e713
--- /dev/null
+++ b/docs/paramiko.rng_win32-pysrc.html
@@ -0,0 +1,249 @@
+<?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.rng_win32</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> ::
+ Module&nbsp;rng_win32
+ </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.rng_win32-pysrc.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<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="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="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="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>
+<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>
+<a name="_RNG"></a><div id="_RNG-def"><a name="L38"></a><tt class="py-lineno"> 38</tt> <a class="py-toggle" href="#" id="_RNG-toggle" onclick="return toggle('_RNG');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.rng_win32._RNG-class.html">_RNG</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="_RNG-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_RNG-expanded"><a name="_RNG.__init__"></a><div id="_RNG.__init__-def"><a name="L39"></a><tt class="py-lineno"> 39</tt> <a class="py-toggle" href="#" id="_RNG.__init__-toggle" onclick="return toggle('_RNG.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.rng_win32._RNG-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">readfunc</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_RNG.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="_RNG.__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 id="link-2" 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-2', 'read', 'link-2');">read</a></tt> <tt class="py-op">=</tt> <tt class="py-name">readfunc</tt> </tt>
+</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
+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>
+<a name="_open_winrandom"></a><div id="_open_winrandom-def"><a name="L50"></a><tt class="py-lineno"> 50</tt> <a class="py-toggle" href="#" id="_open_winrandom-toggle" onclick="return toggle('_open_winrandom');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.rng_win32-module.html#_open_winrandom">_open_winrandom</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_open_winrandom-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_open_winrandom-expanded"><a name="L51"></a><tt class="py-lineno"> 51</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-4" class="py-name"><a title="paramiko.rng_win32._winrandom" class="py-name" href="#" onclick="return doclink('link-4', '_winrandom', 'link-0');">_winrandom</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L52"></a><tt class="py-lineno"> 52</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-5" 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-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="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="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="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="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="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="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>
+</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="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="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="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="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="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="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="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="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="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>
+</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">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<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 Jul 6 18:30:37 2008
+ </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.rng_win32.error-class.html b/docs/paramiko.rng_win32.error-class.html
new file mode 100644
index 0000000..6f5c6a7
--- /dev/null
+++ b/docs/paramiko.rng_win32.error-class.html
@@ -0,0 +1,165 @@
+<?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.rng_win32.error</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.rng_win32-module.html">Module&nbsp;rng_win32</a> ::
+ Class&nbsp;error
+ </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.rng_win32.error-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class error</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.rng_win32-pysrc.html#error">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+ object --+
+ |
+exceptions.BaseException --+
+ |
+ exceptions.Exception --+
+ |
+ <strong class="uidshort">error</strong>
+</pre>
+
+<hr />
+<!-- ==================== 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 colspan="2" class="summary">
+ <p class="indent-wrapped-lines"><b>Inherited from <code>exceptions.Exception</code></b>:
+ <code>__init__</code>,
+ <code>__new__</code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>exceptions.BaseException</code></b>:
+ <code>__delattr__</code>,
+ <code>__getattribute__</code>,
+ <code>__getitem__</code>,
+ <code>__reduce__</code>,
+ <code>__repr__</code>,
+ <code>__setattr__</code>,
+ <code>__setstate__</code>,
+ <code>__str__</code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__hash__</code>,
+ <code>__reduce_ex__</code>
+ </p>
+ </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>exceptions.BaseException</code></b>:
+ <code>args</code>,
+ <code>message</code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__class__</code>
+ </p>
+ </td>
+ </tr>
+</table>
+<!-- ==================== 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 Jul 6 18:30:31 2008
+ </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.rsakey-module.html b/docs/paramiko.rsakey-module.html
new file mode 100644
index 0000000..3c810da
--- /dev/null
+++ b/docs/paramiko.rsakey-module.html
@@ -0,0 +1,524 @@
+<?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.rsakey</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> ::
+ Module&nbsp;rsakey
+ </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.rsakey-module.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module rsakey</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.rsakey-pysrc.html">source&nbsp;code</a></span></p>
+<p><a href="paramiko.RSAKey-class.html" class="link">RSAKey</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="AUTH_FAILED"></a><span class="summary-name">AUTH_FAILED</span> = <code title="2">2</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_PARTIALLY_SUCCESSFUL"></a><span class="summary-name">AUTH_PARTIALLY_SUCCESSFUL</span> = <code title="1">1</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_SUCCESSFUL"></a><span class="summary-name">AUTH_SUCCESSFUL</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 href="paramiko.rsakey-module.html#CONNECTION_FAILED_CODE" class="summary-name">CONNECTION_FAILED_CODE</a> = <code title="{1: 'Administratively prohibited',
+ 2: 'Connect failed',
+ 3: 'Unknown channel type',
+ 4: 'Resource shortage'}"><code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Administratively prohibited</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-op">:</code><code class="variable-ellipsis">...</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="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="DEBUG"></a><span class="summary-name">DEBUG</span> = <code title="10">10</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="DISCONNECT_AUTH_CANCELLED_BY_USER"></a><span class="summary-name">DISCONNECT_AUTH_CANCELLED_BY_USER</span> = <code title="13">13</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="DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE"></a><span class="summary-name">DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE</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="DISCONNECT_SERVICE_NOT_AVAILABLE"></a><span class="summary-name">DISCONNECT_SERVICE_NOT_AVAILABLE</span> = <code title="7">7</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="ERROR"></a><span class="summary-name">ERROR</span> = <code title="40">40</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="INFO"></a><span class="summary-name">INFO</span> = <code title="20">20</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="MSG_CHANNEL_CLOSE"></a><span class="summary-name">MSG_CHANNEL_CLOSE</span> = <code title="97">97</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="MSG_CHANNEL_DATA"></a><span class="summary-name">MSG_CHANNEL_DATA</span> = <code title="94">94</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="MSG_CHANNEL_EOF"></a><span class="summary-name">MSG_CHANNEL_EOF</span> = <code title="96">96</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="MSG_CHANNEL_EXTENDED_DATA"></a><span class="summary-name">MSG_CHANNEL_EXTENDED_DATA</span> = <code title="95">95</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="MSG_CHANNEL_FAILURE"></a><span class="summary-name">MSG_CHANNEL_FAILURE</span> = <code title="100">100</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="MSG_CHANNEL_OPEN"></a><span class="summary-name">MSG_CHANNEL_OPEN</span> = <code title="90">90</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="MSG_CHANNEL_OPEN_FAILURE"></a><span class="summary-name">MSG_CHANNEL_OPEN_FAILURE</span> = <code title="92">92</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="MSG_CHANNEL_OPEN_SUCCESS"></a><span class="summary-name">MSG_CHANNEL_OPEN_SUCCESS</span> = <code title="91">91</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="MSG_CHANNEL_REQUEST"></a><span class="summary-name">MSG_CHANNEL_REQUEST</span> = <code title="98">98</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="MSG_CHANNEL_SUCCESS"></a><span class="summary-name">MSG_CHANNEL_SUCCESS</span> = <code title="99">99</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="MSG_CHANNEL_WINDOW_ADJUST"></a><span class="summary-name">MSG_CHANNEL_WINDOW_ADJUST</span> = <code title="93">93</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="MSG_DEBUG"></a><span class="summary-name">MSG_DEBUG</span> = <code title="4">4</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="MSG_DISCONNECT"></a><span class="summary-name">MSG_DISCONNECT</span> = <code title="1">1</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="MSG_GLOBAL_REQUEST"></a><span class="summary-name">MSG_GLOBAL_REQUEST</span> = <code title="80">80</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="MSG_IGNORE"></a><span class="summary-name">MSG_IGNORE</span> = <code title="2">2</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="MSG_KEXINIT"></a><span class="summary-name">MSG_KEXINIT</span> = <code title="20">20</code>
+ </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.rsakey-module.html#MSG_NAMES" class="summary-name">MSG_NAMES</a> = <code title="{1: 'disconnect',
+ 2: 'ignore',
+ 3: 'unimplemented',
+ 4: 'debug',
+ 5: 'service-request',
+ 6: 'service-accept',
+ 20: 'kexinit',
+ 21: 'newkeys',
+..."><code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">disconnect</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">ignore</code><code class="variable-quote">'</code><code class="variable-op">, </code>3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">unimplemented</code><code class="variable-quote">'</code><code class="variable-op">,</code><code class="variable-ellipsis">...</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="MSG_NEWKEYS"></a><span class="summary-name">MSG_NEWKEYS</span> = <code title="21">21</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="MSG_REQUEST_FAILURE"></a><span class="summary-name">MSG_REQUEST_FAILURE</span> = <code title="82">82</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="MSG_REQUEST_SUCCESS"></a><span class="summary-name">MSG_REQUEST_SUCCESS</span> = <code title="81">81</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="MSG_SERVICE_ACCEPT"></a><span class="summary-name">MSG_SERVICE_ACCEPT</span> = <code title="6">6</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="MSG_SERVICE_REQUEST"></a><span class="summary-name">MSG_SERVICE_REQUEST</span> = <code title="5">5</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="MSG_UNIMPLEMENTED"></a><span class="summary-name">MSG_UNIMPLEMENTED</span> = <code title="3">3</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="MSG_USERAUTH_BANNER"></a><span class="summary-name">MSG_USERAUTH_BANNER</span> = <code title="53">53</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="MSG_USERAUTH_FAILURE"></a><span class="summary-name">MSG_USERAUTH_FAILURE</span> = <code title="51">51</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="MSG_USERAUTH_INFO_REQUEST"></a><span class="summary-name">MSG_USERAUTH_INFO_REQUEST</span> = <code title="60">60</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="MSG_USERAUTH_INFO_RESPONSE"></a><span class="summary-name">MSG_USERAUTH_INFO_RESPONSE</span> = <code title="61">61</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="MSG_USERAUTH_PK_OK"></a><span class="summary-name">MSG_USERAUTH_PK_OK</span> = <code title="60">60</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="MSG_USERAUTH_REQUEST"></a><span class="summary-name">MSG_USERAUTH_REQUEST</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="MSG_USERAUTH_SUCCESS"></a><span class="summary-name">MSG_USERAUTH_SUCCESS</span> = <code title="52">52</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="OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED"></a><span class="summary-name">OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED</span> = <code title="1">1</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="OPEN_FAILED_CONNECT_FAILED"></a><span class="summary-name">OPEN_FAILED_CONNECT_FAILED</span> = <code title="2">2</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="OPEN_FAILED_RESOURCE_SHORTAGE"></a><span class="summary-name">OPEN_FAILED_RESOURCE_SHORTAGE</span> = <code title="4">4</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="OPEN_FAILED_UNKNOWN_CHANNEL_TYPE"></a><span class="summary-name">OPEN_FAILED_UNKNOWN_CHANNEL_TYPE</span> = <code title="3">3</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="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="PY22"></a><span class="summary-name">PY22</span> = <code title="False">False</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="WARNING"></a><span class="summary-name">WARNING</span> = <code title="30">30</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>
+</table>
+<!-- ==================== VARIABLES DETAILS ==================== -->
+<a name="section-VariablesDetails"></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">Variables Details</span></td>
+</tr>
+</table>
+<a name="CONNECTION_FAILED_CODE"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">CONNECTION_FAILED_CODE</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Administratively prohibited</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Connect failed</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Unknown channel type</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Resource shortage</code><code class="variable-quote">'</code><code class="variable-group">}</code>
+</pre></td></tr></table>
+</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="MSG_NAMES"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">MSG_NAMES</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">disconnect</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">ignore</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">unimplemented</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">debug</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 5<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">service-request</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 6<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">service-accept</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 20<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">kexinit</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 21<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">newkeys</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+ </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 Jul 6 18:30:27 2008
+ </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.rsakey-pysrc.html b/docs/paramiko.rsakey-pysrc.html
new file mode 100644
index 0000000..8e1c42b
--- /dev/null
+++ b/docs/paramiko.rsakey-pysrc.html
@@ -0,0 +1,343 @@
+<?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.rsakey</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> ::
+ Module&nbsp;rsakey
+ </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.rsakey-pysrc.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</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="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>
+<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">Crypto</tt><tt class="py-op">.</tt><tt class="py-name">PublicKey</tt> <tt class="py-keyword">import</tt> <tt class="py-name">RSA</tt> </tt>
+<a name="L24"></a><tt class="py-lineno"> 24</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="L25"></a><tt class="py-lineno"> 25</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">DES3</tt> </tt>
+<a name="L26"></a><tt class="py-lineno"> 26</tt> <tt class="py-line"> </tt>
+<a name="L27"></a><tt class="py-lineno"> 27</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="L28"></a><tt class="py-lineno"> 28</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>
+<a name="L29"></a><tt class="py-lineno"> 29</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-4" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-4', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-5" class="py-name" targets="Module paramiko.message=paramiko.message-module.html"><a title="paramiko.message" class="py-name" href="#" onclick="return doclink('link-5', 'message', 'link-5');">message</a></tt> <tt class="py-keyword">import</tt> <tt id="link-6" class="py-name" targets="Class paramiko.Message=paramiko.Message-class.html"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-6', 'Message', 'link-6');">Message</a></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-7" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-7', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-8" class="py-name" targets="Module paramiko.ber=paramiko.ber-module.html"><a title="paramiko.ber" class="py-name" href="#" onclick="return doclink('link-8', 'ber', 'link-8');">ber</a></tt> <tt class="py-keyword">import</tt> <tt id="link-9" class="py-name" targets="Class paramiko.ber.BER=paramiko.ber.BER-class.html"><a title="paramiko.ber.BER" class="py-name" href="#" onclick="return doclink('link-9', 'BER', 'link-9');">BER</a></tt><tt class="py-op">,</tt> <tt id="link-10" 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-10', 'BERException', 'link-10');">BERException</a></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-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.pkey=paramiko.pkey-module.html"><a title="paramiko.pkey" class="py-name" href="#" onclick="return doclink('link-12', 'pkey', 'link-12');">pkey</a></tt> <tt class="py-keyword">import</tt> <tt id="link-13" class="py-name" targets="Class paramiko.PKey=paramiko.PKey-class.html"><a title="paramiko.PKey" class="py-name" href="#" onclick="return doclink('link-13', 'PKey', 'link-13');">PKey</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-14" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-14', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-15" 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-15', 'ssh_exception', 'link-15');">ssh_exception</a></tt> <tt class="py-keyword">import</tt> <tt id="link-16" class="py-name" targets="Class paramiko.SSHException=paramiko.SSHException-class.html"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-16', 'SSHException', 'link-16');">SSHException</a></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>
+<a name="RSAKey"></a><div id="RSAKey-def"><a name="L35"></a><tt class="py-lineno"> 35</tt> <a class="py-toggle" href="#" id="RSAKey-toggle" onclick="return toggle('RSAKey');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.rsakey.RSAKey-class.html">RSAKey</a> <tt class="py-op">(</tt><tt class="py-base-class">PKey</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="RSAKey-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="RSAKey-expanded"><a name="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt> <tt class="py-line"><tt class="py-docstring"> Representation of an RSA key which can be used to sign and verify SSH2</tt> </tt>
+<a name="L38"></a><tt class="py-lineno"> 38</tt> <tt class="py-line"><tt class="py-docstring"> data.</tt> </tt>
+<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="RSAKey.__init__"></a><div id="RSAKey.__init__-def"><a name="L41"></a><tt class="py-lineno"> 41</tt> <a class="py-toggle" href="#" id="RSAKey.__init__-toggle" onclick="return toggle('RSAKey.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.rsakey.RSAKey-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">msg</tt><tt class="py-op">=</tt><tt class="py-name">None</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">filename</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">vals</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">file_obj</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="RSAKey.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="RSAKey.__init__-expanded"><a name="L42"></a><tt class="py-lineno"> 42</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">None</tt> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</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">None</tt> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</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">None</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 class="py-name">p</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 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">None</tt> </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">file_obj</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="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">_from_private_key</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>
+<a name="L49"></a><tt class="py-lineno"> 49</tt> <tt class="py-line"> <tt class="py-keyword">return</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-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="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">_from_private_key_file</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="L52"></a><tt class="py-lineno"> 52</tt> <tt class="py-line"> <tt class="py-keyword">return</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">msg</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-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 class="py-op">:</tt> </tt>
+<a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line"> <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt id="link-17" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-17', 'Message', 'link-6');">Message</a></tt><tt class="py-op">(</tt><tt class="py-name">data</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">if</tt> <tt class="py-name">vals</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="L56"></a><tt class="py-lineno"> 56</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">self</tt><tt class="py-op">.</tt><tt class="py-name">n</tt> <tt class="py-op">=</tt> <tt class="py-name">vals</tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"> <tt class="py-keyword">else</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">if</tt> <tt class="py-name">msg</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</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-18" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-18', 'SSHException', 'link-16');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Key object may not be empty'</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">msg</tt><tt class="py-op">.</tt><tt id="link-19" 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-19', '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="L61"></a><tt class="py-lineno"> 61</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-16');">SSHException</a></tt><tt class="py-op">(</tt><tt class="py-string">'Invalid key'</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">self</tt><tt class="py-op">.</tt><tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-21" 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-21', 'get_mpint', 'link-21');">get_mpint</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">n</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-22" class="py-name"><a title="paramiko.Message.get_mpint" class="py-name" href="#" onclick="return doclink('link-22', 'get_mpint', 'link-21');">get_mpint</a></tt><tt class="py-op">(</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">self</tt><tt class="py-op">.</tt><tt class="py-name">size</tt> <tt class="py-op">=</tt> <tt id="link-23" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-23', 'util', 'link-3');">util</a></tt><tt class="py-op">.</tt><tt id="link-24" 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-24', '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><a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"> </tt>
+<a name="RSAKey.__str__"></a><div id="RSAKey.__str__-def"><a name="L66"></a><tt class="py-lineno"> 66</tt> <a class="py-toggle" href="#" id="RSAKey.__str__-toggle" onclick="return toggle('RSAKey.__str__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.rsakey.RSAKey-class.html#__str__">__str__</a><tt 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.__str__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="RSAKey.__str__-expanded"><a name="L67"></a><tt class="py-lineno"> 67</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="L68"></a><tt class="py-lineno"> 68</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_string()=paramiko.Message-class.html#add_string"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-26', '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="L69"></a><tt class="py-lineno"> 69</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>
+<a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line"> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt id="link-28" class="py-name"><a title="paramiko.Message.add_mpint" class="py-name" href="#" onclick="return doclink('link-28', '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">n</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">str</tt><tt class="py-op">(</tt><tt class="py-name">m</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L72"></a><tt class="py-lineno"> 72</tt> <tt class="py-line"> </tt>
+<a name="RSAKey.__hash__"></a><div id="RSAKey.__hash__-def"><a name="L73"></a><tt class="py-lineno"> 73</tt> <a class="py-toggle" href="#" id="RSAKey.__hash__-toggle" onclick="return toggle('RSAKey.__hash__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.rsakey.RSAKey-class.html#__hash__">__hash__</a><tt 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.__hash__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="RSAKey.__hash__-expanded"><a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"> <tt class="py-name">h</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 id="link-29" 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-29', 'get_name', 'link-29');">get_name</a></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">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">e</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">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">n</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">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="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"> </tt>
+<a name="RSAKey.get_name"></a><div id="RSAKey.get_name-def"><a name="L79"></a><tt class="py-lineno"> 79</tt> <a class="py-toggle" href="#" id="RSAKey.get_name-toggle" onclick="return toggle('RSAKey.get_name');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.rsakey.RSAKey-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="RSAKey.get_name-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="RSAKey.get_name-expanded"><a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">'ssh-rsa'</tt> </tt>
+</div><a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"> </tt>
+<a name="RSAKey.get_bits"></a><div id="RSAKey.get_bits-def"><a name="L82"></a><tt class="py-lineno"> 82</tt> <a class="py-toggle" href="#" id="RSAKey.get_bits-toggle" onclick="return toggle('RSAKey.get_bits');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.rsakey.RSAKey-class.html#get_bits">get_bits</a><tt 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.get_bits-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="RSAKey.get_bits-expanded"><a name="L83"></a><tt class="py-lineno"> 83</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">size</tt> </tt>
+</div><a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"> </tt>
+<a name="RSAKey.can_sign"></a><div id="RSAKey.can_sign-def"><a name="L85"></a><tt class="py-lineno"> 85</tt> <a class="py-toggle" href="#" id="RSAKey.can_sign-toggle" onclick="return toggle('RSAKey.can_sign');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.rsakey.RSAKey-class.html#can_sign">can_sign</a><tt 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.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>
+<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="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>
+<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="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="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="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="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="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>
+</div><div id="RSAKey.write_private_key_file-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="RSAKey.write_private_key_file-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">_write_private_key_file</tt><tt class="py-op">(</tt><tt class="py-string">'RSA'</tt><tt class="py-op">,</tt> <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">_encode_key</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">password</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="RSAKey.write_private_key"></a><div id="RSAKey.write_private_key-def"><a name="L124"></a><tt class="py-lineno">124</tt> <a class="py-toggle" href="#" id="RSAKey.write_private_key-toggle" onclick="return toggle('RSAKey.write_private_key');">-</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">write_private_key</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-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="RSAKey.write_private_key-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="RSAKey.write_private_key-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">_write_private_key</tt><tt class="py-op">(</tt><tt class="py-string">'RSA'</tt><tt class="py-op">,</tt> <tt class="py-name">file_obj</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_encode_key</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">password</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="RSAKey.generate"></a><div id="RSAKey.generate-def"><a name="L127"></a><tt class="py-lineno">127</tt> <a class="py-toggle" href="#" id="RSAKey.generate-toggle" onclick="return toggle('RSAKey.generate');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.rsakey.RSAKey-class.html#generate">generate</a><tt class="py-op">(</tt><tt class="py-param">bits</tt><tt class="py-op">,</tt> <tt class="py-param">progress_func</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="RSAKey.generate-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="RSAKey.generate-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"> Generate a new private RSA key. This factory function can be used to</tt> </tt>
+<a name="L130"></a><tt class="py-lineno">130</tt> <tt class="py-line"><tt class="py-docstring"> generate a new host key or authentication key.</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 bits: number of bits the generated key should be.</tt> </tt>
+<a name="L133"></a><tt class="py-lineno">133</tt> <tt class="py-line"><tt class="py-docstring"> @type bits: int</tt> </tt>
+<a name="L134"></a><tt class="py-lineno">134</tt> <tt class="py-line"><tt class="py-docstring"> @param progress_func: an optional function to call at key points in</tt> </tt>
+<a name="L135"></a><tt class="py-lineno">135</tt> <tt class="py-line"><tt class="py-docstring"> key generation (used by C{pyCrypto.PublicKey}).</tt> </tt>
+<a name="L136"></a><tt class="py-lineno">136</tt> <tt class="py-line"><tt class="py-docstring"> @type progress_func: function</tt> </tt>
+<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
+paramiko.channel.randpool
+paramiko.client.randpool
+paramiko.common.randpool
+paramiko.dsskey.randpool
+paramiko.hostkeys.randpool
+paramiko.kex_gex.randpool
+paramiko.kex_group1.randpool
+paramiko.packet.randpool
+paramiko.pkey.randpool
+paramiko.rsakey.randpool
+paramiko.server.randpool
+paramiko.sftp.randpool
+paramiko.sftp_attr.randpool
+paramiko.sftp_client.randpool
+paramiko.sftp_file.randpool
+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.channel.randpool
+paramiko.client.randpool
+paramiko.common.randpool
+paramiko.dsskey.randpool
+paramiko.hostkeys.randpool
+paramiko.kex_gex.randpool
+paramiko.kex_group1.randpool
+paramiko.packet.randpool
+paramiko.pkey.randpool
+paramiko.rsakey.randpool
+paramiko.server.randpool
+paramiko.sftp.randpool
+paramiko.sftp_attr.randpool
+paramiko.sftp_client.randpool
+paramiko.sftp_file.randpool
+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>
+<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>
+<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="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>
+<a name="L155"></a><tt class="py-lineno">155</tt> <tt class="py-line"><tt class="py-docstring"> turn a 20-byte SHA1 hash into a blob of data as large as the key's N,</tt> </tt>
+<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="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>
+<a name="RSAKey._from_private_key_file"></a><div id="RSAKey._from_private_key_file-def"><a name="L163"></a><tt class="py-lineno">163</tt> <a class="py-toggle" href="#" id="RSAKey._from_private_key_file-toggle" onclick="return toggle('RSAKey._from_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#_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="RSAKey._from_private_key_file-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="RSAKey._from_private_key_file-expanded"><a name="L164"></a><tt class="py-lineno">164</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">'RSA'</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="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">_decode_key</tt><tt class="py-op">(</tt><tt class="py-name">data</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="RSAKey._from_private_key"></a><div id="RSAKey._from_private_key-def"><a name="L167"></a><tt class="py-lineno">167</tt> <a class="py-toggle" href="#" id="RSAKey._from_private_key-toggle" onclick="return toggle('RSAKey._from_private_key');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.rsakey.RSAKey-class.html#_from_private_key">_from_private_key</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-param">password</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="RSAKey._from_private_key-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="RSAKey._from_private_key-expanded"><a name="L168"></a><tt class="py-lineno">168</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-string">'RSA'</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>
+<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">_decode_key</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
+</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="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="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="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>
+</div></div><a name="L187"></a><tt class="py-lineno">187</tt> <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<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 Jul 6 18:30:31 2008
+ </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.server-module.html b/docs/paramiko.server-module.html
new file mode 100644
index 0000000..7f452ac
--- /dev/null
+++ b/docs/paramiko.server-module.html
@@ -0,0 +1,526 @@
+<?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.server</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> ::
+ Module&nbsp;server
+ </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.server-module.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module server</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.server-pysrc.html">source&nbsp;code</a></span></p>
+<p><a href="paramiko.ServerInterface-class.html"
+ class="link">ServerInterface</a> is an interface to override for server
+ support.</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="AUTH_FAILED"></a><span class="summary-name">AUTH_FAILED</span> = <code title="2">2</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_PARTIALLY_SUCCESSFUL"></a><span class="summary-name">AUTH_PARTIALLY_SUCCESSFUL</span> = <code title="1">1</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_SUCCESSFUL"></a><span class="summary-name">AUTH_SUCCESSFUL</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 href="paramiko.server-module.html#CONNECTION_FAILED_CODE" class="summary-name">CONNECTION_FAILED_CODE</a> = <code title="{1: 'Administratively prohibited',
+ 2: 'Connect failed',
+ 3: 'Unknown channel type',
+ 4: 'Resource shortage'}"><code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Administratively prohibited</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-op">:</code><code class="variable-ellipsis">...</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="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="DEBUG"></a><span class="summary-name">DEBUG</span> = <code title="10">10</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="DISCONNECT_AUTH_CANCELLED_BY_USER"></a><span class="summary-name">DISCONNECT_AUTH_CANCELLED_BY_USER</span> = <code title="13">13</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="DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE"></a><span class="summary-name">DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE</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="DISCONNECT_SERVICE_NOT_AVAILABLE"></a><span class="summary-name">DISCONNECT_SERVICE_NOT_AVAILABLE</span> = <code title="7">7</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="ERROR"></a><span class="summary-name">ERROR</span> = <code title="40">40</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="INFO"></a><span class="summary-name">INFO</span> = <code title="20">20</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="MSG_CHANNEL_CLOSE"></a><span class="summary-name">MSG_CHANNEL_CLOSE</span> = <code title="97">97</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="MSG_CHANNEL_DATA"></a><span class="summary-name">MSG_CHANNEL_DATA</span> = <code title="94">94</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="MSG_CHANNEL_EOF"></a><span class="summary-name">MSG_CHANNEL_EOF</span> = <code title="96">96</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="MSG_CHANNEL_EXTENDED_DATA"></a><span class="summary-name">MSG_CHANNEL_EXTENDED_DATA</span> = <code title="95">95</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="MSG_CHANNEL_FAILURE"></a><span class="summary-name">MSG_CHANNEL_FAILURE</span> = <code title="100">100</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="MSG_CHANNEL_OPEN"></a><span class="summary-name">MSG_CHANNEL_OPEN</span> = <code title="90">90</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="MSG_CHANNEL_OPEN_FAILURE"></a><span class="summary-name">MSG_CHANNEL_OPEN_FAILURE</span> = <code title="92">92</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="MSG_CHANNEL_OPEN_SUCCESS"></a><span class="summary-name">MSG_CHANNEL_OPEN_SUCCESS</span> = <code title="91">91</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="MSG_CHANNEL_REQUEST"></a><span class="summary-name">MSG_CHANNEL_REQUEST</span> = <code title="98">98</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="MSG_CHANNEL_SUCCESS"></a><span class="summary-name">MSG_CHANNEL_SUCCESS</span> = <code title="99">99</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="MSG_CHANNEL_WINDOW_ADJUST"></a><span class="summary-name">MSG_CHANNEL_WINDOW_ADJUST</span> = <code title="93">93</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="MSG_DEBUG"></a><span class="summary-name">MSG_DEBUG</span> = <code title="4">4</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="MSG_DISCONNECT"></a><span class="summary-name">MSG_DISCONNECT</span> = <code title="1">1</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="MSG_GLOBAL_REQUEST"></a><span class="summary-name">MSG_GLOBAL_REQUEST</span> = <code title="80">80</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="MSG_IGNORE"></a><span class="summary-name">MSG_IGNORE</span> = <code title="2">2</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="MSG_KEXINIT"></a><span class="summary-name">MSG_KEXINIT</span> = <code title="20">20</code>
+ </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.server-module.html#MSG_NAMES" class="summary-name">MSG_NAMES</a> = <code title="{1: 'disconnect',
+ 2: 'ignore',
+ 3: 'unimplemented',
+ 4: 'debug',
+ 5: 'service-request',
+ 6: 'service-accept',
+ 20: 'kexinit',
+ 21: 'newkeys',
+..."><code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">disconnect</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">ignore</code><code class="variable-quote">'</code><code class="variable-op">, </code>3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">unimplemented</code><code class="variable-quote">'</code><code class="variable-op">,</code><code class="variable-ellipsis">...</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="MSG_NEWKEYS"></a><span class="summary-name">MSG_NEWKEYS</span> = <code title="21">21</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="MSG_REQUEST_FAILURE"></a><span class="summary-name">MSG_REQUEST_FAILURE</span> = <code title="82">82</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="MSG_REQUEST_SUCCESS"></a><span class="summary-name">MSG_REQUEST_SUCCESS</span> = <code title="81">81</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="MSG_SERVICE_ACCEPT"></a><span class="summary-name">MSG_SERVICE_ACCEPT</span> = <code title="6">6</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="MSG_SERVICE_REQUEST"></a><span class="summary-name">MSG_SERVICE_REQUEST</span> = <code title="5">5</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="MSG_UNIMPLEMENTED"></a><span class="summary-name">MSG_UNIMPLEMENTED</span> = <code title="3">3</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="MSG_USERAUTH_BANNER"></a><span class="summary-name">MSG_USERAUTH_BANNER</span> = <code title="53">53</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="MSG_USERAUTH_FAILURE"></a><span class="summary-name">MSG_USERAUTH_FAILURE</span> = <code title="51">51</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="MSG_USERAUTH_INFO_REQUEST"></a><span class="summary-name">MSG_USERAUTH_INFO_REQUEST</span> = <code title="60">60</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="MSG_USERAUTH_INFO_RESPONSE"></a><span class="summary-name">MSG_USERAUTH_INFO_RESPONSE</span> = <code title="61">61</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="MSG_USERAUTH_PK_OK"></a><span class="summary-name">MSG_USERAUTH_PK_OK</span> = <code title="60">60</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="MSG_USERAUTH_REQUEST"></a><span class="summary-name">MSG_USERAUTH_REQUEST</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="MSG_USERAUTH_SUCCESS"></a><span class="summary-name">MSG_USERAUTH_SUCCESS</span> = <code title="52">52</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="OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED"></a><span class="summary-name">OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED</span> = <code title="1">1</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="OPEN_FAILED_CONNECT_FAILED"></a><span class="summary-name">OPEN_FAILED_CONNECT_FAILED</span> = <code title="2">2</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="OPEN_FAILED_RESOURCE_SHORTAGE"></a><span class="summary-name">OPEN_FAILED_RESOURCE_SHORTAGE</span> = <code title="4">4</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="OPEN_FAILED_UNKNOWN_CHANNEL_TYPE"></a><span class="summary-name">OPEN_FAILED_UNKNOWN_CHANNEL_TYPE</span> = <code title="3">3</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="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="PY22"></a><span class="summary-name">PY22</span> = <code title="False">False</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="WARNING"></a><span class="summary-name">WARNING</span> = <code title="30">30</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>
+</table>
+<!-- ==================== VARIABLES DETAILS ==================== -->
+<a name="section-VariablesDetails"></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">Variables Details</span></td>
+</tr>
+</table>
+<a name="CONNECTION_FAILED_CODE"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">CONNECTION_FAILED_CODE</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Administratively prohibited</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Connect failed</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Unknown channel type</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Resource shortage</code><code class="variable-quote">'</code><code class="variable-group">}</code>
+</pre></td></tr></table>
+</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="MSG_NAMES"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">MSG_NAMES</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">disconnect</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">ignore</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">unimplemented</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">debug</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 5<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">service-request</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 6<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">service-accept</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 20<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">kexinit</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 21<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">newkeys</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+ </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 Jul 6 18:30:27 2008
+ </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.server-pysrc.html b/docs/paramiko.server-pysrc.html
new file mode 100644
index 0000000..56ce4b9
--- /dev/null
+++ b/docs/paramiko.server-pysrc.html
@@ -0,0 +1,1006 @@
+<?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.server</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> ::
+ Module&nbsp;server
+ </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.server-pysrc.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</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="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>
+<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">import</tt> <tt class="py-name">threading</tt> </tt>
+<a name="L24"></a><tt class="py-lineno"> 24</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="L25"></a><tt class="py-lineno"> 25</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>
+<a name="L26"></a><tt class="py-lineno"> 26</tt> <tt class="py-line"> </tt>
+<a name="L27"></a><tt class="py-lineno"> 27</tt> <tt class="py-line"> </tt>
+<a name="InteractiveQuery"></a><div id="InteractiveQuery-def"><a name="L28"></a><tt class="py-lineno"> 28</tt> <a class="py-toggle" href="#" id="InteractiveQuery-toggle" onclick="return toggle('InteractiveQuery');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.server.InteractiveQuery-class.html">InteractiveQuery</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="InteractiveQuery-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="InteractiveQuery-expanded"><a name="L29"></a><tt class="py-lineno"> 29</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L30"></a><tt class="py-lineno"> 30</tt> <tt class="py-line"><tt class="py-docstring"> A query (set of prompts) for a user during interactive authentication.</tt> </tt>
+<a name="L31"></a><tt class="py-lineno"> 31</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L32"></a><tt class="py-lineno"> 32</tt> <tt class="py-line"> </tt>
+<a name="InteractiveQuery.__init__"></a><div id="InteractiveQuery.__init__-def"><a name="L33"></a><tt class="py-lineno"> 33</tt> <a class="py-toggle" href="#" id="InteractiveQuery.__init__-toggle" onclick="return toggle('InteractiveQuery.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.server.InteractiveQuery-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">name</tt><tt class="py-op">=</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-param">instructions</tt><tt class="py-op">=</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-param">prompts</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="InteractiveQuery.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="InteractiveQuery.__init__-expanded"><a name="L34"></a><tt class="py-lineno"> 34</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L35"></a><tt class="py-lineno"> 35</tt> <tt class="py-line"><tt class="py-docstring"> Create a new interactive query to send to the client. The name and</tt> </tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line"><tt class="py-docstring"> instructions are optional, but are generally displayed to the end</tt> </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt> <tt class="py-line"><tt class="py-docstring"> user. A list of prompts may be included, or they may be added via</tt> </tt>
+<a name="L38"></a><tt class="py-lineno"> 38</tt> <tt class="py-line"><tt class="py-docstring"> the L{add_prompt} method.</tt> </tt>
+<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 class="py-docstring"> @param name: name of this query</tt> </tt>
+<a name="L41"></a><tt class="py-lineno"> 41</tt> <tt class="py-line"><tt class="py-docstring"> @type name: str</tt> </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt> <tt class="py-line"><tt class="py-docstring"> @param instructions: user instructions (usually short) about this query</tt> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt> <tt class="py-line"><tt class="py-docstring"> @type instructions: str</tt> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"><tt class="py-docstring"> @param prompts: one or more authentication prompts</tt> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt> <tt class="py-line"><tt class="py-docstring"> @type prompts: str</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-name">self</tt><tt class="py-op">.</tt><tt id="link-4" 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-4', 'name', 'link-4');">name</a></tt> <tt class="py-op">=</tt> <tt id="link-5" class="py-name"><a title="paramiko.kex_gex.KexGex.name
+paramiko.kex_group1.KexGroup1.name" class="py-name" href="#" onclick="return doclink('link-5', 'name', 'link-4');">name</a></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">instructions</tt> <tt class="py-op">=</tt> <tt class="py-name">instructions</tt> </tt>
+<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">prompts</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-keyword">for</tt> <tt class="py-name">x</tt> <tt class="py-keyword">in</tt> <tt class="py-name">prompts</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-op">(</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">str</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</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">unicode</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">self</tt><tt class="py-op">.</tt><tt class="py-name">add_prompt</tt><tt class="py-op">(</tt><tt class="py-name">x</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">else</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 class="py-name">add_prompt</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 class="py-name">x</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L55"></a><tt class="py-lineno"> 55</tt> <tt class="py-line"> </tt>
+<a name="InteractiveQuery.add_prompt"></a><div id="InteractiveQuery.add_prompt-def"><a name="L56"></a><tt class="py-lineno"> 56</tt> <a class="py-toggle" href="#" id="InteractiveQuery.add_prompt-toggle" onclick="return toggle('InteractiveQuery.add_prompt');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.server.InteractiveQuery-class.html#add_prompt">add_prompt</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">prompt</tt><tt class="py-op">,</tt> <tt class="py-param">echo</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="InteractiveQuery.add_prompt-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="InteractiveQuery.add_prompt-expanded"><a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"><tt class="py-docstring"> Add a prompt to this query. The prompt should be a (reasonably short)</tt> </tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"><tt class="py-docstring"> string. Multiple prompts can be added to the same query.</tt> </tt>
+<a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"><tt class="py-docstring"> @param prompt: the user prompt</tt> </tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"><tt class="py-docstring"> @type prompt: str</tt> </tt>
+<a name="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"><tt class="py-docstring"> @param echo: C{True} (default) if the user's response should be echoed;</tt> </tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line"><tt class="py-docstring"> C{False} if not (for a password or similar)</tt> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"><tt class="py-docstring"> @type echo: bool</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 class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">prompts</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">prompt</tt><tt class="py-op">,</tt> <tt class="py-name">echo</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div></div><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="ServerInterface"></a><div id="ServerInterface-def"><a name="L70"></a><tt class="py-lineno"> 70</tt> <a class="py-toggle" href="#" id="ServerInterface-toggle" onclick="return toggle('ServerInterface');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.server.ServerInterface-class.html">ServerInterface</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="ServerInterface-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="ServerInterface-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"> This class defines an interface for controlling the behavior of paramiko</tt> </tt>
+<a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"><tt class="py-docstring"> in server mode.</tt> </tt>
+<a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"><tt class="py-docstring"> Methods on this class are called from paramiko's primary thread, so you</tt> </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"><tt class="py-docstring"> shouldn't do too much work in them. (Certainly nothing that blocks or</tt> </tt>
+<a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"><tt class="py-docstring"> sleeps.)</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="ServerInterface.check_channel_request"></a><div id="ServerInterface.check_channel_request-def"><a name="L80"></a><tt class="py-lineno"> 80</tt> <a class="py-toggle" href="#" id="ServerInterface.check_channel_request-toggle" onclick="return toggle('ServerInterface.check_channel_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_request">check_channel_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">chanid</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ServerInterface.check_channel_request-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="ServerInterface.check_channel_request-expanded"><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-docstring"> Determine if a channel request of a given type will be granted, and</tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"><tt class="py-docstring"> return C{OPEN_SUCCEEDED} or an error code. This method is</tt> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"><tt class="py-docstring"> called in server mode when the client requests a channel, after</tt> </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"><tt class="py-docstring"> authentication is complete.</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"> If you allow channel requests (and an ssh server that didn't would be</tt> </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</tt> <tt class="py-line"><tt class="py-docstring"> useless), you should also override some of the channel request methods</tt> </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"><tt class="py-docstring"> below, which are used to determine which services will be allowed on</tt> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"><tt class="py-docstring"> a given channel:</tt> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"><tt class="py-docstring"> - L{check_channel_pty_request}</tt> </tt>
+<a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line"><tt class="py-docstring"> - L{check_channel_shell_request}</tt> </tt>
+<a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"><tt class="py-docstring"> - L{check_channel_subsystem_request}</tt> </tt>
+<a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"><tt class="py-docstring"> - L{check_channel_window_change_request}</tt> </tt>
+<a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"><tt class="py-docstring"> - L{check_channel_x11_request}</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"> The C{chanid} parameter is a small number that uniquely identifies the</tt> </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"><tt class="py-docstring"> channel within a L{Transport}. A L{Channel} object is not created</tt> </tt>
+<a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"><tt class="py-docstring"> unless this method returns C{OPEN_SUCCEEDED} -- once a</tt> </tt>
+<a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"><tt class="py-docstring"> L{Channel} object is created, you can call L{Channel.get_id} to</tt> </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"><tt class="py-docstring"> retrieve the channel ID.</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-docstring"> The return value should either be C{OPEN_SUCCEEDED} (or</tt> </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"><tt class="py-docstring"> C{0}) to allow the channel request, or one of the following error</tt> </tt>
+<a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"><tt class="py-docstring"> codes to reject it:</tt> </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"><tt class="py-docstring"> - C{OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED}</tt> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"><tt class="py-docstring"> - C{OPEN_FAILED_CONNECT_FAILED}</tt> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line"><tt class="py-docstring"> - C{OPEN_FAILED_UNKNOWN_CHANNEL_TYPE}</tt> </tt>
+<a name="L109"></a><tt class="py-lineno">109</tt> <tt class="py-line"><tt class="py-docstring"> - C{OPEN_FAILED_RESOURCE_SHORTAGE}</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"> The default implementation always returns</tt> </tt>
+<a name="L112"></a><tt class="py-lineno">112</tt> <tt class="py-line"><tt class="py-docstring"> C{OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED}.</tt> </tt>
+<a name="L113"></a><tt class="py-lineno">113</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L114"></a><tt class="py-lineno">114</tt> <tt class="py-line"><tt class="py-docstring"> @param kind: the kind of channel the client would like to open</tt> </tt>
+<a name="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"><tt class="py-docstring"> (usually C{"session"}).</tt> </tt>
+<a name="L116"></a><tt class="py-lineno">116</tt> <tt class="py-line"><tt class="py-docstring"> @type kind: str</tt> </tt>
+<a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"><tt class="py-docstring"> @param chanid: ID of the channel</tt> </tt>
+<a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"><tt class="py-docstring"> @type chanid: int</tt> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"><tt class="py-docstring"> @return: a success or failure code (listed above)</tt> </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: int</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-keyword">return</tt> <tt id="link-6" 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
+paramiko.dsskey.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.hostkeys.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.kex_gex.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.kex_group1.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.packet.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.pkey.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.rsakey.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.server.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.sftp.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.sftp_attr.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.sftp_client.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.sftp_file.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+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-6', 'OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED', 'link-6');">OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED</a></tt> </tt>
+</div><a name="L123"></a><tt class="py-lineno">123</tt> <tt class="py-line"> </tt>
+<a name="ServerInterface.get_allowed_auths"></a><div id="ServerInterface.get_allowed_auths-def"><a name="L124"></a><tt class="py-lineno">124</tt> <a class="py-toggle" href="#" id="ServerInterface.get_allowed_auths-toggle" onclick="return toggle('ServerInterface.get_allowed_auths');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.server.ServerInterface-class.html#get_allowed_auths">get_allowed_auths</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="ServerInterface.get_allowed_auths-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="ServerInterface.get_allowed_auths-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"> Return a list of authentication methods supported by the server.</tt> </tt>
+<a name="L127"></a><tt class="py-lineno">127</tt> <tt class="py-line"><tt class="py-docstring"> This list is sent to clients attempting to authenticate, to inform them</tt> </tt>
+<a name="L128"></a><tt class="py-lineno">128</tt> <tt class="py-line"><tt class="py-docstring"> of authentication methods that might be successful.</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"> The "list" is actually a string of comma-separated names of types of</tt> </tt>
+<a name="L131"></a><tt class="py-lineno">131</tt> <tt class="py-line"><tt class="py-docstring"> authentication. Possible values are C{"password"}, C{"publickey"},</tt> </tt>
+<a name="L132"></a><tt class="py-lineno">132</tt> <tt class="py-line"><tt class="py-docstring"> and C{"none"}.</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"> The default implementation always returns C{"password"}.</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"> @param username: the username requesting authentication.</tt> </tt>
+<a name="L137"></a><tt class="py-lineno">137</tt> <tt class="py-line"><tt class="py-docstring"> @type username: str</tt> </tt>
+<a name="L138"></a><tt class="py-lineno">138</tt> <tt class="py-line"><tt class="py-docstring"> @return: a comma-separated list of authentication types</tt> </tt>
+<a name="L139"></a><tt class="py-lineno">139</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: str</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-keyword">return</tt> <tt class="py-string">'password'</tt> </tt>
+</div><a name="L142"></a><tt class="py-lineno">142</tt> <tt class="py-line"> </tt>
+<a name="ServerInterface.check_auth_none"></a><div id="ServerInterface.check_auth_none-def"><a name="L143"></a><tt class="py-lineno">143</tt> <a class="py-toggle" href="#" id="ServerInterface.check_auth_none-toggle" onclick="return toggle('ServerInterface.check_auth_none');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.server.ServerInterface-class.html#check_auth_none">check_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="ServerInterface.check_auth_none-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="ServerInterface.check_auth_none-expanded"><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"> Determine if a client may open channels with no (further)</tt> </tt>
+<a name="L146"></a><tt class="py-lineno">146</tt> <tt class="py-line"><tt class="py-docstring"> authentication.</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"> Return L{AUTH_FAILED} if the client must authenticate, or</tt> </tt>
+<a name="L149"></a><tt class="py-lineno">149</tt> <tt class="py-line"><tt class="py-docstring"> L{AUTH_SUCCESSFUL} if it's okay for the client to not</tt> </tt>
+<a name="L150"></a><tt class="py-lineno">150</tt> <tt class="py-line"><tt class="py-docstring"> authenticate.</tt> </tt>
+<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"> The default implementation always returns L{AUTH_FAILED}.</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"> @param username: the username of the client.</tt> </tt>
+<a name="L155"></a><tt class="py-lineno">155</tt> <tt class="py-line"><tt class="py-docstring"> @type username: str</tt> </tt>
+<a name="L156"></a><tt class="py-lineno">156</tt> <tt class="py-line"><tt class="py-docstring"> @return: L{AUTH_FAILED} if the authentication fails;</tt> </tt>
+<a name="L157"></a><tt class="py-lineno">157</tt> <tt class="py-line"><tt class="py-docstring"> L{AUTH_SUCCESSFUL} if it succeeds.</tt> </tt>
+<a name="L158"></a><tt class="py-lineno">158</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: int</tt> </tt>
+<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">return</tt> <tt id="link-7" class="py-name" targets="Variable paramiko.auth_handler.AUTH_FAILED=paramiko.auth_handler-module.html#AUTH_FAILED,Variable paramiko.channel.AUTH_FAILED=paramiko.channel-module.html#AUTH_FAILED,Variable paramiko.client.AUTH_FAILED=paramiko.client-module.html#AUTH_FAILED,Variable paramiko.common.AUTH_FAILED=paramiko.common-module.html#AUTH_FAILED,Variable paramiko.dsskey.AUTH_FAILED=paramiko.dsskey-module.html#AUTH_FAILED,Variable paramiko.hostkeys.AUTH_FAILED=paramiko.hostkeys-module.html#AUTH_FAILED,Variable paramiko.kex_gex.AUTH_FAILED=paramiko.kex_gex-module.html#AUTH_FAILED,Variable paramiko.kex_group1.AUTH_FAILED=paramiko.kex_group1-module.html#AUTH_FAILED,Variable paramiko.packet.AUTH_FAILED=paramiko.packet-module.html#AUTH_FAILED,Variable paramiko.pkey.AUTH_FAILED=paramiko.pkey-module.html#AUTH_FAILED,Variable paramiko.rsakey.AUTH_FAILED=paramiko.rsakey-module.html#AUTH_FAILED,Variable paramiko.server.AUTH_FAILED=paramiko.server-module.html#AUTH_FAILED,Variable paramiko.sftp.AUTH_FAILED=paramiko.sftp-module.html#AUTH_FAILED,Variable paramiko.sftp_attr.AUTH_FAILED=paramiko.sftp_attr-module.html#AUTH_FAILED,Variable paramiko.sftp_client.AUTH_FAILED=paramiko.sftp_client-module.html#AUTH_FAILED,Variable paramiko.sftp_file.AUTH_FAILED=paramiko.sftp_file-module.html#AUTH_FAILED,Variable paramiko.sftp_handle.AUTH_FAILED=paramiko.sftp_handle-module.html#AUTH_FAILED,Variable paramiko.sftp_server.AUTH_FAILED=paramiko.sftp_server-module.html#AUTH_FAILED,Variable paramiko.sftp_si.AUTH_FAILED=paramiko.sftp_si-module.html#AUTH_FAILED,Variable paramiko.transport.AUTH_FAILED=paramiko.transport-module.html#AUTH_FAILED,Variable paramiko.util.AUTH_FAILED=paramiko.util-module.html#AUTH_FAILED"><a title="paramiko.auth_handler.AUTH_FAILED
+paramiko.channel.AUTH_FAILED
+paramiko.client.AUTH_FAILED
+paramiko.common.AUTH_FAILED
+paramiko.dsskey.AUTH_FAILED
+paramiko.hostkeys.AUTH_FAILED
+paramiko.kex_gex.AUTH_FAILED
+paramiko.kex_group1.AUTH_FAILED
+paramiko.packet.AUTH_FAILED
+paramiko.pkey.AUTH_FAILED
+paramiko.rsakey.AUTH_FAILED
+paramiko.server.AUTH_FAILED
+paramiko.sftp.AUTH_FAILED
+paramiko.sftp_attr.AUTH_FAILED
+paramiko.sftp_client.AUTH_FAILED
+paramiko.sftp_file.AUTH_FAILED
+paramiko.sftp_handle.AUTH_FAILED
+paramiko.sftp_server.AUTH_FAILED
+paramiko.sftp_si.AUTH_FAILED
+paramiko.transport.AUTH_FAILED
+paramiko.util.AUTH_FAILED" class="py-name" href="#" onclick="return doclink('link-7', 'AUTH_FAILED', 'link-7');">AUTH_FAILED</a></tt> </tt>
+</div><a name="L161"></a><tt class="py-lineno">161</tt> <tt class="py-line"> </tt>
+<a name="ServerInterface.check_auth_password"></a><div id="ServerInterface.check_auth_password-def"><a name="L162"></a><tt class="py-lineno">162</tt> <a class="py-toggle" href="#" id="ServerInterface.check_auth_password-toggle" onclick="return toggle('ServerInterface.check_auth_password');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.server.ServerInterface-class.html#check_auth_password">check_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-op">:</tt> </tt>
+</div><div id="ServerInterface.check_auth_password-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="ServerInterface.check_auth_password-expanded"><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"> Determine if a given username and password supplied by the client is</tt> </tt>
+<a name="L165"></a><tt class="py-lineno">165</tt> <tt class="py-line"><tt class="py-docstring"> acceptable for use in authentication.</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"> Return L{AUTH_FAILED} if the password is not accepted,</tt> </tt>
+<a name="L168"></a><tt class="py-lineno">168</tt> <tt class="py-line"><tt class="py-docstring"> L{AUTH_SUCCESSFUL} if the password is accepted and completes</tt> </tt>
+<a name="L169"></a><tt class="py-lineno">169</tt> <tt class="py-line"><tt class="py-docstring"> the authentication, or L{AUTH_PARTIALLY_SUCCESSFUL} if your</tt> </tt>
+<a name="L170"></a><tt class="py-lineno">170</tt> <tt class="py-line"><tt class="py-docstring"> authentication is stateful, and this key is accepted for</tt> </tt>
+<a name="L171"></a><tt class="py-lineno">171</tt> <tt class="py-line"><tt class="py-docstring"> authentication, but more authentication is required. (In this latter</tt> </tt>
+<a name="L172"></a><tt class="py-lineno">172</tt> <tt class="py-line"><tt class="py-docstring"> case, L{get_allowed_auths} will be called to report to the client what</tt> </tt>
+<a name="L173"></a><tt class="py-lineno">173</tt> <tt class="py-line"><tt class="py-docstring"> options it has for continuing the authentication.)</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-docstring"> The default implementation always returns L{AUTH_FAILED}.</tt> </tt>
+<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"> @param username: the username of the authenticating client.</tt> </tt>
+<a name="L178"></a><tt class="py-lineno">178</tt> <tt class="py-line"><tt class="py-docstring"> @type username: str</tt> </tt>
+<a name="L179"></a><tt class="py-lineno">179</tt> <tt class="py-line"><tt class="py-docstring"> @param password: the password given by the client.</tt> </tt>
+<a name="L180"></a><tt class="py-lineno">180</tt> <tt class="py-line"><tt class="py-docstring"> @type password: str</tt> </tt>
+<a name="L181"></a><tt class="py-lineno">181</tt> <tt class="py-line"><tt class="py-docstring"> @return: L{AUTH_FAILED} if the authentication fails;</tt> </tt>
+<a name="L182"></a><tt class="py-lineno">182</tt> <tt class="py-line"><tt class="py-docstring"> L{AUTH_SUCCESSFUL} if it succeeds;</tt> </tt>
+<a name="L183"></a><tt class="py-lineno">183</tt> <tt class="py-line"><tt class="py-docstring"> L{AUTH_PARTIALLY_SUCCESSFUL} if the password auth is</tt> </tt>
+<a name="L184"></a><tt class="py-lineno">184</tt> <tt class="py-line"><tt class="py-docstring"> successful, but authentication must continue.</tt> </tt>
+<a name="L185"></a><tt class="py-lineno">185</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: int</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-keyword">return</tt> <tt id="link-8" class="py-name"><a title="paramiko.auth_handler.AUTH_FAILED
+paramiko.channel.AUTH_FAILED
+paramiko.client.AUTH_FAILED
+paramiko.common.AUTH_FAILED
+paramiko.dsskey.AUTH_FAILED
+paramiko.hostkeys.AUTH_FAILED
+paramiko.kex_gex.AUTH_FAILED
+paramiko.kex_group1.AUTH_FAILED
+paramiko.packet.AUTH_FAILED
+paramiko.pkey.AUTH_FAILED
+paramiko.rsakey.AUTH_FAILED
+paramiko.server.AUTH_FAILED
+paramiko.sftp.AUTH_FAILED
+paramiko.sftp_attr.AUTH_FAILED
+paramiko.sftp_client.AUTH_FAILED
+paramiko.sftp_file.AUTH_FAILED
+paramiko.sftp_handle.AUTH_FAILED
+paramiko.sftp_server.AUTH_FAILED
+paramiko.sftp_si.AUTH_FAILED
+paramiko.transport.AUTH_FAILED
+paramiko.util.AUTH_FAILED" class="py-name" href="#" onclick="return doclink('link-8', 'AUTH_FAILED', 'link-7');">AUTH_FAILED</a></tt> </tt>
+</div><a name="L188"></a><tt class="py-lineno">188</tt> <tt class="py-line"> </tt>
+<a name="ServerInterface.check_auth_publickey"></a><div id="ServerInterface.check_auth_publickey-def"><a name="L189"></a><tt class="py-lineno">189</tt> <a class="py-toggle" href="#" id="ServerInterface.check_auth_publickey-toggle" onclick="return toggle('ServerInterface.check_auth_publickey');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.server.ServerInterface-class.html#check_auth_publickey">check_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-op">:</tt> </tt>
+</div><div id="ServerInterface.check_auth_publickey-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="ServerInterface.check_auth_publickey-expanded"><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"> Determine if a given key supplied by the client is acceptable for use</tt> </tt>
+<a name="L192"></a><tt class="py-lineno">192</tt> <tt class="py-line"><tt class="py-docstring"> in authentication. You should override this method in server mode to</tt> </tt>
+<a name="L193"></a><tt class="py-lineno">193</tt> <tt class="py-line"><tt class="py-docstring"> check the username and key and decide if you would accept a signature</tt> </tt>
+<a name="L194"></a><tt class="py-lineno">194</tt> <tt class="py-line"><tt class="py-docstring"> made using this key.</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"> Return L{AUTH_FAILED} if the key is not accepted,</tt> </tt>
+<a name="L197"></a><tt class="py-lineno">197</tt> <tt class="py-line"><tt class="py-docstring"> L{AUTH_SUCCESSFUL} if the key is accepted and completes the</tt> </tt>
+<a name="L198"></a><tt class="py-lineno">198</tt> <tt class="py-line"><tt class="py-docstring"> authentication, or L{AUTH_PARTIALLY_SUCCESSFUL} if your</tt> </tt>
+<a name="L199"></a><tt class="py-lineno">199</tt> <tt class="py-line"><tt class="py-docstring"> authentication is stateful, and this password is accepted for</tt> </tt>
+<a name="L200"></a><tt class="py-lineno">200</tt> <tt class="py-line"><tt class="py-docstring"> authentication, but more authentication is required. (In this latter</tt> </tt>
+<a name="L201"></a><tt class="py-lineno">201</tt> <tt class="py-line"><tt class="py-docstring"> case, L{get_allowed_auths} will be called to report to the client what</tt> </tt>
+<a name="L202"></a><tt class="py-lineno">202</tt> <tt class="py-line"><tt class="py-docstring"> options it has for continuing the authentication.)</tt> </tt>
+<a name="L203"></a><tt class="py-lineno">203</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L204"></a><tt class="py-lineno">204</tt> <tt class="py-line"><tt class="py-docstring"> Note that you don't have to actually verify any key signtature here.</tt> </tt>
+<a name="L205"></a><tt class="py-lineno">205</tt> <tt class="py-line"><tt class="py-docstring"> If you're willing to accept the key, paramiko will do the work of</tt> </tt>
+<a name="L206"></a><tt class="py-lineno">206</tt> <tt class="py-line"><tt class="py-docstring"> verifying the client's signature.</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"> The default implementation always returns L{AUTH_FAILED}.</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 username: the username of the authenticating client</tt> </tt>
+<a name="L211"></a><tt class="py-lineno">211</tt> <tt class="py-line"><tt class="py-docstring"> @type username: str</tt> </tt>
+<a name="L212"></a><tt class="py-lineno">212</tt> <tt class="py-line"><tt class="py-docstring"> @param key: the key object provided by the client</tt> </tt>
+<a name="L213"></a><tt class="py-lineno">213</tt> <tt class="py-line"><tt class="py-docstring"> @type key: L{PKey &lt;pkey.PKey&gt;}</tt> </tt>
+<a name="L214"></a><tt class="py-lineno">214</tt> <tt class="py-line"><tt class="py-docstring"> @return: L{AUTH_FAILED} if the client can't authenticate</tt> </tt>
+<a name="L215"></a><tt class="py-lineno">215</tt> <tt class="py-line"><tt class="py-docstring"> with this key; L{AUTH_SUCCESSFUL} if it can;</tt> </tt>
+<a name="L216"></a><tt class="py-lineno">216</tt> <tt class="py-line"><tt class="py-docstring"> L{AUTH_PARTIALLY_SUCCESSFUL} if it can authenticate with</tt> </tt>
+<a name="L217"></a><tt class="py-lineno">217</tt> <tt class="py-line"><tt class="py-docstring"> this key but must continue with authentication</tt> </tt>
+<a name="L218"></a><tt class="py-lineno">218</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: int</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-keyword">return</tt> <tt id="link-9" class="py-name"><a title="paramiko.auth_handler.AUTH_FAILED
+paramiko.channel.AUTH_FAILED
+paramiko.client.AUTH_FAILED
+paramiko.common.AUTH_FAILED
+paramiko.dsskey.AUTH_FAILED
+paramiko.hostkeys.AUTH_FAILED
+paramiko.kex_gex.AUTH_FAILED
+paramiko.kex_group1.AUTH_FAILED
+paramiko.packet.AUTH_FAILED
+paramiko.pkey.AUTH_FAILED
+paramiko.rsakey.AUTH_FAILED
+paramiko.server.AUTH_FAILED
+paramiko.sftp.AUTH_FAILED
+paramiko.sftp_attr.AUTH_FAILED
+paramiko.sftp_client.AUTH_FAILED
+paramiko.sftp_file.AUTH_FAILED
+paramiko.sftp_handle.AUTH_FAILED
+paramiko.sftp_server.AUTH_FAILED
+paramiko.sftp_si.AUTH_FAILED
+paramiko.transport.AUTH_FAILED
+paramiko.util.AUTH_FAILED" class="py-name" href="#" onclick="return doclink('link-9', 'AUTH_FAILED', 'link-7');">AUTH_FAILED</a></tt> </tt>
+</div><a name="L221"></a><tt class="py-lineno">221</tt> <tt class="py-line"> </tt>
+<a name="ServerInterface.check_auth_interactive"></a><div id="ServerInterface.check_auth_interactive-def"><a name="L222"></a><tt class="py-lineno">222</tt> <a class="py-toggle" href="#" id="ServerInterface.check_auth_interactive-toggle" onclick="return toggle('ServerInterface.check_auth_interactive');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.server.ServerInterface-class.html#check_auth_interactive">check_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">submethods</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ServerInterface.check_auth_interactive-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="ServerInterface.check_auth_interactive-expanded"><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"> Begin an interactive authentication challenge, if supported. You</tt> </tt>
+<a name="L225"></a><tt class="py-lineno">225</tt> <tt class="py-line"><tt class="py-docstring"> should override this method in server mode if you want to support the</tt> </tt>
+<a name="L226"></a><tt class="py-lineno">226</tt> <tt class="py-line"><tt class="py-docstring"> C{"keyboard-interactive"} auth type, which requires you to send a</tt> </tt>
+<a name="L227"></a><tt class="py-lineno">227</tt> <tt class="py-line"><tt class="py-docstring"> series of questions for the client to answer.</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"> Return L{AUTH_FAILED} if this auth method isn't supported. Otherwise,</tt> </tt>
+<a name="L230"></a><tt class="py-lineno">230</tt> <tt class="py-line"><tt class="py-docstring"> you should return an L{InteractiveQuery} object containing the prompts</tt> </tt>
+<a name="L231"></a><tt class="py-lineno">231</tt> <tt class="py-line"><tt class="py-docstring"> and instructions for the user. The response will be sent via a call</tt> </tt>
+<a name="L232"></a><tt class="py-lineno">232</tt> <tt class="py-line"><tt class="py-docstring"> to L{check_auth_interactive_response}.</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"> The default implementation always returns L{AUTH_FAILED}.</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"> @param username: the username of the authenticating client</tt> </tt>
+<a name="L237"></a><tt class="py-lineno">237</tt> <tt class="py-line"><tt class="py-docstring"> @type username: str</tt> </tt>
+<a name="L238"></a><tt class="py-lineno">238</tt> <tt class="py-line"><tt class="py-docstring"> @param submethods: a comma-separated list of methods preferred by the</tt> </tt>
+<a name="L239"></a><tt class="py-lineno">239</tt> <tt class="py-line"><tt class="py-docstring"> client (usually empty)</tt> </tt>
+<a name="L240"></a><tt class="py-lineno">240</tt> <tt class="py-line"><tt class="py-docstring"> @type submethods: str</tt> </tt>
+<a name="L241"></a><tt class="py-lineno">241</tt> <tt class="py-line"><tt class="py-docstring"> @return: L{AUTH_FAILED} if this auth method isn't supported; otherwise</tt> </tt>
+<a name="L242"></a><tt class="py-lineno">242</tt> <tt class="py-line"><tt class="py-docstring"> an object containing queries for the user</tt> </tt>
+<a name="L243"></a><tt class="py-lineno">243</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: int or L{InteractiveQuery}</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-keyword">return</tt> <tt id="link-10" class="py-name"><a title="paramiko.auth_handler.AUTH_FAILED
+paramiko.channel.AUTH_FAILED
+paramiko.client.AUTH_FAILED
+paramiko.common.AUTH_FAILED
+paramiko.dsskey.AUTH_FAILED
+paramiko.hostkeys.AUTH_FAILED
+paramiko.kex_gex.AUTH_FAILED
+paramiko.kex_group1.AUTH_FAILED
+paramiko.packet.AUTH_FAILED
+paramiko.pkey.AUTH_FAILED
+paramiko.rsakey.AUTH_FAILED
+paramiko.server.AUTH_FAILED
+paramiko.sftp.AUTH_FAILED
+paramiko.sftp_attr.AUTH_FAILED
+paramiko.sftp_client.AUTH_FAILED
+paramiko.sftp_file.AUTH_FAILED
+paramiko.sftp_handle.AUTH_FAILED
+paramiko.sftp_server.AUTH_FAILED
+paramiko.sftp_si.AUTH_FAILED
+paramiko.transport.AUTH_FAILED
+paramiko.util.AUTH_FAILED" class="py-name" href="#" onclick="return doclink('link-10', 'AUTH_FAILED', 'link-7');">AUTH_FAILED</a></tt> </tt>
+</div><a name="L246"></a><tt class="py-lineno">246</tt> <tt class="py-line"> </tt>
+<a name="ServerInterface.check_auth_interactive_response"></a><div id="ServerInterface.check_auth_interactive_response-def"><a name="L247"></a><tt class="py-lineno">247</tt> <a class="py-toggle" href="#" id="ServerInterface.check_auth_interactive_response-toggle" onclick="return toggle('ServerInterface.check_auth_interactive_response');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.server.ServerInterface-class.html#check_auth_interactive_response">check_auth_interactive_response</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">responses</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ServerInterface.check_auth_interactive_response-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="ServerInterface.check_auth_interactive_response-expanded"><a name="L248"></a><tt class="py-lineno">248</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L249"></a><tt class="py-lineno">249</tt> <tt class="py-line"><tt class="py-docstring"> Continue or finish an interactive authentication challenge, if</tt> </tt>
+<a name="L250"></a><tt class="py-lineno">250</tt> <tt class="py-line"><tt class="py-docstring"> supported. You should override this method in server mode if you want</tt> </tt>
+<a name="L251"></a><tt class="py-lineno">251</tt> <tt class="py-line"><tt class="py-docstring"> to support the C{"keyboard-interactive"} auth type.</tt> </tt>
+<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"> Return L{AUTH_FAILED} if the responses are not accepted,</tt> </tt>
+<a name="L254"></a><tt class="py-lineno">254</tt> <tt class="py-line"><tt class="py-docstring"> L{AUTH_SUCCESSFUL} if the responses are accepted and complete</tt> </tt>
+<a name="L255"></a><tt class="py-lineno">255</tt> <tt class="py-line"><tt class="py-docstring"> the authentication, or L{AUTH_PARTIALLY_SUCCESSFUL} if your</tt> </tt>
+<a name="L256"></a><tt class="py-lineno">256</tt> <tt class="py-line"><tt class="py-docstring"> authentication is stateful, and this set of responses is accepted for</tt> </tt>
+<a name="L257"></a><tt class="py-lineno">257</tt> <tt class="py-line"><tt class="py-docstring"> authentication, but more authentication is required. (In this latter</tt> </tt>
+<a name="L258"></a><tt class="py-lineno">258</tt> <tt class="py-line"><tt class="py-docstring"> case, L{get_allowed_auths} will be called to report to the client what</tt> </tt>
+<a name="L259"></a><tt class="py-lineno">259</tt> <tt class="py-line"><tt class="py-docstring"> options it has for continuing the authentication.)</tt> </tt>
+<a name="L260"></a><tt class="py-lineno">260</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L261"></a><tt class="py-lineno">261</tt> <tt class="py-line"><tt class="py-docstring"> If you wish to continue interactive authentication with more questions,</tt> </tt>
+<a name="L262"></a><tt class="py-lineno">262</tt> <tt class="py-line"><tt class="py-docstring"> you may return an L{InteractiveQuery} object, which should cause the</tt> </tt>
+<a name="L263"></a><tt class="py-lineno">263</tt> <tt class="py-line"><tt class="py-docstring"> client to respond with more answers, calling this method again. This</tt> </tt>
+<a name="L264"></a><tt class="py-lineno">264</tt> <tt class="py-line"><tt class="py-docstring"> cycle can continue indefinitely.</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"> The default implementation always returns L{AUTH_FAILED}.</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"> @param responses: list of responses from the client</tt> </tt>
+<a name="L269"></a><tt class="py-lineno">269</tt> <tt class="py-line"><tt class="py-docstring"> @type responses: list(str)</tt> </tt>
+<a name="L270"></a><tt class="py-lineno">270</tt> <tt class="py-line"><tt class="py-docstring"> @return: L{AUTH_FAILED} if the authentication fails;</tt> </tt>
+<a name="L271"></a><tt class="py-lineno">271</tt> <tt class="py-line"><tt class="py-docstring"> L{AUTH_SUCCESSFUL} if it succeeds;</tt> </tt>
+<a name="L272"></a><tt class="py-lineno">272</tt> <tt class="py-line"><tt class="py-docstring"> L{AUTH_PARTIALLY_SUCCESSFUL} if the interactive auth is</tt> </tt>
+<a name="L273"></a><tt class="py-lineno">273</tt> <tt class="py-line"><tt class="py-docstring"> successful, but authentication must continue; otherwise an object</tt> </tt>
+<a name="L274"></a><tt class="py-lineno">274</tt> <tt class="py-line"><tt class="py-docstring"> containing queries for the user</tt> </tt>
+<a name="L275"></a><tt class="py-lineno">275</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: int or L{InteractiveQuery}</tt> </tt>
+<a name="L276"></a><tt class="py-lineno">276</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L277"></a><tt class="py-lineno">277</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-11" class="py-name"><a title="paramiko.auth_handler.AUTH_FAILED
+paramiko.channel.AUTH_FAILED
+paramiko.client.AUTH_FAILED
+paramiko.common.AUTH_FAILED
+paramiko.dsskey.AUTH_FAILED
+paramiko.hostkeys.AUTH_FAILED
+paramiko.kex_gex.AUTH_FAILED
+paramiko.kex_group1.AUTH_FAILED
+paramiko.packet.AUTH_FAILED
+paramiko.pkey.AUTH_FAILED
+paramiko.rsakey.AUTH_FAILED
+paramiko.server.AUTH_FAILED
+paramiko.sftp.AUTH_FAILED
+paramiko.sftp_attr.AUTH_FAILED
+paramiko.sftp_client.AUTH_FAILED
+paramiko.sftp_file.AUTH_FAILED
+paramiko.sftp_handle.AUTH_FAILED
+paramiko.sftp_server.AUTH_FAILED
+paramiko.sftp_si.AUTH_FAILED
+paramiko.transport.AUTH_FAILED
+paramiko.util.AUTH_FAILED" class="py-name" href="#" onclick="return doclink('link-11', 'AUTH_FAILED', 'link-7');">AUTH_FAILED</a></tt> </tt>
+</div><a name="L278"></a><tt class="py-lineno">278</tt> <tt class="py-line"> </tt>
+<a name="ServerInterface.check_port_forward_request"></a><div id="ServerInterface.check_port_forward_request-def"><a name="L279"></a><tt class="py-lineno">279</tt> <a class="py-toggle" href="#" id="ServerInterface.check_port_forward_request-toggle" onclick="return toggle('ServerInterface.check_port_forward_request');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.server.ServerInterface-class.html#check_port_forward_request">check_port_forward_request</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="ServerInterface.check_port_forward_request-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="ServerInterface.check_port_forward_request-expanded"><a name="L280"></a><tt class="py-lineno">280</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L281"></a><tt class="py-lineno">281</tt> <tt class="py-line"><tt class="py-docstring"> Handle a request for port forwarding. The client is asking that</tt> </tt>
+<a name="L282"></a><tt class="py-lineno">282</tt> <tt class="py-line"><tt class="py-docstring"> connections to the given address and port be forwarded back across</tt> </tt>
+<a name="L283"></a><tt class="py-lineno">283</tt> <tt class="py-line"><tt class="py-docstring"> this ssh connection. An address of C{"0.0.0.0"} indicates a global</tt> </tt>
+<a name="L284"></a><tt class="py-lineno">284</tt> <tt class="py-line"><tt class="py-docstring"> address (any address associated with this server) and a port of C{0}</tt> </tt>
+<a name="L285"></a><tt class="py-lineno">285</tt> <tt class="py-line"><tt class="py-docstring"> indicates that no specific port is requested (usually the OS will pick</tt> </tt>
+<a name="L286"></a><tt class="py-lineno">286</tt> <tt class="py-line"><tt class="py-docstring"> a port).</tt> </tt>
+<a name="L287"></a><tt class="py-lineno">287</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L288"></a><tt class="py-lineno">288</tt> <tt class="py-line"><tt class="py-docstring"> The default implementation always returns C{False}, rejecting the</tt> </tt>
+<a name="L289"></a><tt class="py-lineno">289</tt> <tt class="py-line"><tt class="py-docstring"> port forwarding request. If the request is accepted, you should return</tt> </tt>
+<a name="L290"></a><tt class="py-lineno">290</tt> <tt class="py-line"><tt class="py-docstring"> the port opened for listening.</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"> @param address: the requested address</tt> </tt>
+<a name="L293"></a><tt class="py-lineno">293</tt> <tt class="py-line"><tt class="py-docstring"> @type address: str</tt> </tt>
+<a name="L294"></a><tt class="py-lineno">294</tt> <tt class="py-line"><tt class="py-docstring"> @param port: the requested port</tt> </tt>
+<a name="L295"></a><tt class="py-lineno">295</tt> <tt class="py-line"><tt class="py-docstring"> @type port: int</tt> </tt>
+<a name="L296"></a><tt class="py-lineno">296</tt> <tt class="py-line"><tt class="py-docstring"> @return: the port number that was opened for listening, or C{False} to</tt> </tt>
+<a name="L297"></a><tt class="py-lineno">297</tt> <tt class="py-line"><tt class="py-docstring"> reject</tt> </tt>
+<a name="L298"></a><tt class="py-lineno">298</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: int</tt> </tt>
+<a name="L299"></a><tt class="py-lineno">299</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L300"></a><tt class="py-lineno">300</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
+</div><a name="L301"></a><tt class="py-lineno">301</tt> <tt class="py-line"> </tt>
+<a name="ServerInterface.cancel_port_forward_request"></a><div id="ServerInterface.cancel_port_forward_request-def"><a name="L302"></a><tt class="py-lineno">302</tt> <a class="py-toggle" href="#" id="ServerInterface.cancel_port_forward_request-toggle" onclick="return toggle('ServerInterface.cancel_port_forward_request');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.server.ServerInterface-class.html#cancel_port_forward_request">cancel_port_forward_request</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="ServerInterface.cancel_port_forward_request-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="ServerInterface.cancel_port_forward_request-expanded"><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"> The client would like to cancel a previous port-forwarding request.</tt> </tt>
+<a name="L305"></a><tt class="py-lineno">305</tt> <tt class="py-line"><tt class="py-docstring"> If the given address and port is being forwarded across this ssh</tt> </tt>
+<a name="L306"></a><tt class="py-lineno">306</tt> <tt class="py-line"><tt class="py-docstring"> connection, the port should be closed.</tt> </tt>
+<a name="L307"></a><tt class="py-lineno">307</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L308"></a><tt class="py-lineno">308</tt> <tt class="py-line"><tt class="py-docstring"> @param address: the forwarded address</tt> </tt>
+<a name="L309"></a><tt class="py-lineno">309</tt> <tt class="py-line"><tt class="py-docstring"> @type address: str</tt> </tt>
+<a name="L310"></a><tt class="py-lineno">310</tt> <tt class="py-line"><tt class="py-docstring"> @param port: the forwarded port</tt> </tt>
+<a name="L311"></a><tt class="py-lineno">311</tt> <tt class="py-line"><tt class="py-docstring"> @type port: int</tt> </tt>
+<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-keyword">pass</tt> </tt>
+</div><a name="L314"></a><tt class="py-lineno">314</tt> <tt class="py-line"> </tt>
+<a name="ServerInterface.check_global_request"></a><div id="ServerInterface.check_global_request-def"><a name="L315"></a><tt class="py-lineno">315</tt> <a class="py-toggle" href="#" id="ServerInterface.check_global_request-toggle" onclick="return toggle('ServerInterface.check_global_request');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.server.ServerInterface-class.html#check_global_request">check_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">msg</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ServerInterface.check_global_request-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="ServerInterface.check_global_request-expanded"><a name="L316"></a><tt class="py-lineno">316</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L317"></a><tt class="py-lineno">317</tt> <tt class="py-line"><tt class="py-docstring"> Handle a global request of the given C{kind}. This method is called</tt> </tt>
+<a name="L318"></a><tt class="py-lineno">318</tt> <tt class="py-line"><tt class="py-docstring"> in server mode and client mode, whenever the remote host makes a global</tt> </tt>
+<a name="L319"></a><tt class="py-lineno">319</tt> <tt class="py-line"><tt class="py-docstring"> request. If there are any arguments to the request, they will be in</tt> </tt>
+<a name="L320"></a><tt class="py-lineno">320</tt> <tt class="py-line"><tt class="py-docstring"> C{msg}.</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"> There aren't any useful global requests defined, aside from port</tt> </tt>
+<a name="L323"></a><tt class="py-lineno">323</tt> <tt class="py-line"><tt class="py-docstring"> forwarding, so usually this type of request is an extension to the</tt> </tt>
+<a name="L324"></a><tt class="py-lineno">324</tt> <tt class="py-line"><tt class="py-docstring"> protocol.</tt> </tt>
+<a name="L325"></a><tt class="py-lineno">325</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L326"></a><tt class="py-lineno">326</tt> <tt class="py-line"><tt class="py-docstring"> If the request was successful and you would like to return contextual</tt> </tt>
+<a name="L327"></a><tt class="py-lineno">327</tt> <tt class="py-line"><tt class="py-docstring"> data to the remote host, return a tuple. Items in the tuple will be</tt> </tt>
+<a name="L328"></a><tt class="py-lineno">328</tt> <tt class="py-line"><tt class="py-docstring"> sent back with the successful result. (Note that the items in the</tt> </tt>
+<a name="L329"></a><tt class="py-lineno">329</tt> <tt class="py-line"><tt class="py-docstring"> tuple can only be strings, ints, longs, or bools.)</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"> The default implementation always returns C{False}, indicating that it</tt> </tt>
+<a name="L332"></a><tt class="py-lineno">332</tt> <tt class="py-line"><tt class="py-docstring"> does not support any global requests.</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"> @note: Port forwarding requests are handled separately, in</tt> </tt>
+<a name="L335"></a><tt class="py-lineno">335</tt> <tt class="py-line"><tt class="py-docstring"> L{check_port_forward_request}.</tt> </tt>
+<a name="L336"></a><tt class="py-lineno">336</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L337"></a><tt class="py-lineno">337</tt> <tt class="py-line"><tt class="py-docstring"> @param kind: the kind of global request being made.</tt> </tt>
+<a name="L338"></a><tt class="py-lineno">338</tt> <tt class="py-line"><tt class="py-docstring"> @type kind: str</tt> </tt>
+<a name="L339"></a><tt class="py-lineno">339</tt> <tt class="py-line"><tt class="py-docstring"> @param msg: any extra arguments to the request.</tt> </tt>
+<a name="L340"></a><tt class="py-lineno">340</tt> <tt class="py-line"><tt class="py-docstring"> @type msg: L{Message}</tt> </tt>
+<a name="L341"></a><tt class="py-lineno">341</tt> <tt class="py-line"><tt class="py-docstring"> @return: C{True} or a tuple of data if the request was granted;</tt> </tt>
+<a name="L342"></a><tt class="py-lineno">342</tt> <tt class="py-line"><tt class="py-docstring"> C{False} otherwise.</tt> </tt>
+<a name="L343"></a><tt class="py-lineno">343</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: bool</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-keyword">return</tt> <tt class="py-name">False</tt> </tt>
+</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="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>
+</div><div id="ServerInterface.check_channel_pty_request-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="ServerInterface.check_channel_pty_request-expanded"><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-docstring"> Determine if a pseudo-terminal of the given dimensions (usually</tt> </tt>
+<a name="L355"></a><tt class="py-lineno">355</tt> <tt class="py-line"><tt class="py-docstring"> requested for shell access) can be provided on the given channel.</tt> </tt>
+<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"> The default implementation always returns C{False}.</tt> </tt>
+<a name="L358"></a><tt class="py-lineno">358</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L359"></a><tt class="py-lineno">359</tt> <tt class="py-line"><tt class="py-docstring"> @param channel: the L{Channel} the pty request arrived on.</tt> </tt>
+<a name="L360"></a><tt class="py-lineno">360</tt> <tt class="py-line"><tt class="py-docstring"> @type channel: L{Channel}</tt> </tt>
+<a name="L361"></a><tt class="py-lineno">361</tt> <tt class="py-line"><tt class="py-docstring"> @param term: type of terminal requested (for example, C{"vt100"}).</tt> </tt>
+<a name="L362"></a><tt class="py-lineno">362</tt> <tt class="py-line"><tt class="py-docstring"> @type term: str</tt> </tt>
+<a name="L363"></a><tt class="py-lineno">363</tt> <tt class="py-line"><tt class="py-docstring"> @param width: width of screen in characters.</tt> </tt>
+<a name="L364"></a><tt class="py-lineno">364</tt> <tt class="py-line"><tt class="py-docstring"> @type width: int</tt> </tt>
+<a name="L365"></a><tt class="py-lineno">365</tt> <tt class="py-line"><tt class="py-docstring"> @param height: height of screen in characters.</tt> </tt>
+<a name="L366"></a><tt class="py-lineno">366</tt> <tt class="py-line"><tt class="py-docstring"> @type height: int</tt> </tt>
+<a name="L367"></a><tt class="py-lineno">367</tt> <tt class="py-line"><tt class="py-docstring"> @param pixelwidth: width of screen in pixels, if known (may be C{0} if</tt> </tt>
+<a name="L368"></a><tt class="py-lineno">368</tt> <tt class="py-line"><tt class="py-docstring"> unknown).</tt> </tt>
+<a name="L369"></a><tt class="py-lineno">369</tt> <tt class="py-line"><tt class="py-docstring"> @type pixelwidth: int</tt> </tt>
+<a name="L370"></a><tt class="py-lineno">370</tt> <tt class="py-line"><tt class="py-docstring"> @param pixelheight: height of screen in pixels, if known (may be C{0}</tt> </tt>
+<a name="L371"></a><tt class="py-lineno">371</tt> <tt class="py-line"><tt class="py-docstring"> if unknown).</tt> </tt>
+<a name="L372"></a><tt class="py-lineno">372</tt> <tt class="py-line"><tt class="py-docstring"> @type pixelheight: int</tt> </tt>
+<a name="L373"></a><tt class="py-lineno">373</tt> <tt class="py-line"><tt class="py-docstring"> @return: C{True} if the psuedo-terminal has been allocated; C{False}</tt> </tt>
+<a name="L374"></a><tt class="py-lineno">374</tt> <tt class="py-line"><tt class="py-docstring"> otherwise.</tt> </tt>
+<a name="L375"></a><tt class="py-lineno">375</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: bool</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-keyword">return</tt> <tt class="py-name">False</tt> </tt>
+</div><a name="L378"></a><tt class="py-lineno">378</tt> <tt class="py-line"> </tt>
+<a name="ServerInterface.check_channel_shell_request"></a><div id="ServerInterface.check_channel_shell_request-def"><a name="L379"></a><tt class="py-lineno">379</tt> <a class="py-toggle" href="#" id="ServerInterface.check_channel_shell_request-toggle" onclick="return toggle('ServerInterface.check_channel_shell_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_shell_request">check_channel_shell_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-op">:</tt> </tt>
+</div><div id="ServerInterface.check_channel_shell_request-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="ServerInterface.check_channel_shell_request-expanded"><a name="L380"></a><tt class="py-lineno">380</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L381"></a><tt class="py-lineno">381</tt> <tt class="py-line"><tt class="py-docstring"> Determine if a shell will be provided to the client on the given</tt> </tt>
+<a name="L382"></a><tt class="py-lineno">382</tt> <tt class="py-line"><tt class="py-docstring"> channel. If this method returns C{True}, the channel should be</tt> </tt>
+<a name="L383"></a><tt class="py-lineno">383</tt> <tt class="py-line"><tt class="py-docstring"> connected to the stdin/stdout of a shell (or something that acts like</tt> </tt>
+<a name="L384"></a><tt class="py-lineno">384</tt> <tt class="py-line"><tt class="py-docstring"> a shell).</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"> The default implementation always returns C{False}.</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"> @param channel: the L{Channel} the request arrived on.</tt> </tt>
+<a name="L389"></a><tt class="py-lineno">389</tt> <tt class="py-line"><tt class="py-docstring"> @type channel: L{Channel}</tt> </tt>
+<a name="L390"></a><tt class="py-lineno">390</tt> <tt class="py-line"><tt class="py-docstring"> @return: C{True} if this channel is now hooked up to a shell; C{False}</tt> </tt>
+<a name="L391"></a><tt class="py-lineno">391</tt> <tt class="py-line"><tt class="py-docstring"> if a shell can't or won't be provided.</tt> </tt>
+<a name="L392"></a><tt class="py-lineno">392</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: bool</tt> </tt>
+<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-keyword">return</tt> <tt class="py-name">False</tt> </tt>
+</div><a name="L395"></a><tt class="py-lineno">395</tt> <tt class="py-line"> </tt>
+<a name="ServerInterface.check_channel_exec_request"></a><div id="ServerInterface.check_channel_exec_request-def"><a name="L396"></a><tt class="py-lineno">396</tt> <a class="py-toggle" href="#" id="ServerInterface.check_channel_exec_request-toggle" onclick="return toggle('ServerInterface.check_channel_exec_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_exec_request">check_channel_exec_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">command</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ServerInterface.check_channel_exec_request-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="ServerInterface.check_channel_exec_request-expanded"><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"> Determine if a shell command will be executed for the client. If this</tt> </tt>
+<a name="L399"></a><tt class="py-lineno">399</tt> <tt class="py-line"><tt class="py-docstring"> method returns C{True}, the channel should be connected to the stdin,</tt> </tt>
+<a name="L400"></a><tt class="py-lineno">400</tt> <tt class="py-line"><tt class="py-docstring"> stdout, and stderr of the shell command.</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-docstring"> The default implementation always returns 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"> @param channel: the L{Channel} the request arrived on.</tt> </tt>
+<a name="L405"></a><tt class="py-lineno">405</tt> <tt class="py-line"><tt class="py-docstring"> @type channel: L{Channel}</tt> </tt>
+<a name="L406"></a><tt class="py-lineno">406</tt> <tt class="py-line"><tt class="py-docstring"> @param command: the command to execute.</tt> </tt>
+<a name="L407"></a><tt class="py-lineno">407</tt> <tt class="py-line"><tt class="py-docstring"> @type command: str</tt> </tt>
+<a name="L408"></a><tt class="py-lineno">408</tt> <tt class="py-line"><tt class="py-docstring"> @return: C{True} if this channel is now hooked up to the stdin,</tt> </tt>
+<a name="L409"></a><tt class="py-lineno">409</tt> <tt class="py-line"><tt class="py-docstring"> stdout, and stderr of the executing command; C{False} if the</tt> </tt>
+<a name="L410"></a><tt class="py-lineno">410</tt> <tt class="py-line"><tt class="py-docstring"> command will not be executed.</tt> </tt>
+<a name="L411"></a><tt class="py-lineno">411</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: bool</tt> </tt>
+<a name="L412"></a><tt class="py-lineno">412</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L413"></a><tt class="py-lineno">413</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.1</tt> </tt>
+<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-keyword">return</tt> <tt class="py-name">False</tt> </tt>
+</div><a name="L416"></a><tt class="py-lineno">416</tt> <tt class="py-line"> </tt>
+<a name="ServerInterface.check_channel_subsystem_request"></a><div id="ServerInterface.check_channel_subsystem_request-def"><a name="L417"></a><tt class="py-lineno">417</tt> <a class="py-toggle" href="#" id="ServerInterface.check_channel_subsystem_request-toggle" onclick="return toggle('ServerInterface.check_channel_subsystem_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_subsystem_request">check_channel_subsystem_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">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ServerInterface.check_channel_subsystem_request-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="ServerInterface.check_channel_subsystem_request-expanded"><a name="L418"></a><tt class="py-lineno">418</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L419"></a><tt class="py-lineno">419</tt> <tt class="py-line"><tt class="py-docstring"> Determine if a requested subsystem will be provided to the client on</tt> </tt>
+<a name="L420"></a><tt class="py-lineno">420</tt> <tt class="py-line"><tt class="py-docstring"> the given channel. If this method returns C{True}, all future I/O</tt> </tt>
+<a name="L421"></a><tt class="py-lineno">421</tt> <tt class="py-line"><tt class="py-docstring"> through this channel will be assumed to be connected to the requested</tt> </tt>
+<a name="L422"></a><tt class="py-lineno">422</tt> <tt class="py-line"><tt class="py-docstring"> subsystem. An example of a subsystem is C{sftp}.</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-docstring"> The default implementation checks for a subsystem handler assigned via</tt> </tt>
+<a name="L425"></a><tt class="py-lineno">425</tt> <tt class="py-line"><tt class="py-docstring"> L{Transport.set_subsystem_handler}.</tt> </tt>
+<a name="L426"></a><tt class="py-lineno">426</tt> <tt class="py-line"><tt class="py-docstring"> If one has been set, the handler is invoked and this method returns</tt> </tt>
+<a name="L427"></a><tt class="py-lineno">427</tt> <tt class="py-line"><tt class="py-docstring"> C{True}. Otherwise it returns C{False}.</tt> </tt>
+<a name="L428"></a><tt class="py-lineno">428</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L429"></a><tt class="py-lineno">429</tt> <tt class="py-line"><tt class="py-docstring"> @note: Because the default implementation uses the L{Transport} to</tt> </tt>
+<a name="L430"></a><tt class="py-lineno">430</tt> <tt class="py-line"><tt class="py-docstring"> identify valid subsystems, you probably won't need to override this</tt> </tt>
+<a name="L431"></a><tt class="py-lineno">431</tt> <tt class="py-line"><tt class="py-docstring"> method.</tt> </tt>
+<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"> @param channel: the L{Channel} the pty request arrived on.</tt> </tt>
+<a name="L434"></a><tt class="py-lineno">434</tt> <tt class="py-line"><tt class="py-docstring"> @type channel: L{Channel}</tt> </tt>
+<a name="L435"></a><tt class="py-lineno">435</tt> <tt class="py-line"><tt class="py-docstring"> @param name: name of the requested subsystem.</tt> </tt>
+<a name="L436"></a><tt class="py-lineno">436</tt> <tt class="py-line"><tt class="py-docstring"> @type name: str</tt> </tt>
+<a name="L437"></a><tt class="py-lineno">437</tt> <tt class="py-line"><tt class="py-docstring"> @return: C{True} if this channel is now hooked up to the requested</tt> </tt>
+<a name="L438"></a><tt class="py-lineno">438</tt> <tt class="py-line"><tt class="py-docstring"> subsystem; C{False} if that subsystem can't or won't be provided.</tt> </tt>
+<a name="L439"></a><tt class="py-lineno">439</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: bool</tt> </tt>
+<a name="L440"></a><tt class="py-lineno">440</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L441"></a><tt class="py-lineno">441</tt> <tt class="py-line"> <tt class="py-name">handler_class</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 id="link-12" class="py-name" targets="Module paramiko.channel=paramiko.channel-module.html"><a title="paramiko.channel" class="py-name" href="#" onclick="return doclink('link-12', 'channel', 'link-12');">channel</a></tt><tt class="py-op">.</tt><tt id="link-13" 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-13', 'get_transport', 'link-13');">get_transport</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">_get_subsystem_handler</tt><tt class="py-op">(</tt><tt id="link-14" class="py-name"><a title="paramiko.kex_gex.KexGex.name
+paramiko.kex_group1.KexGroup1.name" class="py-name" href="#" onclick="return doclink('link-14', 'name', 'link-4');">name</a></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">handler_class</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</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">return</tt> <tt class="py-name">False</tt> </tt>
+<a name="L444"></a><tt class="py-lineno">444</tt> <tt class="py-line"> <tt class="py-name">handler</tt> <tt class="py-op">=</tt> <tt class="py-name">handler_class</tt><tt class="py-op">(</tt><tt id="link-15" class="py-name"><a title="paramiko.channel" class="py-name" href="#" onclick="return doclink('link-15', 'channel', 'link-12');">channel</a></tt><tt class="py-op">,</tt> <tt id="link-16" class="py-name"><a title="paramiko.kex_gex.KexGex.name
+paramiko.kex_group1.KexGroup1.name" class="py-name" href="#" onclick="return doclink('link-16', 'name', 'link-4');">name</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">larg</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">kwarg</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">handler</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="L446"></a><tt class="py-lineno">446</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
+</div><a name="L447"></a><tt class="py-lineno">447</tt> <tt class="py-line"> </tt>
+<a name="ServerInterface.check_channel_window_change_request"></a><div id="ServerInterface.check_channel_window_change_request-def"><a name="L448"></a><tt class="py-lineno">448</tt> <a class="py-toggle" href="#" id="ServerInterface.check_channel_window_change_request-toggle" onclick="return toggle('ServerInterface.check_channel_window_change_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_window_change_request">check_channel_window_change_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">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 class="py-op">:</tt> </tt>
+</div><div id="ServerInterface.check_channel_window_change_request-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="ServerInterface.check_channel_window_change_request-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"> Determine if the pseudo-terminal on the given channel can be resized.</tt> </tt>
+<a name="L451"></a><tt class="py-lineno">451</tt> <tt class="py-line"><tt class="py-docstring"> This only makes sense if a pty was previously allocated on it.</tt> </tt>
+<a name="L452"></a><tt class="py-lineno">452</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L453"></a><tt class="py-lineno">453</tt> <tt class="py-line"><tt class="py-docstring"> The default implementation always returns 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"> @param channel: the L{Channel} the pty request arrived on.</tt> </tt>
+<a name="L456"></a><tt class="py-lineno">456</tt> <tt class="py-line"><tt class="py-docstring"> @type channel: L{Channel}</tt> </tt>
+<a name="L457"></a><tt class="py-lineno">457</tt> <tt class="py-line"><tt class="py-docstring"> @param width: width of screen in characters.</tt> </tt>
+<a name="L458"></a><tt class="py-lineno">458</tt> <tt class="py-line"><tt class="py-docstring"> @type width: int</tt> </tt>
+<a name="L459"></a><tt class="py-lineno">459</tt> <tt class="py-line"><tt class="py-docstring"> @param height: height of screen in characters.</tt> </tt>
+<a name="L460"></a><tt class="py-lineno">460</tt> <tt class="py-line"><tt class="py-docstring"> @type height: int</tt> </tt>
+<a name="L461"></a><tt class="py-lineno">461</tt> <tt class="py-line"><tt class="py-docstring"> @param pixelwidth: width of screen in pixels, if known (may be C{0} if</tt> </tt>
+<a name="L462"></a><tt class="py-lineno">462</tt> <tt class="py-line"><tt class="py-docstring"> unknown).</tt> </tt>
+<a name="L463"></a><tt class="py-lineno">463</tt> <tt class="py-line"><tt class="py-docstring"> @type pixelwidth: int</tt> </tt>
+<a name="L464"></a><tt class="py-lineno">464</tt> <tt class="py-line"><tt class="py-docstring"> @param pixelheight: height of screen in pixels, if known (may be C{0}</tt> </tt>
+<a name="L465"></a><tt class="py-lineno">465</tt> <tt class="py-line"><tt class="py-docstring"> if unknown).</tt> </tt>
+<a name="L466"></a><tt class="py-lineno">466</tt> <tt class="py-line"><tt class="py-docstring"> @type pixelheight: int</tt> </tt>
+<a name="L467"></a><tt class="py-lineno">467</tt> <tt class="py-line"><tt class="py-docstring"> @return: C{True} if the terminal was resized; C{False} if not.</tt> </tt>
+<a name="L468"></a><tt class="py-lineno">468</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: bool</tt> </tt>
+<a name="L469"></a><tt class="py-lineno">469</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L470"></a><tt class="py-lineno">470</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
+</div><a name="L471"></a><tt class="py-lineno">471</tt> <tt class="py-line"> </tt>
+<a name="ServerInterface.check_channel_x11_request"></a><div id="ServerInterface.check_channel_x11_request-def"><a name="L472"></a><tt class="py-lineno">472</tt> <a class="py-toggle" href="#" id="ServerInterface.check_channel_x11_request-toggle" onclick="return toggle('ServerInterface.check_channel_x11_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_x11_request">check_channel_x11_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">single_connection</tt><tt class="py-op">,</tt> <tt class="py-param">auth_protocol</tt><tt class="py-op">,</tt> <tt class="py-param">auth_cookie</tt><tt class="py-op">,</tt> <tt class="py-param">screen_number</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ServerInterface.check_channel_x11_request-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="ServerInterface.check_channel_x11_request-expanded"><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"> Determine if the client will be provided with an X11 session. If this</tt> </tt>
+<a name="L475"></a><tt class="py-lineno">475</tt> <tt class="py-line"><tt class="py-docstring"> method returns C{True}, X11 applications should be routed through new</tt> </tt>
+<a name="L476"></a><tt class="py-lineno">476</tt> <tt class="py-line"><tt class="py-docstring"> SSH channels, using L{Transport.open_x11_channel}.</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"> The default implementation always returns C{False}.</tt> </tt>
+<a name="L479"></a><tt class="py-lineno">479</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L480"></a><tt class="py-lineno">480</tt> <tt class="py-line"><tt class="py-docstring"> @param channel: the L{Channel} the X11 request arrived on</tt> </tt>
+<a name="L481"></a><tt class="py-lineno">481</tt> <tt class="py-line"><tt class="py-docstring"> @type channel: L{Channel}</tt> </tt>
+<a name="L482"></a><tt class="py-lineno">482</tt> <tt class="py-line"><tt class="py-docstring"> @param single_connection: C{True} if only a single X11 channel should</tt> </tt>
+<a name="L483"></a><tt class="py-lineno">483</tt> <tt class="py-line"><tt class="py-docstring"> be opened</tt> </tt>
+<a name="L484"></a><tt class="py-lineno">484</tt> <tt class="py-line"><tt class="py-docstring"> @type single_connection: bool</tt> </tt>
+<a name="L485"></a><tt class="py-lineno">485</tt> <tt class="py-line"><tt class="py-docstring"> @param auth_protocol: the protocol used for X11 authentication</tt> </tt>
+<a name="L486"></a><tt class="py-lineno">486</tt> <tt class="py-line"><tt class="py-docstring"> @type auth_protocol: str</tt> </tt>
+<a name="L487"></a><tt class="py-lineno">487</tt> <tt class="py-line"><tt class="py-docstring"> @param auth_cookie: the cookie used to authenticate to X11</tt> </tt>
+<a name="L488"></a><tt class="py-lineno">488</tt> <tt class="py-line"><tt class="py-docstring"> @type auth_cookie: str</tt> </tt>
+<a name="L489"></a><tt class="py-lineno">489</tt> <tt class="py-line"><tt class="py-docstring"> @param screen_number: the number of the X11 screen to connect to</tt> </tt>
+<a name="L490"></a><tt class="py-lineno">490</tt> <tt class="py-line"><tt class="py-docstring"> @type screen_number: int</tt> </tt>
+<a name="L491"></a><tt class="py-lineno">491</tt> <tt class="py-line"><tt class="py-docstring"> @return: C{True} if the X11 session was opened; C{False} if not</tt> </tt>
+<a name="L492"></a><tt class="py-lineno">492</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: bool</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-keyword">return</tt> <tt class="py-name">False</tt> </tt>
+</div><a name="L495"></a><tt class="py-lineno">495</tt> <tt class="py-line"> </tt>
+<a name="ServerInterface.check_channel_direct_tcpip_request"></a><div id="ServerInterface.check_channel_direct_tcpip_request-def"><a name="L496"></a><tt class="py-lineno">496</tt> <a class="py-toggle" href="#" id="ServerInterface.check_channel_direct_tcpip_request-toggle" onclick="return toggle('ServerInterface.check_channel_direct_tcpip_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_direct_tcpip_request">check_channel_direct_tcpip_request</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">origin</tt><tt class="py-op">,</tt> <tt class="py-param">destination</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ServerInterface.check_channel_direct_tcpip_request-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="ServerInterface.check_channel_direct_tcpip_request-expanded"><a name="L497"></a><tt class="py-lineno">497</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L498"></a><tt class="py-lineno">498</tt> <tt class="py-line"><tt class="py-docstring"> Determine if a local port forwarding channel will be granted, and</tt> </tt>
+<a name="L499"></a><tt class="py-lineno">499</tt> <tt class="py-line"><tt class="py-docstring"> return C{OPEN_SUCCEEDED} or an error code. This method is</tt> </tt>
+<a name="L500"></a><tt class="py-lineno">500</tt> <tt class="py-line"><tt class="py-docstring"> called in server mode when the client requests a channel, after</tt> </tt>
+<a name="L501"></a><tt class="py-lineno">501</tt> <tt class="py-line"><tt class="py-docstring"> authentication is complete.</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"> The C{chanid} parameter is a small number that uniquely identifies the</tt> </tt>
+<a name="L504"></a><tt class="py-lineno">504</tt> <tt class="py-line"><tt class="py-docstring"> channel within a L{Transport}. A L{Channel} object is not created</tt> </tt>
+<a name="L505"></a><tt class="py-lineno">505</tt> <tt class="py-line"><tt class="py-docstring"> unless this method returns C{OPEN_SUCCEEDED} -- once a</tt> </tt>
+<a name="L506"></a><tt class="py-lineno">506</tt> <tt class="py-line"><tt class="py-docstring"> L{Channel} object is created, you can call L{Channel.get_id} to</tt> </tt>
+<a name="L507"></a><tt class="py-lineno">507</tt> <tt class="py-line"><tt class="py-docstring"> retrieve the channel ID.</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"> The origin and destination parameters are (ip_address, port) tuples</tt> </tt>
+<a name="L510"></a><tt class="py-lineno">510</tt> <tt class="py-line"><tt class="py-docstring"> that correspond to both ends of the TCP connection in the forwarding</tt> </tt>
+<a name="L511"></a><tt class="py-lineno">511</tt> <tt class="py-line"><tt class="py-docstring"> tunnel.</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-docstring"> The return value should either be C{OPEN_SUCCEEDED} (or</tt> </tt>
+<a name="L514"></a><tt class="py-lineno">514</tt> <tt class="py-line"><tt class="py-docstring"> C{0}) to allow the channel request, or one of the following error</tt> </tt>
+<a name="L515"></a><tt class="py-lineno">515</tt> <tt class="py-line"><tt class="py-docstring"> codes to reject it:</tt> </tt>
+<a name="L516"></a><tt class="py-lineno">516</tt> <tt class="py-line"><tt class="py-docstring"> - C{OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED}</tt> </tt>
+<a name="L517"></a><tt class="py-lineno">517</tt> <tt class="py-line"><tt class="py-docstring"> - C{OPEN_FAILED_CONNECT_FAILED}</tt> </tt>
+<a name="L518"></a><tt class="py-lineno">518</tt> <tt class="py-line"><tt class="py-docstring"> - C{OPEN_FAILED_UNKNOWN_CHANNEL_TYPE}</tt> </tt>
+<a name="L519"></a><tt class="py-lineno">519</tt> <tt class="py-line"><tt class="py-docstring"> - C{OPEN_FAILED_RESOURCE_SHORTAGE}</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"> The default implementation always returns</tt> </tt>
+<a name="L522"></a><tt class="py-lineno">522</tt> <tt class="py-line"><tt class="py-docstring"> C{OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED}.</tt> </tt>
+<a name="L523"></a><tt class="py-lineno">523</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L524"></a><tt class="py-lineno">524</tt> <tt class="py-line"><tt class="py-docstring"> @param chanid: ID of the channel</tt> </tt>
+<a name="L525"></a><tt class="py-lineno">525</tt> <tt class="py-line"><tt class="py-docstring"> @type chanid: int</tt> </tt>
+<a name="L526"></a><tt class="py-lineno">526</tt> <tt class="py-line"><tt class="py-docstring"> @param origin: 2-tuple containing the IP address and port of the</tt> </tt>
+<a name="L527"></a><tt class="py-lineno">527</tt> <tt class="py-line"><tt class="py-docstring"> originator (client side)</tt> </tt>
+<a name="L528"></a><tt class="py-lineno">528</tt> <tt class="py-line"><tt class="py-docstring"> @type origin: tuple</tt> </tt>
+<a name="L529"></a><tt class="py-lineno">529</tt> <tt class="py-line"><tt class="py-docstring"> @param destination: 2-tuple containing the IP address and port of the</tt> </tt>
+<a name="L530"></a><tt class="py-lineno">530</tt> <tt class="py-line"><tt class="py-docstring"> destination (server side)</tt> </tt>
+<a name="L531"></a><tt class="py-lineno">531</tt> <tt class="py-line"><tt class="py-docstring"> @type destination: tuple</tt> </tt>
+<a name="L532"></a><tt class="py-lineno">532</tt> <tt class="py-line"><tt class="py-docstring"> @return: a success or failure code (listed above)</tt> </tt>
+<a name="L533"></a><tt class="py-lineno">533</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: int</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-keyword">return</tt> <tt id="link-17" class="py-name"><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
+paramiko.dsskey.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.hostkeys.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.kex_gex.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.kex_group1.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.packet.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.pkey.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.rsakey.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.server.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.sftp.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.sftp_attr.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.sftp_client.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.sftp_file.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+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-17', 'OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED', 'link-6');">OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED</a></tt> </tt>
+</div></div><a name="L536"></a><tt class="py-lineno">536</tt> <tt class="py-line"> </tt>
+<a name="L537"></a><tt class="py-lineno">537</tt> <tt class="py-line"> </tt>
+<a name="SubsystemHandler"></a><div id="SubsystemHandler-def"><a name="L538"></a><tt class="py-lineno">538</tt> <a class="py-toggle" href="#" id="SubsystemHandler-toggle" onclick="return toggle('SubsystemHandler');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.server.SubsystemHandler-class.html">SubsystemHandler</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="SubsystemHandler-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="SubsystemHandler-expanded"><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-docstring"> Handler for a subsytem in server mode. If you create a subclass of this</tt> </tt>
+<a name="L541"></a><tt class="py-lineno">541</tt> <tt class="py-line"><tt class="py-docstring"> class and pass it to</tt> </tt>
+<a name="L542"></a><tt class="py-lineno">542</tt> <tt class="py-line"><tt class="py-docstring"> L{Transport.set_subsystem_handler},</tt> </tt>
+<a name="L543"></a><tt class="py-lineno">543</tt> <tt class="py-line"><tt class="py-docstring"> an object of this</tt> </tt>
+<a name="L544"></a><tt class="py-lineno">544</tt> <tt class="py-line"><tt class="py-docstring"> class will be created for each request for this subsystem. Each new object</tt> </tt>
+<a name="L545"></a><tt class="py-lineno">545</tt> <tt class="py-line"><tt class="py-docstring"> will be executed within its own new thread by calling L{start_subsystem}.</tt> </tt>
+<a name="L546"></a><tt class="py-lineno">546</tt> <tt class="py-line"><tt class="py-docstring"> When that method completes, the channel is closed.</tt> </tt>
+<a name="L547"></a><tt class="py-lineno">547</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L548"></a><tt class="py-lineno">548</tt> <tt class="py-line"><tt class="py-docstring"> For example, if you made a subclass C{MP3Handler} and registered it as the</tt> </tt>
+<a name="L549"></a><tt class="py-lineno">549</tt> <tt class="py-line"><tt class="py-docstring"> handler for subsystem C{"mp3"}, then whenever a client has successfully</tt> </tt>
+<a name="L550"></a><tt class="py-lineno">550</tt> <tt class="py-line"><tt class="py-docstring"> authenticated and requests subsytem C{"mp3"}, an object of class</tt> </tt>
+<a name="L551"></a><tt class="py-lineno">551</tt> <tt class="py-line"><tt class="py-docstring"> C{MP3Handler} will be created, and L{start_subsystem} will be called on</tt> </tt>
+<a name="L552"></a><tt class="py-lineno">552</tt> <tt class="py-line"><tt class="py-docstring"> it from a new thread.</tt> </tt>
+<a name="L553"></a><tt class="py-lineno">553</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="SubsystemHandler.__init__"></a><div id="SubsystemHandler.__init__-def"><a name="L554"></a><tt class="py-lineno">554</tt> <a class="py-toggle" href="#" id="SubsystemHandler.__init__-toggle" onclick="return toggle('SubsystemHandler.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.server.SubsystemHandler-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">name</tt><tt class="py-op">,</tt> <tt class="py-param">server</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SubsystemHandler.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SubsystemHandler.__init__-expanded"><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"> Create a new handler for a channel. This is used by L{ServerInterface}</tt> </tt>
+<a name="L557"></a><tt class="py-lineno">557</tt> <tt class="py-line"><tt class="py-docstring"> to start up a new handler when a channel requests this subsystem. You</tt> </tt>
+<a name="L558"></a><tt class="py-lineno">558</tt> <tt class="py-line"><tt class="py-docstring"> don't need to override this method, but if you do, be sure to pass the</tt> </tt>
+<a name="L559"></a><tt class="py-lineno">559</tt> <tt class="py-line"><tt class="py-docstring"> C{channel} and C{name} parameters through to the original C{__init__}</tt> </tt>
+<a name="L560"></a><tt class="py-lineno">560</tt> <tt class="py-line"><tt class="py-docstring"> method here.</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"> @param channel: the channel associated with this subsystem request.</tt> </tt>
+<a name="L563"></a><tt class="py-lineno">563</tt> <tt class="py-line"><tt class="py-docstring"> @type channel: L{Channel}</tt> </tt>
+<a name="L564"></a><tt class="py-lineno">564</tt> <tt class="py-line"><tt class="py-docstring"> @param name: name of the requested subsystem.</tt> </tt>
+<a name="L565"></a><tt class="py-lineno">565</tt> <tt class="py-line"><tt class="py-docstring"> @type name: str</tt> </tt>
+<a name="L566"></a><tt class="py-lineno">566</tt> <tt class="py-line"><tt class="py-docstring"> @param server: the server object for the session that started this</tt> </tt>
+<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__
+paramiko.AgentKey.__init__
+paramiko.BadAuthenticationType.__init__
+paramiko.BadHostKeyException.__init__
+paramiko.BufferedFile.__init__
+paramiko.Channel.__init__
+paramiko.ChannelException.__init__
+paramiko.DSSKey.__init__
+paramiko.HostKeys.__init__
+paramiko.Message.__init__
+paramiko.PKey.__init__
+paramiko.RSAKey.__init__
+paramiko.SFTPAttributes.__init__
+paramiko.SFTPClient.__init__
+paramiko.SFTPFile.__init__
+paramiko.SFTPHandle.__init__
+paramiko.SFTPServer.__init__
+paramiko.SFTPServerInterface.__init__
+paramiko.SSHClient.__init__
+paramiko.SSHConfig.__init__
+paramiko.SecurityOptions.__init__
+paramiko.SubsystemHandler.__init__
+paramiko.Transport.__init__
+paramiko.ber.BER.__init__
+paramiko.buffered_pipe.BufferedPipe.__init__
+paramiko.channel.ChannelStderrFile.__init__
+paramiko.compress.ZlibCompressor.__init__
+paramiko.compress.ZlibDecompressor.__init__
+paramiko.hostkeys.HostKeyEntry.__init__
+paramiko.kex_gex.KexGex.__init__
+paramiko.kex_group1.KexGroup1.__init__
+paramiko.logging22.Formatter.__init__
+paramiko.logging22.StreamHandler.__init__
+paramiko.logging22.logger.__init__
+paramiko.pipe.OrPipe.__init__
+paramiko.pipe.PosixPipe.__init__
+paramiko.pipe.WindowsPipe.__init__
+paramiko.primes.ModulusPack.__init__
+paramiko.rng.StrongLockingRandomPool.__init__
+paramiko.ssh_exception.PartialAuthentication.__init__
+paramiko.transport.ChannelMap.__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>
+<a name="L572"></a><tt class="py-lineno">572</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-20" class="py-name"><a title="paramiko.channel" class="py-name" href="#" onclick="return doclink('link-20', 'channel', 'link-12');">channel</a></tt><tt class="py-op">.</tt><tt id="link-21" class="py-name"><a title="paramiko.Channel.get_transport
+paramiko.SSHClient.get_transport" class="py-name" href="#" onclick="return doclink('link-21', 'get_transport', 'link-13');">get_transport</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L573"></a><tt class="py-lineno">573</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-22" class="py-name"><a title="paramiko.kex_gex.KexGex.name
+paramiko.kex_group1.KexGroup1.name" class="py-name" href="#" onclick="return doclink('link-22', 'name', 'link-4');">name</a></tt> </tt>
+<a name="L574"></a><tt class="py-lineno">574</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__server</tt> <tt class="py-op">=</tt> <tt id="link-23" class="py-name" targets="Module paramiko.server=paramiko.server-module.html"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-23', 'server', 'link-23');">server</a></tt> </tt>
+</div><a name="L575"></a><tt class="py-lineno">575</tt> <tt class="py-line"> </tt>
+<a name="SubsystemHandler.get_server"></a><div id="SubsystemHandler.get_server-def"><a name="L576"></a><tt class="py-lineno">576</tt> <a class="py-toggle" href="#" id="SubsystemHandler.get_server-toggle" onclick="return toggle('SubsystemHandler.get_server');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.server.SubsystemHandler-class.html#get_server">get_server</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SubsystemHandler.get_server-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SubsystemHandler.get_server-expanded"><a name="L577"></a><tt class="py-lineno">577</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L578"></a><tt class="py-lineno">578</tt> <tt class="py-line"><tt class="py-docstring"> Return the L{ServerInterface} object associated with this channel and</tt> </tt>
+<a name="L579"></a><tt class="py-lineno">579</tt> <tt class="py-line"><tt class="py-docstring"> subsystem.</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"> @rtype: L{ServerInterface}</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">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__server</tt> </tt>
+</div><a name="L584"></a><tt class="py-lineno">584</tt> <tt class="py-line"> </tt>
+<a name="SubsystemHandler._run"></a><div id="SubsystemHandler._run-def"><a name="L585"></a><tt class="py-lineno">585</tt> <a class="py-toggle" href="#" id="SubsystemHandler._run-toggle" onclick="return toggle('SubsystemHandler._run');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.server.SubsystemHandler-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="SubsystemHandler._run-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SubsystemHandler._run-expanded"><a name="L586"></a><tt class="py-lineno">586</tt> <tt class="py-line"> <tt class="py-keyword">try</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">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 id="link-24" 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
+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-24', 'DEBUG', 'link-24');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Starting handler for subsystem %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="L588"></a><tt class="py-lineno">588</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-25" class="py-name" targets="Method paramiko.SFTPServer.start_subsystem()=paramiko.SFTPServer-class.html#start_subsystem,Method paramiko.SubsystemHandler.start_subsystem()=paramiko.SubsystemHandler-class.html#start_subsystem"><a title="paramiko.SFTPServer.start_subsystem
+paramiko.SubsystemHandler.start_subsystem" class="py-name" href="#" onclick="return doclink('link-25', 'start_subsystem', 'link-25');">start_subsystem</a></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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__transport</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__channel</tt><tt class="py-op">)</tt> </tt>
+<a name="L589"></a><tt class="py-lineno">589</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="L590"></a><tt class="py-lineno">590</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 id="link-26" 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
+paramiko.dsskey.ERROR
+paramiko.hostkeys.ERROR
+paramiko.kex_gex.ERROR
+paramiko.kex_group1.ERROR
+paramiko.logging22.ERROR
+paramiko.packet.ERROR
+paramiko.pkey.ERROR
+paramiko.rsakey.ERROR
+paramiko.server.ERROR
+paramiko.sftp.ERROR
+paramiko.sftp_attr.ERROR
+paramiko.sftp_client.ERROR
+paramiko.sftp_file.ERROR
+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-26', 'ERROR', 'link-26');">ERROR</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Exception in subsystem handler for "%s": %s'</tt> <tt class="py-op">%</tt> </tt>
+<a name="L591"></a><tt class="py-lineno">591</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">__name</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>
+<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">__transport</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-27" class="py-name"><a title="paramiko.auth_handler.ERROR
+paramiko.channel.ERROR
+paramiko.client.ERROR
+paramiko.common.ERROR
+paramiko.dsskey.ERROR
+paramiko.hostkeys.ERROR
+paramiko.kex_gex.ERROR
+paramiko.kex_group1.ERROR
+paramiko.logging22.ERROR
+paramiko.packet.ERROR
+paramiko.pkey.ERROR
+paramiko.rsakey.ERROR
+paramiko.server.ERROR
+paramiko.sftp.ERROR
+paramiko.sftp_attr.ERROR
+paramiko.sftp_client.ERROR
+paramiko.sftp_file.ERROR
+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-27', 'ERROR', 'link-26');">ERROR</a></tt><tt class="py-op">,</tt> <tt id="link-28" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-28', 'util', 'link-3');">util</a></tt><tt class="py-op">.</tt><tt id="link-29" 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-29', 'tb_strings', 'link-29');">tb_strings</a></tt><tt class="py-op">(</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-keyword">try</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 id="link-30" 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-30', 'finish_subsystem', 'link-30');">finish_subsystem</a></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">except</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">pass</tt> </tt>
+</div><a name="L597"></a><tt class="py-lineno">597</tt> <tt class="py-line"> </tt>
+<a name="SubsystemHandler.start_subsystem"></a><div id="SubsystemHandler.start_subsystem-def"><a name="L598"></a><tt class="py-lineno">598</tt> <a class="py-toggle" href="#" id="SubsystemHandler.start_subsystem-toggle" onclick="return toggle('SubsystemHandler.start_subsystem');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.server.SubsystemHandler-class.html#start_subsystem">start_subsystem</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">transport</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="SubsystemHandler.start_subsystem-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SubsystemHandler.start_subsystem-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"> Process an ssh subsystem in server mode. This method is called on a</tt> </tt>
+<a name="L601"></a><tt class="py-lineno">601</tt> <tt class="py-line"><tt class="py-docstring"> new object (and in a new thread) for each subsystem request. It is</tt> </tt>
+<a name="L602"></a><tt class="py-lineno">602</tt> <tt class="py-line"><tt class="py-docstring"> assumed that all subsystem logic will take place here, and when the</tt> </tt>
+<a name="L603"></a><tt class="py-lineno">603</tt> <tt class="py-line"><tt class="py-docstring"> subsystem is finished, this method will return. After this method</tt> </tt>
+<a name="L604"></a><tt class="py-lineno">604</tt> <tt class="py-line"><tt class="py-docstring"> returns, the channel is closed.</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"> The combination of C{transport} and C{channel} are unique; this handler</tt> </tt>
+<a name="L607"></a><tt class="py-lineno">607</tt> <tt class="py-line"><tt class="py-docstring"> corresponds to exactly one L{Channel} on one L{Transport}.</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"> @note: It is the responsibility of this method to exit if the</tt> </tt>
+<a name="L610"></a><tt class="py-lineno">610</tt> <tt class="py-line"><tt class="py-docstring"> underlying L{Transport} is closed. This can be done by checking</tt> </tt>
+<a name="L611"></a><tt class="py-lineno">611</tt> <tt class="py-line"><tt class="py-docstring"> L{Transport.is_active} or noticing an EOF</tt> </tt>
+<a name="L612"></a><tt class="py-lineno">612</tt> <tt class="py-line"><tt class="py-docstring"> on the L{Channel}. If this method loops forever without checking</tt> </tt>
+<a name="L613"></a><tt class="py-lineno">613</tt> <tt class="py-line"><tt class="py-docstring"> for this case, your python interpreter may refuse to exit because</tt> </tt>
+<a name="L614"></a><tt class="py-lineno">614</tt> <tt class="py-line"><tt class="py-docstring"> this thread will still be running.</tt> </tt>
+<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"> @param name: name of the requested subsystem.</tt> </tt>
+<a name="L617"></a><tt class="py-lineno">617</tt> <tt class="py-line"><tt class="py-docstring"> @type name: str</tt> </tt>
+<a name="L618"></a><tt class="py-lineno">618</tt> <tt class="py-line"><tt class="py-docstring"> @param transport: the server-mode L{Transport}.</tt> </tt>
+<a name="L619"></a><tt class="py-lineno">619</tt> <tt class="py-line"><tt class="py-docstring"> @type transport: L{Transport}</tt> </tt>
+<a name="L620"></a><tt class="py-lineno">620</tt> <tt class="py-line"><tt class="py-docstring"> @param channel: the channel associated with this subsystem request.</tt> </tt>
+<a name="L621"></a><tt class="py-lineno">621</tt> <tt class="py-line"><tt class="py-docstring"> @type channel: L{Channel}</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-keyword">pass</tt> </tt>
+</div><a name="L624"></a><tt class="py-lineno">624</tt> <tt class="py-line"> </tt>
+<a name="SubsystemHandler.finish_subsystem"></a><div id="SubsystemHandler.finish_subsystem-def"><a name="L625"></a><tt class="py-lineno">625</tt> <a class="py-toggle" href="#" id="SubsystemHandler.finish_subsystem-toggle" onclick="return toggle('SubsystemHandler.finish_subsystem');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.server.SubsystemHandler-class.html#finish_subsystem">finish_subsystem</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SubsystemHandler.finish_subsystem-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SubsystemHandler.finish_subsystem-expanded"><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"> Perform any cleanup at the end of a subsystem. The default</tt> </tt>
+<a name="L628"></a><tt class="py-lineno">628</tt> <tt class="py-line"><tt class="py-docstring"> implementation just closes the channel.</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-docstring"> @since: 1.1</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__channel</tt><tt class="py-op">.</tt><tt id="link-31" 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
+paramiko.SFTPFile.close
+paramiko.SFTPHandle.close
+paramiko.SSHClient.close
+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-31', 'close', 'link-31');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L633"></a><tt class="py-lineno">633</tt> <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<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 Jul 6 18:30:38 2008
+ </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.sftp-module.html b/docs/paramiko.sftp-module.html
new file mode 100644
index 0000000..f65cd15
--- /dev/null
+++ b/docs/paramiko.sftp-module.html
@@ -0,0 +1,898 @@
+<?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.sftp</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> ::
+ Module&nbsp;sftp
+ </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.sftp-module.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module sftp</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.sftp-pysrc.html">source&nbsp;code</a></span></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="SFTP_OK"></a><span class="summary-name">SFTP_OK</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 href="paramiko.sftp-module.html#SFTP_DESC" class="summary-name">SFTP_DESC</a> = <code title="['Success',
+ 'End of file',
+ 'No such file',
+ 'Permission denied',
+ 'Failure',
+ 'Bad message',
+ 'No connection',
+ 'Connection lost',
+..."><code class="variable-group">[</code><code class="variable-quote">'</code><code class="variable-string">Success</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">End of file</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">No such file</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">Permis</code><code class="variable-ellipsis">...</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="SFTP_FLAG_READ"></a><span class="summary-name">SFTP_FLAG_READ</span> = <code title="1">1</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="SFTP_FLAG_WRITE"></a><span class="summary-name">SFTP_FLAG_WRITE</span> = <code title="2">2</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="SFTP_FLAG_APPEND"></a><span class="summary-name">SFTP_FLAG_APPEND</span> = <code title="4">4</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="SFTP_FLAG_CREATE"></a><span class="summary-name">SFTP_FLAG_CREATE</span> = <code title="8">8</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="SFTP_FLAG_TRUNC"></a><span class="summary-name">SFTP_FLAG_TRUNC</span> = <code title="16">16</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="SFTP_FLAG_EXCL"></a><span class="summary-name">SFTP_FLAG_EXCL</span> = <code title="32">32</code>
+ </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.sftp-module.html#CMD_NAMES" class="summary-name">CMD_NAMES</a> = <code title="{1: 'init',
+ 2: 'version',
+ 3: 'open',
+ 4: 'close',
+ 5: 'read',
+ 6: 'write',
+ 7: 'lstat',
+ 8: 'fstat',
+..."><code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">init</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">version</code><code class="variable-quote">'</code><code class="variable-op">, </code>3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">open</code><code class="variable-quote">'</code><code class="variable-op">, </code>4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">close</code><code class="variable-quote">'</code><code class="variable-op">, </code>5<code class="variable-ellipsis">...</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="AUTH_FAILED"></a><span class="summary-name">AUTH_FAILED</span> = <code title="2">2</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_PARTIALLY_SUCCESSFUL"></a><span class="summary-name">AUTH_PARTIALLY_SUCCESSFUL</span> = <code title="1">1</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_SUCCESSFUL"></a><span class="summary-name">AUTH_SUCCESSFUL</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="CMD_ATTRS"></a><span class="summary-name">CMD_ATTRS</span> = <code title="105">105</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="CMD_CLOSE"></a><span class="summary-name">CMD_CLOSE</span> = <code title="4">4</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="CMD_DATA"></a><span class="summary-name">CMD_DATA</span> = <code title="103">103</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="CMD_EXTENDED"></a><span class="summary-name">CMD_EXTENDED</span> = <code title="200">200</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="CMD_EXTENDED_REPLY"></a><span class="summary-name">CMD_EXTENDED_REPLY</span> = <code title="201">201</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="CMD_FSETSTAT"></a><span class="summary-name">CMD_FSETSTAT</span> = <code title="10">10</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="CMD_FSTAT"></a><span class="summary-name">CMD_FSTAT</span> = <code title="8">8</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="CMD_HANDLE"></a><span class="summary-name">CMD_HANDLE</span> = <code title="102">102</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="CMD_INIT"></a><span class="summary-name">CMD_INIT</span> = <code title="1">1</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="CMD_LSTAT"></a><span class="summary-name">CMD_LSTAT</span> = <code title="7">7</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="CMD_MKDIR"></a><span class="summary-name">CMD_MKDIR</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="CMD_NAME"></a><span class="summary-name">CMD_NAME</span> = <code title="104">104</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="CMD_OPEN"></a><span class="summary-name">CMD_OPEN</span> = <code title="3">3</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="CMD_OPENDIR"></a><span class="summary-name">CMD_OPENDIR</span> = <code title="11">11</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="CMD_READ"></a><span class="summary-name">CMD_READ</span> = <code title="5">5</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="CMD_READDIR"></a><span class="summary-name">CMD_READDIR</span> = <code title="12">12</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="CMD_READLINK"></a><span class="summary-name">CMD_READLINK</span> = <code title="19">19</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="CMD_REALPATH"></a><span class="summary-name">CMD_REALPATH</span> = <code title="16">16</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="CMD_REMOVE"></a><span class="summary-name">CMD_REMOVE</span> = <code title="13">13</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="CMD_RENAME"></a><span class="summary-name">CMD_RENAME</span> = <code title="18">18</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="CMD_RMDIR"></a><span class="summary-name">CMD_RMDIR</span> = <code title="15">15</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="CMD_SETSTAT"></a><span class="summary-name">CMD_SETSTAT</span> = <code title="9">9</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="CMD_STAT"></a><span class="summary-name">CMD_STAT</span> = <code title="17">17</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="CMD_STATUS"></a><span class="summary-name">CMD_STATUS</span> = <code title="101">101</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="CMD_SYMLINK"></a><span class="summary-name">CMD_SYMLINK</span> = <code title="20">20</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="CMD_VERSION"></a><span class="summary-name">CMD_VERSION</span> = <code title="2">2</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="CMD_WRITE"></a><span class="summary-name">CMD_WRITE</span> = <code title="6">6</code>
+ </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.sftp-module.html#CONNECTION_FAILED_CODE" class="summary-name">CONNECTION_FAILED_CODE</a> = <code title="{1: 'Administratively prohibited',
+ 2: 'Connect failed',
+ 3: 'Unknown channel type',
+ 4: 'Resource shortage'}"><code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Administratively prohibited</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-op">:</code><code class="variable-ellipsis">...</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="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="DEBUG"></a><span class="summary-name">DEBUG</span> = <code title="10">10</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="DISCONNECT_AUTH_CANCELLED_BY_USER"></a><span class="summary-name">DISCONNECT_AUTH_CANCELLED_BY_USER</span> = <code title="13">13</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="DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE"></a><span class="summary-name">DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE</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="DISCONNECT_SERVICE_NOT_AVAILABLE"></a><span class="summary-name">DISCONNECT_SERVICE_NOT_AVAILABLE</span> = <code title="7">7</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="ERROR"></a><span class="summary-name">ERROR</span> = <code title="40">40</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="INFO"></a><span class="summary-name">INFO</span> = <code title="20">20</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="MSG_CHANNEL_CLOSE"></a><span class="summary-name">MSG_CHANNEL_CLOSE</span> = <code title="97">97</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="MSG_CHANNEL_DATA"></a><span class="summary-name">MSG_CHANNEL_DATA</span> = <code title="94">94</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="MSG_CHANNEL_EOF"></a><span class="summary-name">MSG_CHANNEL_EOF</span> = <code title="96">96</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="MSG_CHANNEL_EXTENDED_DATA"></a><span class="summary-name">MSG_CHANNEL_EXTENDED_DATA</span> = <code title="95">95</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="MSG_CHANNEL_FAILURE"></a><span class="summary-name">MSG_CHANNEL_FAILURE</span> = <code title="100">100</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="MSG_CHANNEL_OPEN"></a><span class="summary-name">MSG_CHANNEL_OPEN</span> = <code title="90">90</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="MSG_CHANNEL_OPEN_FAILURE"></a><span class="summary-name">MSG_CHANNEL_OPEN_FAILURE</span> = <code title="92">92</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="MSG_CHANNEL_OPEN_SUCCESS"></a><span class="summary-name">MSG_CHANNEL_OPEN_SUCCESS</span> = <code title="91">91</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="MSG_CHANNEL_REQUEST"></a><span class="summary-name">MSG_CHANNEL_REQUEST</span> = <code title="98">98</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="MSG_CHANNEL_SUCCESS"></a><span class="summary-name">MSG_CHANNEL_SUCCESS</span> = <code title="99">99</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="MSG_CHANNEL_WINDOW_ADJUST"></a><span class="summary-name">MSG_CHANNEL_WINDOW_ADJUST</span> = <code title="93">93</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="MSG_DEBUG"></a><span class="summary-name">MSG_DEBUG</span> = <code title="4">4</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="MSG_DISCONNECT"></a><span class="summary-name">MSG_DISCONNECT</span> = <code title="1">1</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="MSG_GLOBAL_REQUEST"></a><span class="summary-name">MSG_GLOBAL_REQUEST</span> = <code title="80">80</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="MSG_IGNORE"></a><span class="summary-name">MSG_IGNORE</span> = <code title="2">2</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="MSG_KEXINIT"></a><span class="summary-name">MSG_KEXINIT</span> = <code title="20">20</code>
+ </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.sftp-module.html#MSG_NAMES" class="summary-name">MSG_NAMES</a> = <code title="{1: 'disconnect',
+ 2: 'ignore',
+ 3: 'unimplemented',
+ 4: 'debug',
+ 5: 'service-request',
+ 6: 'service-accept',
+ 20: 'kexinit',
+ 21: 'newkeys',
+..."><code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">disconnect</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">ignore</code><code class="variable-quote">'</code><code class="variable-op">, </code>3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">unimplemented</code><code class="variable-quote">'</code><code class="variable-op">,</code><code class="variable-ellipsis">...</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="MSG_NEWKEYS"></a><span class="summary-name">MSG_NEWKEYS</span> = <code title="21">21</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="MSG_REQUEST_FAILURE"></a><span class="summary-name">MSG_REQUEST_FAILURE</span> = <code title="82">82</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="MSG_REQUEST_SUCCESS"></a><span class="summary-name">MSG_REQUEST_SUCCESS</span> = <code title="81">81</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="MSG_SERVICE_ACCEPT"></a><span class="summary-name">MSG_SERVICE_ACCEPT</span> = <code title="6">6</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="MSG_SERVICE_REQUEST"></a><span class="summary-name">MSG_SERVICE_REQUEST</span> = <code title="5">5</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="MSG_UNIMPLEMENTED"></a><span class="summary-name">MSG_UNIMPLEMENTED</span> = <code title="3">3</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="MSG_USERAUTH_BANNER"></a><span class="summary-name">MSG_USERAUTH_BANNER</span> = <code title="53">53</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="MSG_USERAUTH_FAILURE"></a><span class="summary-name">MSG_USERAUTH_FAILURE</span> = <code title="51">51</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="MSG_USERAUTH_INFO_REQUEST"></a><span class="summary-name">MSG_USERAUTH_INFO_REQUEST</span> = <code title="60">60</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="MSG_USERAUTH_INFO_RESPONSE"></a><span class="summary-name">MSG_USERAUTH_INFO_RESPONSE</span> = <code title="61">61</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="MSG_USERAUTH_PK_OK"></a><span class="summary-name">MSG_USERAUTH_PK_OK</span> = <code title="60">60</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="MSG_USERAUTH_REQUEST"></a><span class="summary-name">MSG_USERAUTH_REQUEST</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="MSG_USERAUTH_SUCCESS"></a><span class="summary-name">MSG_USERAUTH_SUCCESS</span> = <code title="52">52</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="OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED"></a><span class="summary-name">OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED</span> = <code title="1">1</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="OPEN_FAILED_CONNECT_FAILED"></a><span class="summary-name">OPEN_FAILED_CONNECT_FAILED</span> = <code title="2">2</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="OPEN_FAILED_RESOURCE_SHORTAGE"></a><span class="summary-name">OPEN_FAILED_RESOURCE_SHORTAGE</span> = <code title="4">4</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="OPEN_FAILED_UNKNOWN_CHANNEL_TYPE"></a><span class="summary-name">OPEN_FAILED_UNKNOWN_CHANNEL_TYPE</span> = <code title="3">3</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="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="PY22"></a><span class="summary-name">PY22</span> = <code title="False">False</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="SFTP_BAD_MESSAGE"></a><span class="summary-name">SFTP_BAD_MESSAGE</span> = <code title="5">5</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="SFTP_CONNECTION_LOST"></a><span class="summary-name">SFTP_CONNECTION_LOST</span> = <code title="7">7</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="SFTP_EOF"></a><span class="summary-name">SFTP_EOF</span> = <code title="1">1</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="SFTP_FAILURE"></a><span class="summary-name">SFTP_FAILURE</span> = <code title="4">4</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="SFTP_NO_CONNECTION"></a><span class="summary-name">SFTP_NO_CONNECTION</span> = <code title="6">6</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="SFTP_NO_SUCH_FILE"></a><span class="summary-name">SFTP_NO_SUCH_FILE</span> = <code title="2">2</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="SFTP_OP_UNSUPPORTED"></a><span class="summary-name">SFTP_OP_UNSUPPORTED</span> = <code title="8">8</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="SFTP_PERMISSION_DENIED"></a><span class="summary-name">SFTP_PERMISSION_DENIED</span> = <code title="3">3</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="WARNING"></a><span class="summary-name">WARNING</span> = <code title="30">30</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>
+</table>
+<!-- ==================== VARIABLES DETAILS ==================== -->
+<a name="section-VariablesDetails"></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">Variables Details</span></td>
+</tr>
+</table>
+<a name="SFTP_DESC"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">SFTP_DESC</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-group">[</code><code class="variable-quote">'</code><code class="variable-string">Success</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">End of file</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">No such file</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">Permission denied</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">Failure</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">Bad message</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">No connection</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">Connection lost</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="CMD_NAMES"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">CMD_NAMES</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">init</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">version</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">open</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">close</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 5<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">read</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 6<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">write</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 7<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">lstat</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 8<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">fstat</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="CONNECTION_FAILED_CODE"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">CONNECTION_FAILED_CODE</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Administratively prohibited</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Connect failed</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Unknown channel type</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Resource shortage</code><code class="variable-quote">'</code><code class="variable-group">}</code>
+</pre></td></tr></table>
+</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="MSG_NAMES"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">MSG_NAMES</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">disconnect</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">ignore</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">unimplemented</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">debug</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 5<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">service-request</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 6<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">service-accept</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 20<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">kexinit</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 21<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">newkeys</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+ </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 Jul 6 18:30:27 2008
+ </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.sftp-pysrc.html b/docs/paramiko.sftp-pysrc.html
new file mode 100644
index 0000000..a1b987c
--- /dev/null
+++ b/docs/paramiko.sftp-pysrc.html
@@ -0,0 +1,798 @@
+<?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.sftp</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> ::
+ Module&nbsp;sftp
+ </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.sftp-pysrc.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</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="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>
+<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 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="L24"></a><tt class="py-lineno"> 24</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>
+<a name="L25"></a><tt class="py-lineno"> 25</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-4" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-4', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-5" class="py-name" targets="Module paramiko.channel=paramiko.channel-module.html"><a title="paramiko.channel" class="py-name" href="#" onclick="return doclink('link-5', 'channel', 'link-5');">channel</a></tt> <tt class="py-keyword">import</tt> <tt id="link-6" class="py-name" targets="Class paramiko.Channel=paramiko.Channel-class.html"><a title="paramiko.Channel" class="py-name" href="#" onclick="return doclink('link-6', 'Channel', 'link-6');">Channel</a></tt> </tt>
+<a name="L26"></a><tt class="py-lineno"> 26</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-7" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-7', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-8" class="py-name" targets="Module paramiko.message=paramiko.message-module.html"><a title="paramiko.message" class="py-name" href="#" onclick="return doclink('link-8', 'message', 'link-8');">message</a></tt> <tt class="py-keyword">import</tt> <tt id="link-9" class="py-name" targets="Class paramiko.Message=paramiko.Message-class.html"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-9', 'Message', 'link-9');">Message</a></tt> </tt>
+<a name="L27"></a><tt class="py-lineno"> 27</tt> <tt class="py-line"> </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 id="link-10" class="py-name" targets="Variable paramiko.sftp.CMD_INIT=paramiko.sftp-module.html#CMD_INIT,Variable paramiko.sftp_attr.CMD_INIT=paramiko.sftp_attr-module.html#CMD_INIT,Variable paramiko.sftp_client.CMD_INIT=paramiko.sftp_client-module.html#CMD_INIT,Variable paramiko.sftp_file.CMD_INIT=paramiko.sftp_file-module.html#CMD_INIT,Variable paramiko.sftp_handle.CMD_INIT=paramiko.sftp_handle-module.html#CMD_INIT,Variable paramiko.sftp_server.CMD_INIT=paramiko.sftp_server-module.html#CMD_INIT,Variable paramiko.sftp_si.CMD_INIT=paramiko.sftp_si-module.html#CMD_INIT"><a title="paramiko.sftp.CMD_INIT
+paramiko.sftp_attr.CMD_INIT
+paramiko.sftp_client.CMD_INIT
+paramiko.sftp_file.CMD_INIT
+paramiko.sftp_handle.CMD_INIT
+paramiko.sftp_server.CMD_INIT
+paramiko.sftp_si.CMD_INIT" class="py-name" href="#" onclick="return doclink('link-10', 'CMD_INIT', 'link-10');">CMD_INIT</a></tt><tt class="py-op">,</tt> <tt id="link-11" class="py-name" targets="Variable paramiko.sftp.CMD_VERSION=paramiko.sftp-module.html#CMD_VERSION,Variable paramiko.sftp_attr.CMD_VERSION=paramiko.sftp_attr-module.html#CMD_VERSION,Variable paramiko.sftp_client.CMD_VERSION=paramiko.sftp_client-module.html#CMD_VERSION,Variable paramiko.sftp_file.CMD_VERSION=paramiko.sftp_file-module.html#CMD_VERSION,Variable paramiko.sftp_handle.CMD_VERSION=paramiko.sftp_handle-module.html#CMD_VERSION,Variable paramiko.sftp_server.CMD_VERSION=paramiko.sftp_server-module.html#CMD_VERSION,Variable paramiko.sftp_si.CMD_VERSION=paramiko.sftp_si-module.html#CMD_VERSION"><a title="paramiko.sftp.CMD_VERSION
+paramiko.sftp_attr.CMD_VERSION
+paramiko.sftp_client.CMD_VERSION
+paramiko.sftp_file.CMD_VERSION
+paramiko.sftp_handle.CMD_VERSION
+paramiko.sftp_server.CMD_VERSION
+paramiko.sftp_si.CMD_VERSION" class="py-name" href="#" onclick="return doclink('link-11', 'CMD_VERSION', 'link-11');">CMD_VERSION</a></tt><tt class="py-op">,</tt> <tt id="link-12" 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-12', 'CMD_OPEN', 'link-12');">CMD_OPEN</a></tt><tt class="py-op">,</tt> <tt id="link-13" 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-13', 'CMD_CLOSE', 'link-13');">CMD_CLOSE</a></tt><tt class="py-op">,</tt> <tt id="link-14" 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-14', 'CMD_READ', 'link-14');">CMD_READ</a></tt><tt class="py-op">,</tt> <tt id="link-15" 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-15', 'CMD_WRITE', 'link-15');">CMD_WRITE</a></tt><tt class="py-op">,</tt> <tt id="link-16" 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-16', 'CMD_LSTAT', 'link-16');">CMD_LSTAT</a></tt><tt class="py-op">,</tt> <tt id="link-17" 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-17', 'CMD_FSTAT', 'link-17');">CMD_FSTAT</a></tt><tt class="py-op">,</tt> \ </tt>
+<a name="L30"></a><tt class="py-lineno"> 30</tt> <tt class="py-line"> <tt id="link-18" 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-18', 'CMD_SETSTAT', 'link-18');">CMD_SETSTAT</a></tt><tt class="py-op">,</tt> <tt id="link-19" 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-19', 'CMD_FSETSTAT', 'link-19');">CMD_FSETSTAT</a></tt><tt class="py-op">,</tt> <tt id="link-20" 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-20', 'CMD_OPENDIR', 'link-20');">CMD_OPENDIR</a></tt><tt class="py-op">,</tt> <tt id="link-21" 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-21', 'CMD_READDIR', 'link-21');">CMD_READDIR</a></tt><tt class="py-op">,</tt> <tt id="link-22" 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-22', 'CMD_REMOVE', 'link-22');">CMD_REMOVE</a></tt><tt class="py-op">,</tt> <tt id="link-23" 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-23', 'CMD_MKDIR', 'link-23');">CMD_MKDIR</a></tt><tt class="py-op">,</tt> \ </tt>
+<a name="L31"></a><tt class="py-lineno"> 31</tt> <tt class="py-line"> <tt id="link-24" 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-24', 'CMD_RMDIR', 'link-24');">CMD_RMDIR</a></tt><tt class="py-op">,</tt> <tt id="link-25" 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-25', 'CMD_REALPATH', 'link-25');">CMD_REALPATH</a></tt><tt class="py-op">,</tt> <tt id="link-26" 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-26', 'CMD_STAT', 'link-26');">CMD_STAT</a></tt><tt class="py-op">,</tt> <tt id="link-27" 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-27', 'CMD_RENAME', 'link-27');">CMD_RENAME</a></tt><tt class="py-op">,</tt> <tt id="link-28" 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-28', 'CMD_READLINK', 'link-28');">CMD_READLINK</a></tt><tt class="py-op">,</tt> <tt id="link-29" 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-29', 'CMD_SYMLINK', 'link-29');">CMD_SYMLINK</a></tt> \ </tt>
+<a name="L32"></a><tt class="py-lineno"> 32</tt> <tt class="py-line"> <tt class="py-op">=</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-number">21</tt><tt class="py-op">)</tt> </tt>
+<a name="L33"></a><tt class="py-lineno"> 33</tt> <tt class="py-line"><tt id="link-30" 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-30', 'CMD_STATUS', 'link-30');">CMD_STATUS</a></tt><tt class="py-op">,</tt> <tt id="link-31" 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-31', 'CMD_HANDLE', 'link-31');">CMD_HANDLE</a></tt><tt class="py-op">,</tt> <tt id="link-32" 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-32', 'CMD_DATA', 'link-32');">CMD_DATA</a></tt><tt class="py-op">,</tt> <tt id="link-33" 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-33', 'CMD_NAME', 'link-33');">CMD_NAME</a></tt><tt class="py-op">,</tt> <tt id="link-34" 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-34', 'CMD_ATTRS', 'link-34');">CMD_ATTRS</a></tt> <tt class="py-op">=</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">101</tt><tt class="py-op">,</tt> <tt class="py-number">106</tt><tt class="py-op">)</tt> </tt>
+<a name="L34"></a><tt class="py-lineno"> 34</tt> <tt class="py-line"><tt id="link-35" 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-35', 'CMD_EXTENDED', 'link-35');">CMD_EXTENDED</a></tt><tt class="py-op">,</tt> <tt id="link-36" 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-36', 'CMD_EXTENDED_REPLY', 'link-36');">CMD_EXTENDED_REPLY</a></tt> <tt class="py-op">=</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">200</tt><tt class="py-op">,</tt> <tt class="py-number">202</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 id="link-37" 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-37', 'SFTP_OK', 'link-37');">SFTP_OK</a></tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt> <tt class="py-line"><tt id="link-38" 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-38', 'SFTP_EOF', 'link-38');">SFTP_EOF</a></tt><tt class="py-op">,</tt> <tt id="link-39" 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-39', 'SFTP_NO_SUCH_FILE', 'link-39');">SFTP_NO_SUCH_FILE</a></tt><tt class="py-op">,</tt> <tt id="link-40" 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-40', 'SFTP_PERMISSION_DENIED', 'link-40');">SFTP_PERMISSION_DENIED</a></tt><tt class="py-op">,</tt> <tt id="link-41" 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
+paramiko.sftp_file.SFTP_FAILURE
+paramiko.sftp_handle.SFTP_FAILURE
+paramiko.sftp_server.SFTP_FAILURE
+paramiko.sftp_si.SFTP_FAILURE" class="py-name" href="#" onclick="return doclink('link-41', 'SFTP_FAILURE', 'link-41');">SFTP_FAILURE</a></tt><tt class="py-op">,</tt> <tt id="link-42" class="py-name" targets="Variable paramiko.sftp.SFTP_BAD_MESSAGE=paramiko.sftp-module.html#SFTP_BAD_MESSAGE,Variable paramiko.sftp_attr.SFTP_BAD_MESSAGE=paramiko.sftp_attr-module.html#SFTP_BAD_MESSAGE,Variable paramiko.sftp_client.SFTP_BAD_MESSAGE=paramiko.sftp_client-module.html#SFTP_BAD_MESSAGE,Variable paramiko.sftp_file.SFTP_BAD_MESSAGE=paramiko.sftp_file-module.html#SFTP_BAD_MESSAGE,Variable paramiko.sftp_handle.SFTP_BAD_MESSAGE=paramiko.sftp_handle-module.html#SFTP_BAD_MESSAGE,Variable paramiko.sftp_server.SFTP_BAD_MESSAGE=paramiko.sftp_server-module.html#SFTP_BAD_MESSAGE,Variable paramiko.sftp_si.SFTP_BAD_MESSAGE=paramiko.sftp_si-module.html#SFTP_BAD_MESSAGE"><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-42', 'SFTP_BAD_MESSAGE', 'link-42');">SFTP_BAD_MESSAGE</a></tt><tt class="py-op">,</tt> \ </tt>
+<a name="L38"></a><tt class="py-lineno"> 38</tt> <tt class="py-line"> <tt id="link-43" class="py-name" targets="Variable paramiko.sftp.SFTP_NO_CONNECTION=paramiko.sftp-module.html#SFTP_NO_CONNECTION,Variable paramiko.sftp_attr.SFTP_NO_CONNECTION=paramiko.sftp_attr-module.html#SFTP_NO_CONNECTION,Variable paramiko.sftp_client.SFTP_NO_CONNECTION=paramiko.sftp_client-module.html#SFTP_NO_CONNECTION,Variable paramiko.sftp_file.SFTP_NO_CONNECTION=paramiko.sftp_file-module.html#SFTP_NO_CONNECTION,Variable paramiko.sftp_handle.SFTP_NO_CONNECTION=paramiko.sftp_handle-module.html#SFTP_NO_CONNECTION,Variable paramiko.sftp_server.SFTP_NO_CONNECTION=paramiko.sftp_server-module.html#SFTP_NO_CONNECTION,Variable paramiko.sftp_si.SFTP_NO_CONNECTION=paramiko.sftp_si-module.html#SFTP_NO_CONNECTION"><a title="paramiko.sftp.SFTP_NO_CONNECTION
+paramiko.sftp_attr.SFTP_NO_CONNECTION
+paramiko.sftp_client.SFTP_NO_CONNECTION
+paramiko.sftp_file.SFTP_NO_CONNECTION
+paramiko.sftp_handle.SFTP_NO_CONNECTION
+paramiko.sftp_server.SFTP_NO_CONNECTION
+paramiko.sftp_si.SFTP_NO_CONNECTION" class="py-name" href="#" onclick="return doclink('link-43', 'SFTP_NO_CONNECTION', 'link-43');">SFTP_NO_CONNECTION</a></tt><tt class="py-op">,</tt> <tt id="link-44" class="py-name" targets="Variable paramiko.sftp.SFTP_CONNECTION_LOST=paramiko.sftp-module.html#SFTP_CONNECTION_LOST,Variable paramiko.sftp_attr.SFTP_CONNECTION_LOST=paramiko.sftp_attr-module.html#SFTP_CONNECTION_LOST,Variable paramiko.sftp_client.SFTP_CONNECTION_LOST=paramiko.sftp_client-module.html#SFTP_CONNECTION_LOST,Variable paramiko.sftp_file.SFTP_CONNECTION_LOST=paramiko.sftp_file-module.html#SFTP_CONNECTION_LOST,Variable paramiko.sftp_handle.SFTP_CONNECTION_LOST=paramiko.sftp_handle-module.html#SFTP_CONNECTION_LOST,Variable paramiko.sftp_server.SFTP_CONNECTION_LOST=paramiko.sftp_server-module.html#SFTP_CONNECTION_LOST,Variable paramiko.sftp_si.SFTP_CONNECTION_LOST=paramiko.sftp_si-module.html#SFTP_CONNECTION_LOST"><a title="paramiko.sftp.SFTP_CONNECTION_LOST
+paramiko.sftp_attr.SFTP_CONNECTION_LOST
+paramiko.sftp_client.SFTP_CONNECTION_LOST
+paramiko.sftp_file.SFTP_CONNECTION_LOST
+paramiko.sftp_handle.SFTP_CONNECTION_LOST
+paramiko.sftp_server.SFTP_CONNECTION_LOST
+paramiko.sftp_si.SFTP_CONNECTION_LOST" class="py-name" href="#" onclick="return doclink('link-44', 'SFTP_CONNECTION_LOST', 'link-44');">SFTP_CONNECTION_LOST</a></tt><tt class="py-op">,</tt> <tt id="link-45" 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-45', 'SFTP_OP_UNSUPPORTED', 'link-45');">SFTP_OP_UNSUPPORTED</a></tt> <tt class="py-op">=</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-number">9</tt><tt class="py-op">)</tt> </tt>
+<a name="L39"></a><tt class="py-lineno"> 39</tt> <tt class="py-line"> </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</tt> <tt class="py-line"><tt id="link-46" class="py-name" targets="Variable paramiko.sftp.SFTP_DESC=paramiko.sftp-module.html#SFTP_DESC,Variable paramiko.sftp_attr.SFTP_DESC=paramiko.sftp_attr-module.html#SFTP_DESC,Variable paramiko.sftp_client.SFTP_DESC=paramiko.sftp_client-module.html#SFTP_DESC,Variable paramiko.sftp_file.SFTP_DESC=paramiko.sftp_file-module.html#SFTP_DESC,Variable paramiko.sftp_handle.SFTP_DESC=paramiko.sftp_handle-module.html#SFTP_DESC,Variable paramiko.sftp_server.SFTP_DESC=paramiko.sftp_server-module.html#SFTP_DESC,Variable paramiko.sftp_si.SFTP_DESC=paramiko.sftp_si-module.html#SFTP_DESC"><a title="paramiko.sftp.SFTP_DESC
+paramiko.sftp_attr.SFTP_DESC
+paramiko.sftp_client.SFTP_DESC
+paramiko.sftp_file.SFTP_DESC
+paramiko.sftp_handle.SFTP_DESC
+paramiko.sftp_server.SFTP_DESC
+paramiko.sftp_si.SFTP_DESC" class="py-name" href="#" onclick="return doclink('link-46', 'SFTP_DESC', 'link-46');">SFTP_DESC</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt> <tt class="py-string">'Success'</tt><tt class="py-op">,</tt> </tt>
+<a name="L41"></a><tt class="py-lineno"> 41</tt> <tt class="py-line"> <tt class="py-string">'End of file'</tt><tt class="py-op">,</tt> </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt> <tt class="py-line"> <tt class="py-string">'No such file'</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">'Permission denied'</tt><tt class="py-op">,</tt> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"> <tt class="py-string">'Failure'</tt><tt class="py-op">,</tt> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt> <tt class="py-line"> <tt class="py-string">'Bad message'</tt><tt class="py-op">,</tt> </tt>
+<a name="L46"></a><tt class="py-lineno"> 46</tt> <tt class="py-line"> <tt class="py-string">'No connection'</tt><tt class="py-op">,</tt> </tt>
+<a name="L47"></a><tt class="py-lineno"> 47</tt> <tt class="py-line"> <tt class="py-string">'Connection lost'</tt><tt class="py-op">,</tt> </tt>
+<a name="L48"></a><tt class="py-lineno"> 48</tt> <tt class="py-line"> <tt class="py-string">'Operation unsupported'</tt> <tt class="py-op">]</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 id="link-47" 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-47', 'SFTP_FLAG_READ', 'link-47');">SFTP_FLAG_READ</a></tt> <tt class="py-op">=</tt> <tt class="py-number">0x1</tt> </tt>
+<a name="L51"></a><tt class="py-lineno"> 51</tt> <tt class="py-line"><tt id="link-48" 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-48', 'SFTP_FLAG_WRITE', 'link-48');">SFTP_FLAG_WRITE</a></tt> <tt class="py-op">=</tt> <tt class="py-number">0x2</tt> </tt>
+<a name="L52"></a><tt class="py-lineno"> 52</tt> <tt class="py-line"><tt id="link-49" 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-49', 'SFTP_FLAG_APPEND', 'link-49');">SFTP_FLAG_APPEND</a></tt> <tt class="py-op">=</tt> <tt class="py-number">0x4</tt> </tt>
+<a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"><tt id="link-50" 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-50', 'SFTP_FLAG_CREATE', 'link-50');">SFTP_FLAG_CREATE</a></tt> <tt class="py-op">=</tt> <tt class="py-number">0x8</tt> </tt>
+<a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line"><tt id="link-51" 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-51', 'SFTP_FLAG_TRUNC', 'link-51');">SFTP_FLAG_TRUNC</a></tt> <tt class="py-op">=</tt> <tt class="py-number">0x10</tt> </tt>
+<a name="L55"></a><tt class="py-lineno"> 55</tt> <tt class="py-line"><tt id="link-52" 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-52', 'SFTP_FLAG_EXCL', 'link-52');">SFTP_FLAG_EXCL</a></tt> <tt class="py-op">=</tt> <tt class="py-number">0x20</tt> </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 id="link-53" class="py-name" targets="Variable paramiko.sftp._VERSION=paramiko.sftp-module.html#_VERSION"><a title="paramiko.sftp._VERSION" class="py-name" href="#" onclick="return doclink('link-53', '_VERSION', 'link-53');">_VERSION</a></tt> <tt class="py-op">=</tt> <tt class="py-number">3</tt> </tt>
+<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
+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-54', 'CMD_NAMES', 'link-54');">CMD_NAMES</a></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 id="link-55" class="py-name"><a title="paramiko.sftp.CMD_INIT
+paramiko.sftp_attr.CMD_INIT
+paramiko.sftp_client.CMD_INIT
+paramiko.sftp_file.CMD_INIT
+paramiko.sftp_handle.CMD_INIT
+paramiko.sftp_server.CMD_INIT
+paramiko.sftp_si.CMD_INIT" class="py-name" href="#" onclick="return doclink('link-55', 'CMD_INIT', 'link-10');">CMD_INIT</a></tt><tt class="py-op">:</tt> <tt class="py-string">'init'</tt><tt class="py-op">,</tt> </tt>
+<a name="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"> <tt id="link-56" class="py-name"><a title="paramiko.sftp.CMD_VERSION
+paramiko.sftp_attr.CMD_VERSION
+paramiko.sftp_client.CMD_VERSION
+paramiko.sftp_file.CMD_VERSION
+paramiko.sftp_handle.CMD_VERSION
+paramiko.sftp_server.CMD_VERSION
+paramiko.sftp_si.CMD_VERSION" class="py-name" href="#" onclick="return doclink('link-56', 'CMD_VERSION', 'link-11');">CMD_VERSION</a></tt><tt class="py-op">:</tt> <tt class="py-string">'version'</tt><tt class="py-op">,</tt> </tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line"> <tt id="link-57" class="py-name"><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-57', 'CMD_OPEN', 'link-12');">CMD_OPEN</a></tt><tt class="py-op">:</tt> <tt class="py-string">'open'</tt><tt class="py-op">,</tt> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"> <tt id="link-58" class="py-name"><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-58', 'CMD_CLOSE', 'link-13');">CMD_CLOSE</a></tt><tt class="py-op">:</tt> <tt class="py-string">'close'</tt><tt class="py-op">,</tt> </tt>
+<a name="L66"></a><tt class="py-lineno"> 66</tt> <tt class="py-line"> <tt id="link-59" class="py-name"><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-59', 'CMD_READ', 'link-14');">CMD_READ</a></tt><tt class="py-op">:</tt> <tt class="py-string">'read'</tt><tt class="py-op">,</tt> </tt>
+<a name="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line"> <tt id="link-60" class="py-name"><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-60', 'CMD_WRITE', 'link-15');">CMD_WRITE</a></tt><tt class="py-op">:</tt> <tt class="py-string">'write'</tt><tt class="py-op">,</tt> </tt>
+<a name="L68"></a><tt class="py-lineno"> 68</tt> <tt class="py-line"> <tt id="link-61" class="py-name"><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-61', 'CMD_LSTAT', 'link-16');">CMD_LSTAT</a></tt><tt class="py-op">:</tt> <tt class="py-string">'lstat'</tt><tt class="py-op">,</tt> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"> <tt id="link-62" class="py-name"><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-62', 'CMD_FSTAT', 'link-17');">CMD_FSTAT</a></tt><tt class="py-op">:</tt> <tt class="py-string">'fstat'</tt><tt class="py-op">,</tt> </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line"> <tt id="link-63" 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-63', 'CMD_SETSTAT', 'link-18');">CMD_SETSTAT</a></tt><tt class="py-op">:</tt> <tt class="py-string">'setstat'</tt><tt class="py-op">,</tt> </tt>
+<a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line"> <tt id="link-64" class="py-name"><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-64', 'CMD_FSETSTAT', 'link-19');">CMD_FSETSTAT</a></tt><tt class="py-op">:</tt> <tt class="py-string">'fsetstat'</tt><tt class="py-op">,</tt> </tt>
+<a name="L72"></a><tt class="py-lineno"> 72</tt> <tt class="py-line"> <tt id="link-65" class="py-name"><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-65', 'CMD_OPENDIR', 'link-20');">CMD_OPENDIR</a></tt><tt class="py-op">:</tt> <tt class="py-string">'opendir'</tt><tt class="py-op">,</tt> </tt>
+<a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"> <tt id="link-66" class="py-name"><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-66', 'CMD_READDIR', 'link-21');">CMD_READDIR</a></tt><tt class="py-op">:</tt> <tt class="py-string">'readdir'</tt><tt class="py-op">,</tt> </tt>
+<a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"> <tt id="link-67" class="py-name"><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-22');">CMD_REMOVE</a></tt><tt class="py-op">:</tt> <tt class="py-string">'remove'</tt><tt class="py-op">,</tt> </tt>
+<a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"> <tt id="link-68" class="py-name"><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-68', 'CMD_MKDIR', 'link-23');">CMD_MKDIR</a></tt><tt class="py-op">:</tt> <tt class="py-string">'mkdir'</tt><tt class="py-op">,</tt> </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"> <tt id="link-69" class="py-name"><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-69', 'CMD_RMDIR', 'link-24');">CMD_RMDIR</a></tt><tt class="py-op">:</tt> <tt class="py-string">'rmdir'</tt><tt class="py-op">,</tt> </tt>
+<a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"> <tt id="link-70" class="py-name"><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-70', 'CMD_REALPATH', 'link-25');">CMD_REALPATH</a></tt><tt class="py-op">:</tt> <tt class="py-string">'realpath'</tt><tt class="py-op">,</tt> </tt>
+<a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"> <tt id="link-71" class="py-name"><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-71', 'CMD_STAT', 'link-26');">CMD_STAT</a></tt><tt class="py-op">:</tt> <tt class="py-string">'stat'</tt><tt class="py-op">,</tt> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line"> <tt id="link-72" class="py-name"><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-72', 'CMD_RENAME', 'link-27');">CMD_RENAME</a></tt><tt class="py-op">:</tt> <tt class="py-string">'rename'</tt><tt class="py-op">,</tt> </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"> <tt id="link-73" class="py-name"><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-73', 'CMD_READLINK', 'link-28');">CMD_READLINK</a></tt><tt class="py-op">:</tt> <tt class="py-string">'readlink'</tt><tt class="py-op">,</tt> </tt>
+<a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"> <tt id="link-74" class="py-name"><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-74', 'CMD_SYMLINK', 'link-29');">CMD_SYMLINK</a></tt><tt class="py-op">:</tt> <tt class="py-string">'symlink'</tt><tt class="py-op">,</tt> </tt>
+<a name="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"> <tt id="link-75" class="py-name"><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-75', 'CMD_STATUS', 'link-30');">CMD_STATUS</a></tt><tt class="py-op">:</tt> <tt class="py-string">'status'</tt><tt class="py-op">,</tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"> <tt id="link-76" 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-76', 'CMD_HANDLE', 'link-31');">CMD_HANDLE</a></tt><tt class="py-op">:</tt> <tt class="py-string">'handle'</tt><tt class="py-op">,</tt> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"> <tt id="link-77" class="py-name"><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-77', 'CMD_DATA', 'link-32');">CMD_DATA</a></tt><tt class="py-op">:</tt> <tt class="py-string">'data'</tt><tt class="py-op">,</tt> </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"> <tt id="link-78" 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-78', 'CMD_NAME', 'link-33');">CMD_NAME</a></tt><tt class="py-op">:</tt> <tt class="py-string">'name'</tt><tt class="py-op">,</tt> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"> <tt id="link-79" 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-79', 'CMD_ATTRS', 'link-34');">CMD_ATTRS</a></tt><tt class="py-op">:</tt> <tt class="py-string">'attrs'</tt><tt class="py-op">,</tt> </tt>
+<a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"> <tt id="link-80" class="py-name"><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-80', 'CMD_EXTENDED', 'link-35');">CMD_EXTENDED</a></tt><tt class="py-op">:</tt> <tt class="py-string">'extended'</tt><tt class="py-op">,</tt> </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</tt> <tt class="py-line"> <tt id="link-81" class="py-name"><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-81', 'CMD_EXTENDED_REPLY', 'link-36');">CMD_EXTENDED_REPLY</a></tt><tt class="py-op">:</tt> <tt class="py-string">'extended_reply'</tt> </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"> <tt class="py-op">}</tt> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"> </tt>
+<a name="SFTPError"></a><div id="SFTPError-def"><a name="L92"></a><tt class="py-lineno"> 92</tt> <a class="py-toggle" href="#" id="SFTPError-toggle" onclick="return toggle('SFTPError');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.sftp.SFTPError-class.html">SFTPError</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="SFTPError-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="SFTPError-expanded"><a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+</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="BaseSFTP"></a><div id="BaseSFTP-def"><a name="L96"></a><tt class="py-lineno"> 96</tt> <a class="py-toggle" href="#" id="BaseSFTP-toggle" onclick="return toggle('BaseSFTP');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.sftp.BaseSFTP-class.html">BaseSFTP</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="BaseSFTP-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="BaseSFTP-expanded"><a name="BaseSFTP.__init__"></a><div id="BaseSFTP.__init__-def"><a name="L97"></a><tt class="py-lineno"> 97</tt> <a class="py-toggle" href="#" id="BaseSFTP.__init__-toggle" onclick="return toggle('BaseSFTP.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp.BaseSFTP-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="BaseSFTP.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BaseSFTP.__init__-expanded"><a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-82" 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-82', 'logger', 'link-82');">logger</a></tt> <tt class="py-op">=</tt> <tt id="link-83" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-83', 'util', 'link-3');">util</a></tt><tt class="py-op">.</tt><tt id="link-84" 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-84', 'get_logger', 'link-84');">get_logger</a></tt><tt class="py-op">(</tt><tt class="py-string">'paramiko.sftp'</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 class="py-name">sock</tt> <tt class="py-op">=</tt> <tt class="py-name">None</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">ultra_debug</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+</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="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
+paramiko.sftp_attr.CMD_INIT
+paramiko.sftp_client.CMD_INIT
+paramiko.sftp_file.CMD_INIT
+paramiko.sftp_handle.CMD_INIT
+paramiko.sftp_server.CMD_INIT
+paramiko.sftp_si.CMD_INIT" class="py-name" href="#" onclick="return doclink('link-85', 'CMD_INIT', 'link-10');">CMD_INIT</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;I'</tt><tt class="py-op">,</tt> <tt id="link-86" class="py-name"><a title="paramiko.sftp._VERSION" class="py-name" href="#" onclick="return doclink('link-86', '_VERSION', 'link-53');">_VERSION</a></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">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="L109"></a><tt class="py-lineno">109</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_VERSION
+paramiko.sftp_attr.CMD_VERSION
+paramiko.sftp_client.CMD_VERSION
+paramiko.sftp_file.CMD_VERSION
+paramiko.sftp_handle.CMD_VERSION
+paramiko.sftp_server.CMD_VERSION
+paramiko.sftp_si.CMD_VERSION" class="py-name" href="#" onclick="return doclink('link-87', 'CMD_VERSION', 'link-11');">CMD_VERSION</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">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>
+</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="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
+paramiko.sftp_file.CMD_INIT
+paramiko.sftp_handle.CMD_INIT
+paramiko.sftp_server.CMD_INIT
+paramiko.sftp_si.CMD_INIT" class="py-name" href="#" onclick="return doclink('link-89', 'CMD_INIT', 'link-10');">CMD_INIT</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-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="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
+paramiko.Message.add" class="py-name" href="#" onclick="return doclink('link-94', 'add', 'link-94');">add</a></tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-name">extension_pairs</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">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_packet</tt><tt class="py-op">(</tt><tt id="link-95" class="py-name"><a title="paramiko.sftp.CMD_VERSION
+paramiko.sftp_attr.CMD_VERSION
+paramiko.sftp_client.CMD_VERSION
+paramiko.sftp_file.CMD_VERSION
+paramiko.sftp_handle.CMD_VERSION
+paramiko.sftp_server.CMD_VERSION
+paramiko.sftp_si.CMD_VERSION" class="py-name" href="#" onclick="return doclink('link-95', 'CMD_VERSION', 'link-11');">CMD_VERSION</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>
+<a name="L129"></a><tt class="py-lineno">129</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">version</tt> </tt>
+</div><a name="L130"></a><tt class="py-lineno">130</tt> <tt class="py-line"> </tt>
+<a name="BaseSFTP._log"></a><div id="BaseSFTP._log-def"><a name="L131"></a><tt class="py-lineno">131</tt> <a class="py-toggle" href="#" id="BaseSFTP._log-toggle" onclick="return toggle('BaseSFTP._log');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp.BaseSFTP-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="BaseSFTP._log-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BaseSFTP._log-expanded"><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 id="link-96" class="py-name"><a title="paramiko.logging22.logger" class="py-name" href="#" onclick="return doclink('link-96', 'logger', 'link-82');">logger</a></tt><tt class="py-op">.</tt><tt id="link-97" 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-97', 'log', 'link-97');">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="L133"></a><tt class="py-lineno">133</tt> <tt class="py-line"> </tt>
+<a name="BaseSFTP._write_all"></a><div id="BaseSFTP._write_all-def"><a name="L134"></a><tt class="py-lineno">134</tt> <a class="py-toggle" href="#" id="BaseSFTP._write_all-toggle" onclick="return toggle('BaseSFTP._write_all');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp.BaseSFTP-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">out</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="BaseSFTP._write_all-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BaseSFTP._write_all-expanded"><a name="L135"></a><tt class="py-lineno">135</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">&gt;</tt> <tt class="py-number">0</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">n</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-98" 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-98', 'send', 'link-98');">send</a></tt><tt class="py-op">(</tt><tt class="py-name">out</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">n</tt> <tt class="py-op">&lt;=</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-keyword">raise</tt> <tt class="py-name">EOFError</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">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 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>
+<a name="L141"></a><tt class="py-lineno">141</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">n</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-keyword">return</tt> </tt>
+</div><a name="L143"></a><tt class="py-lineno">143</tt> <tt class="py-line"> </tt>
+<a name="BaseSFTP._read_all"></a><div id="BaseSFTP._read_all-def"><a name="L144"></a><tt class="py-lineno">144</tt> <a class="py-toggle" href="#" id="BaseSFTP._read_all-toggle" onclick="return toggle('BaseSFTP._read_all');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp.BaseSFTP-class.html#_read_all">_read_all</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="BaseSFTP._read_all-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BaseSFTP._read_all-expanded"><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-string">''</tt> </tt>
+<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="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
+paramiko.SFTPHandle.write" class="py-name" href="#" onclick="return doclink('link-100', 'write', 'link-100');">write</a></tt><tt class="py-op">,</tt> <tt class="py-name">err</tt> <tt class="py-op">=</tt> <tt class="py-name">select</tt><tt class="py-op">.</tt><tt class="py-name">select</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 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 class="py-number">0.1</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">len</tt><tt class="py-op">(</tt><tt id="link-101" class="py-name"><a title="paramiko.BufferedFile.read
+paramiko.SFTPHandle.read
+paramiko.buffered_pipe.BufferedPipe.read" class="py-name" href="#" onclick="return doclink('link-101', 'read', 'link-99');">read</a></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="L156"></a><tt class="py-lineno">156</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">sock</tt><tt class="py-op">.</tt><tt id="link-102" 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-102', 'recv', 'link-102');">recv</a></tt><tt class="py-op">(</tt><tt class="py-name">n</tt><tt class="py-op">)</tt> </tt>
+<a name="L157"></a><tt class="py-lineno">157</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
+<a name="L158"></a><tt class="py-lineno">158</tt> <tt class="py-line"> <tt class="py-keyword">else</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">x</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-103" class="py-name"><a title="paramiko.Channel.recv
+paramiko.win_pageant.PageantConnection.recv" class="py-name" href="#" onclick="return doclink('link-103', 'recv', 'link-102');">recv</a></tt><tt class="py-op">(</tt><tt class="py-name">n</tt><tt class="py-op">)</tt> </tt>
+<a name="L160"></a><tt class="py-lineno">160</tt> <tt class="py-line"> </tt>
+<a name="L161"></a><tt class="py-lineno">161</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">0</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">raise</tt> <tt class="py-name">EOFError</tt><tt class="py-op">(</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">out</tt> <tt class="py-op">+=</tt> <tt class="py-name">x</tt> </tt>
+<a name="L164"></a><tt class="py-lineno">164</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">x</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">return</tt> <tt class="py-name">out</tt> </tt>
+</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="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
+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-106', 'DEBUG', 'link-106');">DEBUG</a></tt><tt class="py-op">,</tt> <tt id="link-107" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-107', 'util', 'link-3');">util</a></tt><tt class="py-op">.</tt><tt id="link-108" class="py-name" targets="Function paramiko.util.format_binary()=paramiko.util-module.html#format_binary"><a title="paramiko.util.format_binary" class="py-name" href="#" onclick="return doclink('link-108', 'format_binary', 'link-108');">format_binary</a></tt><tt class="py-op">(</tt><tt class="py-name">out</tt><tt class="py-op">,</tt> <tt class="py-string">'OUT: '</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">self</tt><tt class="py-op">.</tt><tt class="py-name">_write_all</tt><tt class="py-op">(</tt><tt class="py-name">out</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L173"></a><tt class="py-lineno">173</tt> <tt class="py-line"> </tt>
+<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="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>
+<a name="L182"></a><tt class="py-lineno">182</tt> <tt 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="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">_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
+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-110', 'DEBUG', 'link-106');">DEBUG</a></tt><tt class="py-op">,</tt> <tt id="link-111" class="py-name"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-111', 'util', 'link-3');">util</a></tt><tt class="py-op">.</tt><tt id="link-112" class="py-name"><a title="paramiko.util.format_binary" class="py-name" href="#" onclick="return doclink('link-112', 'format_binary', 'link-108');">format_binary</a></tt><tt class="py-op">(</tt><tt class="py-name">data</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="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="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">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<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 Jul 6 18:30:38 2008
+ </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.sftp_attr-module.html b/docs/paramiko.sftp_attr-module.html
new file mode 100644
index 0000000..f13bc2f
--- /dev/null
+++ b/docs/paramiko.sftp_attr-module.html
@@ -0,0 +1,898 @@
+<?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.sftp_attr</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> ::
+ Module&nbsp;sftp_attr
+ </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.sftp_attr-module.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module sftp_attr</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.sftp_attr-pysrc.html">source&nbsp;code</a></span></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="AUTH_FAILED"></a><span class="summary-name">AUTH_FAILED</span> = <code title="2">2</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_PARTIALLY_SUCCESSFUL"></a><span class="summary-name">AUTH_PARTIALLY_SUCCESSFUL</span> = <code title="1">1</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_SUCCESSFUL"></a><span class="summary-name">AUTH_SUCCESSFUL</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="CMD_ATTRS"></a><span class="summary-name">CMD_ATTRS</span> = <code title="105">105</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="CMD_CLOSE"></a><span class="summary-name">CMD_CLOSE</span> = <code title="4">4</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="CMD_DATA"></a><span class="summary-name">CMD_DATA</span> = <code title="103">103</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="CMD_EXTENDED"></a><span class="summary-name">CMD_EXTENDED</span> = <code title="200">200</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="CMD_EXTENDED_REPLY"></a><span class="summary-name">CMD_EXTENDED_REPLY</span> = <code title="201">201</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="CMD_FSETSTAT"></a><span class="summary-name">CMD_FSETSTAT</span> = <code title="10">10</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="CMD_FSTAT"></a><span class="summary-name">CMD_FSTAT</span> = <code title="8">8</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="CMD_HANDLE"></a><span class="summary-name">CMD_HANDLE</span> = <code title="102">102</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="CMD_INIT"></a><span class="summary-name">CMD_INIT</span> = <code title="1">1</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="CMD_LSTAT"></a><span class="summary-name">CMD_LSTAT</span> = <code title="7">7</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="CMD_MKDIR"></a><span class="summary-name">CMD_MKDIR</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="CMD_NAME"></a><span class="summary-name">CMD_NAME</span> = <code title="104">104</code>
+ </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.sftp_attr-module.html#CMD_NAMES" class="summary-name">CMD_NAMES</a> = <code title="{1: 'init',
+ 2: 'version',
+ 3: 'open',
+ 4: 'close',
+ 5: 'read',
+ 6: 'write',
+ 7: 'lstat',
+ 8: 'fstat',
+..."><code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">init</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">version</code><code class="variable-quote">'</code><code class="variable-op">, </code>3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">open</code><code class="variable-quote">'</code><code class="variable-op">, </code>4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">close</code><code class="variable-quote">'</code><code class="variable-op">, </code>5<code class="variable-ellipsis">...</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="CMD_OPEN"></a><span class="summary-name">CMD_OPEN</span> = <code title="3">3</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="CMD_OPENDIR"></a><span class="summary-name">CMD_OPENDIR</span> = <code title="11">11</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="CMD_READ"></a><span class="summary-name">CMD_READ</span> = <code title="5">5</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="CMD_READDIR"></a><span class="summary-name">CMD_READDIR</span> = <code title="12">12</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="CMD_READLINK"></a><span class="summary-name">CMD_READLINK</span> = <code title="19">19</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="CMD_REALPATH"></a><span class="summary-name">CMD_REALPATH</span> = <code title="16">16</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="CMD_REMOVE"></a><span class="summary-name">CMD_REMOVE</span> = <code title="13">13</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="CMD_RENAME"></a><span class="summary-name">CMD_RENAME</span> = <code title="18">18</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="CMD_RMDIR"></a><span class="summary-name">CMD_RMDIR</span> = <code title="15">15</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="CMD_SETSTAT"></a><span class="summary-name">CMD_SETSTAT</span> = <code title="9">9</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="CMD_STAT"></a><span class="summary-name">CMD_STAT</span> = <code title="17">17</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="CMD_STATUS"></a><span class="summary-name">CMD_STATUS</span> = <code title="101">101</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="CMD_SYMLINK"></a><span class="summary-name">CMD_SYMLINK</span> = <code title="20">20</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="CMD_VERSION"></a><span class="summary-name">CMD_VERSION</span> = <code title="2">2</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="CMD_WRITE"></a><span class="summary-name">CMD_WRITE</span> = <code title="6">6</code>
+ </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.sftp_attr-module.html#CONNECTION_FAILED_CODE" class="summary-name">CONNECTION_FAILED_CODE</a> = <code title="{1: 'Administratively prohibited',
+ 2: 'Connect failed',
+ 3: 'Unknown channel type',
+ 4: 'Resource shortage'}"><code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Administratively prohibited</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-op">:</code><code class="variable-ellipsis">...</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="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="DEBUG"></a><span class="summary-name">DEBUG</span> = <code title="10">10</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="DISCONNECT_AUTH_CANCELLED_BY_USER"></a><span class="summary-name">DISCONNECT_AUTH_CANCELLED_BY_USER</span> = <code title="13">13</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="DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE"></a><span class="summary-name">DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE</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="DISCONNECT_SERVICE_NOT_AVAILABLE"></a><span class="summary-name">DISCONNECT_SERVICE_NOT_AVAILABLE</span> = <code title="7">7</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="ERROR"></a><span class="summary-name">ERROR</span> = <code title="40">40</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="INFO"></a><span class="summary-name">INFO</span> = <code title="20">20</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="MSG_CHANNEL_CLOSE"></a><span class="summary-name">MSG_CHANNEL_CLOSE</span> = <code title="97">97</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="MSG_CHANNEL_DATA"></a><span class="summary-name">MSG_CHANNEL_DATA</span> = <code title="94">94</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="MSG_CHANNEL_EOF"></a><span class="summary-name">MSG_CHANNEL_EOF</span> = <code title="96">96</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="MSG_CHANNEL_EXTENDED_DATA"></a><span class="summary-name">MSG_CHANNEL_EXTENDED_DATA</span> = <code title="95">95</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="MSG_CHANNEL_FAILURE"></a><span class="summary-name">MSG_CHANNEL_FAILURE</span> = <code title="100">100</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="MSG_CHANNEL_OPEN"></a><span class="summary-name">MSG_CHANNEL_OPEN</span> = <code title="90">90</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="MSG_CHANNEL_OPEN_FAILURE"></a><span class="summary-name">MSG_CHANNEL_OPEN_FAILURE</span> = <code title="92">92</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="MSG_CHANNEL_OPEN_SUCCESS"></a><span class="summary-name">MSG_CHANNEL_OPEN_SUCCESS</span> = <code title="91">91</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="MSG_CHANNEL_REQUEST"></a><span class="summary-name">MSG_CHANNEL_REQUEST</span> = <code title="98">98</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="MSG_CHANNEL_SUCCESS"></a><span class="summary-name">MSG_CHANNEL_SUCCESS</span> = <code title="99">99</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="MSG_CHANNEL_WINDOW_ADJUST"></a><span class="summary-name">MSG_CHANNEL_WINDOW_ADJUST</span> = <code title="93">93</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="MSG_DEBUG"></a><span class="summary-name">MSG_DEBUG</span> = <code title="4">4</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="MSG_DISCONNECT"></a><span class="summary-name">MSG_DISCONNECT</span> = <code title="1">1</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="MSG_GLOBAL_REQUEST"></a><span class="summary-name">MSG_GLOBAL_REQUEST</span> = <code title="80">80</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="MSG_IGNORE"></a><span class="summary-name">MSG_IGNORE</span> = <code title="2">2</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="MSG_KEXINIT"></a><span class="summary-name">MSG_KEXINIT</span> = <code title="20">20</code>
+ </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.sftp_attr-module.html#MSG_NAMES" class="summary-name">MSG_NAMES</a> = <code title="{1: 'disconnect',
+ 2: 'ignore',
+ 3: 'unimplemented',
+ 4: 'debug',
+ 5: 'service-request',
+ 6: 'service-accept',
+ 20: 'kexinit',
+ 21: 'newkeys',
+..."><code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">disconnect</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">ignore</code><code class="variable-quote">'</code><code class="variable-op">, </code>3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">unimplemented</code><code class="variable-quote">'</code><code class="variable-op">,</code><code class="variable-ellipsis">...</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="MSG_NEWKEYS"></a><span class="summary-name">MSG_NEWKEYS</span> = <code title="21">21</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="MSG_REQUEST_FAILURE"></a><span class="summary-name">MSG_REQUEST_FAILURE</span> = <code title="82">82</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="MSG_REQUEST_SUCCESS"></a><span class="summary-name">MSG_REQUEST_SUCCESS</span> = <code title="81">81</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="MSG_SERVICE_ACCEPT"></a><span class="summary-name">MSG_SERVICE_ACCEPT</span> = <code title="6">6</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="MSG_SERVICE_REQUEST"></a><span class="summary-name">MSG_SERVICE_REQUEST</span> = <code title="5">5</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="MSG_UNIMPLEMENTED"></a><span class="summary-name">MSG_UNIMPLEMENTED</span> = <code title="3">3</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="MSG_USERAUTH_BANNER"></a><span class="summary-name">MSG_USERAUTH_BANNER</span> = <code title="53">53</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="MSG_USERAUTH_FAILURE"></a><span class="summary-name">MSG_USERAUTH_FAILURE</span> = <code title="51">51</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="MSG_USERAUTH_INFO_REQUEST"></a><span class="summary-name">MSG_USERAUTH_INFO_REQUEST</span> = <code title="60">60</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="MSG_USERAUTH_INFO_RESPONSE"></a><span class="summary-name">MSG_USERAUTH_INFO_RESPONSE</span> = <code title="61">61</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="MSG_USERAUTH_PK_OK"></a><span class="summary-name">MSG_USERAUTH_PK_OK</span> = <code title="60">60</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="MSG_USERAUTH_REQUEST"></a><span class="summary-name">MSG_USERAUTH_REQUEST</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="MSG_USERAUTH_SUCCESS"></a><span class="summary-name">MSG_USERAUTH_SUCCESS</span> = <code title="52">52</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="OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED"></a><span class="summary-name">OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED</span> = <code title="1">1</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="OPEN_FAILED_CONNECT_FAILED"></a><span class="summary-name">OPEN_FAILED_CONNECT_FAILED</span> = <code title="2">2</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="OPEN_FAILED_RESOURCE_SHORTAGE"></a><span class="summary-name">OPEN_FAILED_RESOURCE_SHORTAGE</span> = <code title="4">4</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="OPEN_FAILED_UNKNOWN_CHANNEL_TYPE"></a><span class="summary-name">OPEN_FAILED_UNKNOWN_CHANNEL_TYPE</span> = <code title="3">3</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="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="PY22"></a><span class="summary-name">PY22</span> = <code title="False">False</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="SFTP_BAD_MESSAGE"></a><span class="summary-name">SFTP_BAD_MESSAGE</span> = <code title="5">5</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="SFTP_CONNECTION_LOST"></a><span class="summary-name">SFTP_CONNECTION_LOST</span> = <code title="7">7</code>
+ </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.sftp_attr-module.html#SFTP_DESC" class="summary-name">SFTP_DESC</a> = <code title="['Success',
+ 'End of file',
+ 'No such file',
+ 'Permission denied',
+ 'Failure',
+ 'Bad message',
+ 'No connection',
+ 'Connection lost',
+..."><code class="variable-group">[</code><code class="variable-quote">'</code><code class="variable-string">Success</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">End of file</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">No such file</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">Permis</code><code class="variable-ellipsis">...</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="SFTP_EOF"></a><span class="summary-name">SFTP_EOF</span> = <code title="1">1</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="SFTP_FAILURE"></a><span class="summary-name">SFTP_FAILURE</span> = <code title="4">4</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="SFTP_FLAG_APPEND"></a><span class="summary-name">SFTP_FLAG_APPEND</span> = <code title="4">4</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="SFTP_FLAG_CREATE"></a><span class="summary-name">SFTP_FLAG_CREATE</span> = <code title="8">8</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="SFTP_FLAG_EXCL"></a><span class="summary-name">SFTP_FLAG_EXCL</span> = <code title="32">32</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="SFTP_FLAG_READ"></a><span class="summary-name">SFTP_FLAG_READ</span> = <code title="1">1</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="SFTP_FLAG_TRUNC"></a><span class="summary-name">SFTP_FLAG_TRUNC</span> = <code title="16">16</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="SFTP_FLAG_WRITE"></a><span class="summary-name">SFTP_FLAG_WRITE</span> = <code title="2">2</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="SFTP_NO_CONNECTION"></a><span class="summary-name">SFTP_NO_CONNECTION</span> = <code title="6">6</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="SFTP_NO_SUCH_FILE"></a><span class="summary-name">SFTP_NO_SUCH_FILE</span> = <code title="2">2</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="SFTP_OK"></a><span class="summary-name">SFTP_OK</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="SFTP_OP_UNSUPPORTED"></a><span class="summary-name">SFTP_OP_UNSUPPORTED</span> = <code title="8">8</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="SFTP_PERMISSION_DENIED"></a><span class="summary-name">SFTP_PERMISSION_DENIED</span> = <code title="3">3</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="WARNING"></a><span class="summary-name">WARNING</span> = <code title="30">30</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>
+</table>
+<!-- ==================== VARIABLES DETAILS ==================== -->
+<a name="section-VariablesDetails"></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">Variables Details</span></td>
+</tr>
+</table>
+<a name="CMD_NAMES"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">CMD_NAMES</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">init</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">version</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">open</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">close</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 5<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">read</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 6<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">write</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 7<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">lstat</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 8<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">fstat</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="CONNECTION_FAILED_CODE"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">CONNECTION_FAILED_CODE</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Administratively prohibited</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Connect failed</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Unknown channel type</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Resource shortage</code><code class="variable-quote">'</code><code class="variable-group">}</code>
+</pre></td></tr></table>
+</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="MSG_NAMES"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">MSG_NAMES</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">disconnect</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">ignore</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">unimplemented</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">debug</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 5<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">service-request</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 6<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">service-accept</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 20<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">kexinit</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 21<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">newkeys</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="SFTP_DESC"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">SFTP_DESC</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-group">[</code><code class="variable-quote">'</code><code class="variable-string">Success</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">End of file</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">No such file</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">Permission denied</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">Failure</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">Bad message</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">No connection</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">Connection lost</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+ </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 Jul 6 18:30:27 2008
+ </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.sftp_attr-pysrc.html b/docs/paramiko.sftp_attr-pysrc.html
new file mode 100644
index 0000000..b1f7411
--- /dev/null
+++ b/docs/paramiko.sftp_attr-pysrc.html
@@ -0,0 +1,367 @@
+<?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.sftp_attr</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> ::
+ Module&nbsp;sftp_attr
+ </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.sftp_attr-pysrc.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</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="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
+paramiko.SFTPServerInterface.stat" class="py-name" href="#" onclick="return doclink('link-0', 'stat', 'link-0');">stat</a></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">time</tt> </tt>
+<a name="L21"></a><tt class="py-lineno"> 21</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.common=paramiko.common-module.html"><a title="paramiko.common" class="py-name" href="#" onclick="return doclink('link-2', 'common', 'link-2');">common</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L22"></a><tt class="py-lineno"> 22</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=paramiko.sftp-module.html"><a title="paramiko.sftp" class="py-name" href="#" onclick="return doclink('link-4', 'sftp', 'link-4');">sftp</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L23"></a><tt class="py-lineno"> 23</tt> <tt class="py-line"> </tt>
+<a name="L24"></a><tt class="py-lineno"> 24</tt> <tt class="py-line"> </tt>
+<a name="SFTPAttributes"></a><div id="SFTPAttributes-def"><a name="L25"></a><tt class="py-lineno"> 25</tt> <a class="py-toggle" href="#" id="SFTPAttributes-toggle" onclick="return toggle('SFTPAttributes');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.sftp_attr.SFTPAttributes-class.html">SFTPAttributes</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="SFTPAttributes-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="SFTPAttributes-expanded"><a name="L26"></a><tt class="py-lineno"> 26</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L27"></a><tt class="py-lineno"> 27</tt> <tt class="py-line"><tt class="py-docstring"> Representation of the attributes of a file (or proxied file) for SFTP in</tt> </tt>
+<a name="L28"></a><tt class="py-lineno"> 28</tt> <tt class="py-line"><tt class="py-docstring"> client or server mode. It attemps to mirror the object returned by</tt> </tt>
+<a name="L29"></a><tt class="py-lineno"> 29</tt> <tt class="py-line"><tt class="py-docstring"> C{os.stat} as closely as possible, so it may have the following fields,</tt> </tt>
+<a name="L30"></a><tt class="py-lineno"> 30</tt> <tt class="py-line"><tt class="py-docstring"> with the same meanings as those returned by an C{os.stat} object:</tt> </tt>
+<a name="L31"></a><tt class="py-lineno"> 31</tt> <tt class="py-line"><tt class="py-docstring"> - st_size</tt> </tt>
+<a name="L32"></a><tt class="py-lineno"> 32</tt> <tt class="py-line"><tt class="py-docstring"> - st_uid</tt> </tt>
+<a name="L33"></a><tt class="py-lineno"> 33</tt> <tt class="py-line"><tt class="py-docstring"> - st_gid</tt> </tt>
+<a name="L34"></a><tt class="py-lineno"> 34</tt> <tt class="py-line"><tt class="py-docstring"> - st_mode</tt> </tt>
+<a name="L35"></a><tt class="py-lineno"> 35</tt> <tt class="py-line"><tt class="py-docstring"> - st_atime</tt> </tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line"><tt class="py-docstring"> - st_mtime</tt> </tt>
+<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"> Because SFTP allows flags to have other arbitrary named attributes, these</tt> </tt>
+<a name="L39"></a><tt class="py-lineno"> 39</tt> <tt class="py-line"><tt class="py-docstring"> are stored in a dict named C{attr}. Occasionally, the filename is also</tt> </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</tt> <tt class="py-line"><tt class="py-docstring"> stored, in C{filename}.</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>
+<a name="L43"></a><tt class="py-lineno"> 43</tt> <tt class="py-line"> <tt id="link-5" class="py-name" targets="Variable paramiko.SFTPAttributes.FLAG_SIZE=paramiko.SFTPAttributes-class.html#FLAG_SIZE"><a title="paramiko.SFTPAttributes.FLAG_SIZE" class="py-name" href="#" onclick="return doclink('link-5', 'FLAG_SIZE', 'link-5');">FLAG_SIZE</a></tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"> <tt id="link-6" 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-6', 'FLAG_UIDGID', 'link-6');">FLAG_UIDGID</a></tt> <tt class="py-op">=</tt> <tt class="py-number">2</tt> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt> <tt class="py-line"> <tt id="link-7" 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-7', 'FLAG_PERMISSIONS', 'link-7');">FLAG_PERMISSIONS</a></tt> <tt class="py-op">=</tt> <tt class="py-number">4</tt> </tt>
+<a name="L46"></a><tt class="py-lineno"> 46</tt> <tt class="py-line"> <tt id="link-8" class="py-name" targets="Variable paramiko.SFTPAttributes.FLAG_AMTIME=paramiko.SFTPAttributes-class.html#FLAG_AMTIME"><a title="paramiko.SFTPAttributes.FLAG_AMTIME" class="py-name" href="#" onclick="return doclink('link-8', 'FLAG_AMTIME', 'link-8');">FLAG_AMTIME</a></tt> <tt class="py-op">=</tt> <tt class="py-number">8</tt> </tt>
+<a name="L47"></a><tt class="py-lineno"> 47</tt> <tt class="py-line"> <tt id="link-9" class="py-name" targets="Variable paramiko.SFTPAttributes.FLAG_EXTENDED=paramiko.SFTPAttributes-class.html#FLAG_EXTENDED"><a title="paramiko.SFTPAttributes.FLAG_EXTENDED" class="py-name" href="#" onclick="return doclink('link-9', 'FLAG_EXTENDED', 'link-9');">FLAG_EXTENDED</a></tt> <tt class="py-op">=</tt> <tt class="py-number">0x80000000L</tt> </tt>
+<a name="L48"></a><tt class="py-lineno"> 48</tt> <tt class="py-line"> </tt>
+<a name="SFTPAttributes.__init__"></a><div id="SFTPAttributes.__init__-def"><a name="L49"></a><tt class="py-lineno"> 49</tt> <a class="py-toggle" href="#" id="SFTPAttributes.__init__-toggle" onclick="return toggle('SFTPAttributes.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_attr.SFTPAttributes-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="SFTPAttributes.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPAttributes.__init__-expanded"><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 class="py-docstring"> Create a new (empty) SFTPAttributes object. All fields will be empty.</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">self</tt><tt class="py-op">.</tt><tt class="py-name">_flags</tt> <tt class="py-op">=</tt> <tt class="py-number">0</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">st_size</tt> <tt class="py-op">=</tt> <tt class="py-name">None</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">st_uid</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">st_gid</tt> <tt class="py-op">=</tt> <tt class="py-name">None</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">st_mode</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"> <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-name">None</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">st_mtime</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"> <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 class="py-op">}</tt> </tt>
+</div><a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"> </tt>
+<a name="SFTPAttributes.from_stat"></a><div id="SFTPAttributes.from_stat-def"><a name="L62"></a><tt class="py-lineno"> 62</tt> <a class="py-toggle" href="#" id="SFTPAttributes.from_stat-toggle" onclick="return toggle('SFTPAttributes.from_stat');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_attr.SFTPAttributes-class.html#from_stat">from_stat</a><tt class="py-op">(</tt><tt class="py-param">cls</tt><tt class="py-op">,</tt> <tt class="py-param">obj</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="SFTPAttributes.from_stat-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPAttributes.from_stat-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"> Create an SFTPAttributes object from an existing C{stat} object (an</tt> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"><tt class="py-docstring"> object returned by C{os.stat}).</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 class="py-docstring"> @param obj: an object returned by C{os.stat} (or equivalent).</tt> </tt>
+<a name="L68"></a><tt class="py-lineno"> 68</tt> <tt class="py-line"><tt class="py-docstring"> @type obj: object</tt> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"><tt class="py-docstring"> @param filename: the filename associated with this file.</tt> </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line"><tt class="py-docstring"> @type filename: str</tt> </tt>
+<a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line"><tt class="py-docstring"> @return: new L{SFTPAttributes} object with the same attribute fields.</tt> </tt>
+<a name="L72"></a><tt class="py-lineno"> 72</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: L{SFTPAttributes}</tt> </tt>
+<a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L74"></a><tt class="py-lineno"> 74</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>
+<a name="L75"></a><tt class="py-lineno"> 75</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">obj</tt><tt class="py-op">.</tt><tt class="py-name">st_size</tt> </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</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">obj</tt><tt class="py-op">.</tt><tt class="py-name">st_uid</tt> </tt>
+<a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"> <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">obj</tt><tt class="py-op">.</tt><tt class="py-name">st_gid</tt> </tt>
+<a name="L78"></a><tt class="py-lineno"> 78</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">obj</tt><tt class="py-op">.</tt><tt class="py-name">st_mode</tt> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</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">obj</tt><tt class="py-op">.</tt><tt class="py-name">st_atime</tt> </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"> <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">obj</tt><tt class="py-op">.</tt><tt class="py-name">st_mtime</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">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="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"> <tt class="py-name">attr</tt><tt class="py-op">.</tt><tt class="py-name">filename</tt> <tt class="py-op">=</tt> <tt class="py-name">filename</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">attr</tt> </tt>
+</div><a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"> <tt id="link-10" class="py-name" targets="Class Method paramiko.SFTPAttributes.from_stat()=paramiko.SFTPAttributes-class.html#from_stat"><a title="paramiko.SFTPAttributes.from_stat" class="py-name" href="#" onclick="return doclink('link-10', 'from_stat', 'link-10');">from_stat</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.SFTPAttributes.from_stat" class="py-name" href="#" onclick="return doclink('link-11', 'from_stat', 'link-10');">from_stat</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"> </tt>
+<a name="SFTPAttributes.__repr__"></a><div id="SFTPAttributes.__repr__-def"><a name="L86"></a><tt class="py-lineno"> 86</tt> <a class="py-toggle" href="#" id="SFTPAttributes.__repr__-toggle" onclick="return toggle('SFTPAttributes.__repr__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_attr.SFTPAttributes-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="SFTPAttributes.__repr__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPAttributes.__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;SFTPAttributes: %s&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_debug_str</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</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="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>
+<a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"> <tt class="py-name">attr</tt><tt class="py-op">.</tt><tt class="py-name">_unpack</tt><tt class="py-op">(</tt><tt class="py-name">msg</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">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="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"> <tt class="py-name">attr</tt><tt class="py-op">.</tt><tt class="py-name">filename</tt> <tt class="py-op">=</tt> <tt class="py-name">filename</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">longname</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="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"> <tt class="py-name">attr</tt><tt class="py-op">.</tt><tt class="py-name">longname</tt> <tt class="py-op">=</tt> <tt class="py-name">longname</tt> </tt>
+<a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">attr</tt> </tt>
+</div><a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"> <tt class="py-name">_from_msg</tt> <tt class="py-op">=</tt> <tt class="py-name">classmethod</tt><tt class="py-op">(</tt><tt class="py-name">_from_msg</tt><tt class="py-op">)</tt> </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"> </tt>
+<a name="SFTPAttributes._unpack"></a><div id="SFTPAttributes._unpack-def"><a name="L103"></a><tt class="py-lineno">103</tt> <a class="py-toggle" href="#" id="SFTPAttributes._unpack-toggle" onclick="return toggle('SFTPAttributes._unpack');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_attr.SFTPAttributes-class.html#_unpack">_unpack</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="SFTPAttributes._unpack-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPAttributes._unpack-expanded"><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">_flags</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-12" 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-12', 'get_int', 'link-12');">get_int</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-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-13" class="py-name"><a title="paramiko.SFTPAttributes.FLAG_SIZE" class="py-name" href="#" onclick="return doclink('link-13', 'FLAG_SIZE', 'link-5');">FLAG_SIZE</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">self</tt><tt class="py-op">.</tt><tt class="py-name">st_size</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-14" 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-14', 'get_int64', 'link-14');">get_int64</a></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">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-15" class="py-name"><a title="paramiko.SFTPAttributes.FLAG_UIDGID" class="py-name" href="#" onclick="return doclink('link-15', 'FLAG_UIDGID', 'link-6');">FLAG_UIDGID</a></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">st_uid</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-16" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-16', 'get_int', 'link-12');">get_int</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">st_gid</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-17" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-17', 'get_int', 'link-12');">get_int</a></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">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-18" class="py-name"><a title="paramiko.SFTPAttributes.FLAG_PERMISSIONS" class="py-name" href="#" onclick="return doclink('link-18', 'FLAG_PERMISSIONS', 'link-7');">FLAG_PERMISSIONS</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">st_mode</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-19" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-19', 'get_int', 'link-12');">get_int</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-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-20" class="py-name"><a title="paramiko.SFTPAttributes.FLAG_AMTIME" class="py-name" href="#" onclick="return doclink('link-20', 'FLAG_AMTIME', 'link-8');">FLAG_AMTIME</a></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 class="py-name">st_atime</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-21" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-21', 'get_int', 'link-12');">get_int</a></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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">st_mtime</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-22" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-22', 'get_int', 'link-12');">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-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-23" class="py-name"><a title="paramiko.SFTPAttributes.FLAG_EXTENDED" class="py-name" href="#" onclick="return doclink('link-23', 'FLAG_EXTENDED', 'link-9');">FLAG_EXTENDED</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">count</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-24" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-24', 'get_int', 'link-12');">get_int</a></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">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="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">attr</tt><tt class="py-op">[</tt><tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-25" 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-25', 'get_string', 'link-25');">get_string</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">msg</tt><tt class="py-op">.</tt><tt id="link-26" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-26', 'get_string', 'link-25');">get_string</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="SFTPAttributes._pack"></a><div id="SFTPAttributes._pack-def"><a name="L120"></a><tt class="py-lineno">120</tt> <a class="py-toggle" href="#" id="SFTPAttributes._pack-toggle" onclick="return toggle('SFTPAttributes._pack');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_attr.SFTPAttributes-class.html#_pack">_pack</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="SFTPAttributes._pack-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPAttributes._pack-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">_flags</tt> <tt class="py-op">=</tt> <tt class="py-number">0</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">st_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>
+<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">_flags</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.SFTPAttributes.FLAG_SIZE" class="py-name" href="#" onclick="return doclink('link-27', 'FLAG_SIZE', 'link-5');">FLAG_SIZE</a></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-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">st_uid</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">self</tt><tt class="py-op">.</tt><tt class="py-name">st_gid</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="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">_flags</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.SFTPAttributes.FLAG_UIDGID" class="py-name" href="#" onclick="return doclink('link-28', 'FLAG_UIDGID', 'link-6');">FLAG_UIDGID</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">st_mode</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="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">_flags</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.SFTPAttributes.FLAG_PERMISSIONS" class="py-name" href="#" onclick="return doclink('link-29', 'FLAG_PERMISSIONS', 'link-7');">FLAG_PERMISSIONS</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">st_atime</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">self</tt><tt class="py-op">.</tt><tt class="py-name">st_mtime</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="L129"></a><tt class="py-lineno">129</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-30" class="py-name"><a title="paramiko.SFTPAttributes.FLAG_AMTIME" class="py-name" href="#" onclick="return doclink('link-30', 'FLAG_AMTIME', 'link-8');">FLAG_AMTIME</a></tt> </tt>
+<a name="L130"></a><tt class="py-lineno">130</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">attr</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="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">_flags</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.SFTPAttributes.FLAG_EXTENDED" class="py-name" href="#" onclick="return doclink('link-31', 'FLAG_EXTENDED', 'link-9');">FLAG_EXTENDED</a></tt> </tt>
+<a name="L132"></a><tt class="py-lineno">132</tt> <tt class="py-line"> <tt class="py-name">msg</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">_flags</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">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-33" class="py-name"><a title="paramiko.SFTPAttributes.FLAG_SIZE" class="py-name" href="#" onclick="return doclink('link-33', 'FLAG_SIZE', 'link-5');">FLAG_SIZE</a></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">msg</tt><tt class="py-op">.</tt><tt id="link-34" 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-34', 'add_int64', 'link-34');">add_int64</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">st_size</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">_flags</tt> <tt class="py-op">&amp;</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-35" class="py-name"><a title="paramiko.SFTPAttributes.FLAG_UIDGID" class="py-name" href="#" onclick="return doclink('link-35', 'FLAG_UIDGID', 'link-6');">FLAG_UIDGID</a></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">msg</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">self</tt><tt class="py-op">.</tt><tt class="py-name">st_uid</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">msg</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">self</tt><tt class="py-op">.</tt><tt class="py-name">st_gid</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">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-38" class="py-name"><a title="paramiko.SFTPAttributes.FLAG_PERMISSIONS" class="py-name" href="#" onclick="return doclink('link-38', 'FLAG_PERMISSIONS', 'link-7');">FLAG_PERMISSIONS</a></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">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="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>
+<a name="L146"></a><tt class="py-lineno">146</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">val</tt> <tt class="py-keyword">in</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-name">iteritems</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-name">msg</tt><tt class="py-op">.</tt><tt id="link-45" 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-45', 'add_string', 'link-45');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">key</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">msg</tt><tt class="py-op">.</tt><tt id="link-46" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-46', 'add_string', 'link-45');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">val</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">return</tt> </tt>
+</div><a name="L150"></a><tt class="py-lineno">150</tt> <tt class="py-line"> </tt>
+<a name="SFTPAttributes._debug_str"></a><div id="SFTPAttributes._debug_str-def"><a name="L151"></a><tt class="py-lineno">151</tt> <a class="py-toggle" href="#" id="SFTPAttributes._debug_str-toggle" onclick="return toggle('SFTPAttributes._debug_str');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_attr.SFTPAttributes-class.html#_debug_str">_debug_str</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SFTPAttributes._debug_str-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPAttributes._debug_str-expanded"><a name="L152"></a><tt class="py-lineno">152</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">=</tt> <tt class="py-string">'[ '</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">st_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>
+<a name="L154"></a><tt class="py-lineno">154</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">+=</tt> <tt class="py-string">'size=%d '</tt> <tt class="py-op">%</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">st_size</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-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">st_uid</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">self</tt><tt class="py-op">.</tt><tt class="py-name">st_gid</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="L156"></a><tt class="py-lineno">156</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">+=</tt> <tt class="py-string">'uid=%d gid=%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">st_uid</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 class="py-op">)</tt> </tt>
+<a name="L157"></a><tt class="py-lineno">157</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">st_mode</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="L158"></a><tt class="py-lineno">158</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">+=</tt> <tt class="py-string">'mode='</tt> <tt class="py-op">+</tt> <tt class="py-name">oct</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 class="py-op">+</tt> <tt class="py-string">' '</tt> </tt>
+<a name="L159"></a><tt class="py-lineno">159</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_atime</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">self</tt><tt class="py-op">.</tt><tt class="py-name">st_mtime</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="L160"></a><tt class="py-lineno">160</tt> <tt class="py-line"> <tt class="py-name">out</tt> <tt class="py-op">+=</tt> <tt class="py-string">'atime=%d mtime=%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">st_atime</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>
+<a name="L161"></a><tt class="py-lineno">161</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">k</tt><tt class="py-op">,</tt> <tt class="py-name">v</tt> <tt class="py-keyword">in</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-name">iteritems</tt><tt class="py-op">(</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-name">out</tt> <tt class="py-op">+=</tt> <tt class="py-string">'"%s"=%r '</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">k</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">v</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">out</tt> <tt class="py-op">+=</tt> <tt class="py-string">']'</tt> </tt>
+<a name="L164"></a><tt class="py-lineno">164</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">out</tt> </tt>
+</div><a name="L165"></a><tt class="py-lineno">165</tt> <tt class="py-line"> </tt>
+<a name="SFTPAttributes._rwx"></a><div id="SFTPAttributes._rwx-def"><a name="L166"></a><tt class="py-lineno">166</tt> <a class="py-toggle" href="#" id="SFTPAttributes._rwx-toggle" onclick="return toggle('SFTPAttributes._rwx');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_attr.SFTPAttributes-class.html#_rwx">_rwx</a><tt class="py-op">(</tt><tt class="py-param">n</tt><tt class="py-op">,</tt> <tt class="py-param">suid</tt><tt class="py-op">,</tt> <tt class="py-param">sticky</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="SFTPAttributes._rwx-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPAttributes._rwx-expanded"><a name="L167"></a><tt class="py-lineno">167</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">suid</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">suid</tt> <tt class="py-op">=</tt> <tt class="py-number">2</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-string">'-r'</tt><tt class="py-op">[</tt><tt class="py-name">n</tt> <tt class="py-op">&gt;&gt;</tt> <tt class="py-number">2</tt><tt class="py-op">]</tt> <tt class="py-op">+</tt> <tt class="py-string">'-w'</tt><tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-name">n</tt> <tt class="py-op">&gt;&gt;</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> <tt class="py-op">&amp;</tt> <tt class="py-number">1</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">if</tt> <tt class="py-name">sticky</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">out</tt> <tt class="py-op">+=</tt> <tt class="py-string">'-xTt'</tt><tt class="py-op">[</tt><tt class="py-name">suid</tt> <tt class="py-op">+</tt> <tt class="py-op">(</tt><tt class="py-name">n</tt> <tt class="py-op">&amp;</tt> <tt class="py-number">1</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-keyword">else</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">out</tt> <tt class="py-op">+=</tt> <tt class="py-string">'-xSs'</tt><tt class="py-op">[</tt><tt class="py-name">suid</tt> <tt class="py-op">+</tt> <tt class="py-op">(</tt><tt class="py-name">n</tt> <tt class="py-op">&amp;</tt> <tt class="py-number">1</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">return</tt> <tt class="py-name">out</tt> </tt>
+</div><a name="L175"></a><tt class="py-lineno">175</tt> <tt class="py-line"> <tt class="py-name">_rwx</tt> <tt class="py-op">=</tt> <tt class="py-name">staticmethod</tt><tt class="py-op">(</tt><tt class="py-name">_rwx</tt><tt class="py-op">)</tt> </tt>
+<a name="L176"></a><tt class="py-lineno">176</tt> <tt class="py-line"> </tt>
+<a name="SFTPAttributes.__str__"></a><div id="SFTPAttributes.__str__-def"><a name="L177"></a><tt class="py-lineno">177</tt> <a class="py-toggle" href="#" id="SFTPAttributes.__str__-toggle" onclick="return toggle('SFTPAttributes.__str__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_attr.SFTPAttributes-class.html#__str__">__str__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SFTPAttributes.__str__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPAttributes.__str__-expanded"><a name="L178"></a><tt class="py-lineno">178</tt> <tt class="py-line"> <tt class="py-docstring">"create a unix-style long description of the file (like ls -l)"</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 class="py-name">st_mode</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="L180"></a><tt class="py-lineno">180</tt> <tt class="py-line"> <tt class="py-name">kind</tt> <tt class="py-op">=</tt> <tt id="link-47" 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-47', 'stat', 'link-0');">stat</a></tt><tt class="py-op">.</tt><tt class="py-name">S_IFMT</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="L181"></a><tt class="py-lineno">181</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">kind</tt> <tt class="py-op">==</tt> <tt id="link-48" 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-48', 'stat', 'link-0');">stat</a></tt><tt class="py-op">.</tt><tt class="py-name">S_IFIFO</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">ks</tt> <tt class="py-op">=</tt> <tt class="py-string">'p'</tt> </tt>
+<a name="L183"></a><tt class="py-lineno">183</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">kind</tt> <tt class="py-op">==</tt> <tt id="link-49" 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-49', 'stat', 'link-0');">stat</a></tt><tt class="py-op">.</tt><tt class="py-name">S_IFCHR</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">ks</tt> <tt class="py-op">=</tt> <tt class="py-string">'c'</tt> </tt>
+<a name="L185"></a><tt class="py-lineno">185</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">kind</tt> <tt class="py-op">==</tt> <tt id="link-50" 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-50', 'stat', 'link-0');">stat</a></tt><tt class="py-op">.</tt><tt class="py-name">S_IFDIR</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">ks</tt> <tt class="py-op">=</tt> <tt class="py-string">'d'</tt> </tt>
+<a name="L187"></a><tt class="py-lineno">187</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">kind</tt> <tt class="py-op">==</tt> <tt id="link-51" 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-51', 'stat', 'link-0');">stat</a></tt><tt class="py-op">.</tt><tt class="py-name">S_IFBLK</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">ks</tt> <tt class="py-op">=</tt> <tt class="py-string">'b'</tt> </tt>
+<a name="L189"></a><tt class="py-lineno">189</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">kind</tt> <tt class="py-op">==</tt> <tt id="link-52" 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-52', 'stat', 'link-0');">stat</a></tt><tt class="py-op">.</tt><tt class="py-name">S_IFREG</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">ks</tt> <tt class="py-op">=</tt> <tt class="py-string">'-'</tt> </tt>
+<a name="L191"></a><tt class="py-lineno">191</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">kind</tt> <tt class="py-op">==</tt> <tt id="link-53" 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-53', 'stat', 'link-0');">stat</a></tt><tt class="py-op">.</tt><tt class="py-name">S_IFLNK</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">ks</tt> <tt class="py-op">=</tt> <tt class="py-string">'l'</tt> </tt>
+<a name="L193"></a><tt class="py-lineno">193</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">kind</tt> <tt class="py-op">==</tt> <tt id="link-54" 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-54', 'stat', 'link-0');">stat</a></tt><tt class="py-op">.</tt><tt class="py-name">S_IFSOCK</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">ks</tt> <tt class="py-op">=</tt> <tt class="py-string">'s'</tt> </tt>
+<a name="L195"></a><tt class="py-lineno">195</tt> <tt class="py-line"> <tt class="py-keyword">else</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">ks</tt> <tt class="py-op">=</tt> <tt class="py-string">'?'</tt> </tt>
+<a name="L197"></a><tt class="py-lineno">197</tt> <tt class="py-line"> <tt class="py-name">ks</tt> <tt class="py-op">+=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_rwx</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_mode</tt> <tt class="py-op">&amp;</tt> <tt class="py-number">0700</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;&gt;</tt> <tt class="py-number">6</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">&amp;</tt> <tt id="link-55" 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-55', 'stat', 'link-0');">stat</a></tt><tt class="py-op">.</tt><tt class="py-name">S_ISUID</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">ks</tt> <tt class="py-op">+=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_rwx</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_mode</tt> <tt class="py-op">&amp;</tt> <tt class="py-number">070</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;&gt;</tt> <tt class="py-number">3</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">&amp;</tt> <tt id="link-56" 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-56', 'stat', 'link-0');">stat</a></tt><tt class="py-op">.</tt><tt class="py-name">S_ISGID</tt><tt class="py-op">)</tt> </tt>
+<a name="L199"></a><tt class="py-lineno">199</tt> <tt class="py-line"> <tt class="py-name">ks</tt> <tt class="py-op">+=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_rwx</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">&amp;</tt> <tt class="py-number">7</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">&amp;</tt> <tt id="link-57" 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-57', 'stat', 'link-0');">stat</a></tt><tt class="py-op">.</tt><tt class="py-name">S_ISVTX</tt><tt class="py-op">,</tt> <tt class="py-name">True</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">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="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="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="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="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>
+<a name="L219"></a><tt class="py-lineno">219</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">gid</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</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">gid</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L221"></a><tt class="py-lineno">221</tt> <tt class="py-line"> </tt>
+<a name="L222"></a><tt class="py-lineno">222</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">'%s 1 %-8d %-8d %8d %-12s %s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">ks</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">st_size</tt><tt class="py-op">,</tt> <tt class="py-name">datestr</tt><tt class="py-op">,</tt> <tt class="py-name">filename</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L223"></a><tt class="py-lineno">223</tt> <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<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 Jul 6 18:30:33 2008
+ </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.sftp_client-module.html b/docs/paramiko.sftp_client-module.html
new file mode 100644
index 0000000..8f975d6
--- /dev/null
+++ b/docs/paramiko.sftp_client-module.html
@@ -0,0 +1,900 @@
+<?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.sftp_client</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> ::
+ Module&nbsp;sftp_client
+ </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.sftp_client-module.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module sftp_client</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.sftp_client-pysrc.html">source&nbsp;code</a></span></p>
+<p>Client-mode SFTP support.</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="AUTH_FAILED"></a><span class="summary-name">AUTH_FAILED</span> = <code title="2">2</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_PARTIALLY_SUCCESSFUL"></a><span class="summary-name">AUTH_PARTIALLY_SUCCESSFUL</span> = <code title="1">1</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_SUCCESSFUL"></a><span class="summary-name">AUTH_SUCCESSFUL</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="CMD_ATTRS"></a><span class="summary-name">CMD_ATTRS</span> = <code title="105">105</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="CMD_CLOSE"></a><span class="summary-name">CMD_CLOSE</span> = <code title="4">4</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="CMD_DATA"></a><span class="summary-name">CMD_DATA</span> = <code title="103">103</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="CMD_EXTENDED"></a><span class="summary-name">CMD_EXTENDED</span> = <code title="200">200</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="CMD_EXTENDED_REPLY"></a><span class="summary-name">CMD_EXTENDED_REPLY</span> = <code title="201">201</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="CMD_FSETSTAT"></a><span class="summary-name">CMD_FSETSTAT</span> = <code title="10">10</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="CMD_FSTAT"></a><span class="summary-name">CMD_FSTAT</span> = <code title="8">8</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="CMD_HANDLE"></a><span class="summary-name">CMD_HANDLE</span> = <code title="102">102</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="CMD_INIT"></a><span class="summary-name">CMD_INIT</span> = <code title="1">1</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="CMD_LSTAT"></a><span class="summary-name">CMD_LSTAT</span> = <code title="7">7</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="CMD_MKDIR"></a><span class="summary-name">CMD_MKDIR</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="CMD_NAME"></a><span class="summary-name">CMD_NAME</span> = <code title="104">104</code>
+ </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.sftp_client-module.html#CMD_NAMES" class="summary-name">CMD_NAMES</a> = <code title="{1: 'init',
+ 2: 'version',
+ 3: 'open',
+ 4: 'close',
+ 5: 'read',
+ 6: 'write',
+ 7: 'lstat',
+ 8: 'fstat',
+..."><code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">init</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">version</code><code class="variable-quote">'</code><code class="variable-op">, </code>3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">open</code><code class="variable-quote">'</code><code class="variable-op">, </code>4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">close</code><code class="variable-quote">'</code><code class="variable-op">, </code>5<code class="variable-ellipsis">...</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="CMD_OPEN"></a><span class="summary-name">CMD_OPEN</span> = <code title="3">3</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="CMD_OPENDIR"></a><span class="summary-name">CMD_OPENDIR</span> = <code title="11">11</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="CMD_READ"></a><span class="summary-name">CMD_READ</span> = <code title="5">5</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="CMD_READDIR"></a><span class="summary-name">CMD_READDIR</span> = <code title="12">12</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="CMD_READLINK"></a><span class="summary-name">CMD_READLINK</span> = <code title="19">19</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="CMD_REALPATH"></a><span class="summary-name">CMD_REALPATH</span> = <code title="16">16</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="CMD_REMOVE"></a><span class="summary-name">CMD_REMOVE</span> = <code title="13">13</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="CMD_RENAME"></a><span class="summary-name">CMD_RENAME</span> = <code title="18">18</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="CMD_RMDIR"></a><span class="summary-name">CMD_RMDIR</span> = <code title="15">15</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="CMD_SETSTAT"></a><span class="summary-name">CMD_SETSTAT</span> = <code title="9">9</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="CMD_STAT"></a><span class="summary-name">CMD_STAT</span> = <code title="17">17</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="CMD_STATUS"></a><span class="summary-name">CMD_STATUS</span> = <code title="101">101</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="CMD_SYMLINK"></a><span class="summary-name">CMD_SYMLINK</span> = <code title="20">20</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="CMD_VERSION"></a><span class="summary-name">CMD_VERSION</span> = <code title="2">2</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="CMD_WRITE"></a><span class="summary-name">CMD_WRITE</span> = <code title="6">6</code>
+ </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.sftp_client-module.html#CONNECTION_FAILED_CODE" class="summary-name">CONNECTION_FAILED_CODE</a> = <code title="{1: 'Administratively prohibited',
+ 2: 'Connect failed',
+ 3: 'Unknown channel type',
+ 4: 'Resource shortage'}"><code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Administratively prohibited</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-op">:</code><code class="variable-ellipsis">...</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="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="DEBUG"></a><span class="summary-name">DEBUG</span> = <code title="10">10</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="DISCONNECT_AUTH_CANCELLED_BY_USER"></a><span class="summary-name">DISCONNECT_AUTH_CANCELLED_BY_USER</span> = <code title="13">13</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="DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE"></a><span class="summary-name">DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE</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="DISCONNECT_SERVICE_NOT_AVAILABLE"></a><span class="summary-name">DISCONNECT_SERVICE_NOT_AVAILABLE</span> = <code title="7">7</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="ERROR"></a><span class="summary-name">ERROR</span> = <code title="40">40</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="INFO"></a><span class="summary-name">INFO</span> = <code title="20">20</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="MSG_CHANNEL_CLOSE"></a><span class="summary-name">MSG_CHANNEL_CLOSE</span> = <code title="97">97</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="MSG_CHANNEL_DATA"></a><span class="summary-name">MSG_CHANNEL_DATA</span> = <code title="94">94</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="MSG_CHANNEL_EOF"></a><span class="summary-name">MSG_CHANNEL_EOF</span> = <code title="96">96</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="MSG_CHANNEL_EXTENDED_DATA"></a><span class="summary-name">MSG_CHANNEL_EXTENDED_DATA</span> = <code title="95">95</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="MSG_CHANNEL_FAILURE"></a><span class="summary-name">MSG_CHANNEL_FAILURE</span> = <code title="100">100</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="MSG_CHANNEL_OPEN"></a><span class="summary-name">MSG_CHANNEL_OPEN</span> = <code title="90">90</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="MSG_CHANNEL_OPEN_FAILURE"></a><span class="summary-name">MSG_CHANNEL_OPEN_FAILURE</span> = <code title="92">92</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="MSG_CHANNEL_OPEN_SUCCESS"></a><span class="summary-name">MSG_CHANNEL_OPEN_SUCCESS</span> = <code title="91">91</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="MSG_CHANNEL_REQUEST"></a><span class="summary-name">MSG_CHANNEL_REQUEST</span> = <code title="98">98</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="MSG_CHANNEL_SUCCESS"></a><span class="summary-name">MSG_CHANNEL_SUCCESS</span> = <code title="99">99</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="MSG_CHANNEL_WINDOW_ADJUST"></a><span class="summary-name">MSG_CHANNEL_WINDOW_ADJUST</span> = <code title="93">93</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="MSG_DEBUG"></a><span class="summary-name">MSG_DEBUG</span> = <code title="4">4</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="MSG_DISCONNECT"></a><span class="summary-name">MSG_DISCONNECT</span> = <code title="1">1</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="MSG_GLOBAL_REQUEST"></a><span class="summary-name">MSG_GLOBAL_REQUEST</span> = <code title="80">80</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="MSG_IGNORE"></a><span class="summary-name">MSG_IGNORE</span> = <code title="2">2</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="MSG_KEXINIT"></a><span class="summary-name">MSG_KEXINIT</span> = <code title="20">20</code>
+ </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.sftp_client-module.html#MSG_NAMES" class="summary-name">MSG_NAMES</a> = <code title="{1: 'disconnect',
+ 2: 'ignore',
+ 3: 'unimplemented',
+ 4: 'debug',
+ 5: 'service-request',
+ 6: 'service-accept',
+ 20: 'kexinit',
+ 21: 'newkeys',
+..."><code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">disconnect</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">ignore</code><code class="variable-quote">'</code><code class="variable-op">, </code>3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">unimplemented</code><code class="variable-quote">'</code><code class="variable-op">,</code><code class="variable-ellipsis">...</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="MSG_NEWKEYS"></a><span class="summary-name">MSG_NEWKEYS</span> = <code title="21">21</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="MSG_REQUEST_FAILURE"></a><span class="summary-name">MSG_REQUEST_FAILURE</span> = <code title="82">82</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="MSG_REQUEST_SUCCESS"></a><span class="summary-name">MSG_REQUEST_SUCCESS</span> = <code title="81">81</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="MSG_SERVICE_ACCEPT"></a><span class="summary-name">MSG_SERVICE_ACCEPT</span> = <code title="6">6</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="MSG_SERVICE_REQUEST"></a><span class="summary-name">MSG_SERVICE_REQUEST</span> = <code title="5">5</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="MSG_UNIMPLEMENTED"></a><span class="summary-name">MSG_UNIMPLEMENTED</span> = <code title="3">3</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="MSG_USERAUTH_BANNER"></a><span class="summary-name">MSG_USERAUTH_BANNER</span> = <code title="53">53</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="MSG_USERAUTH_FAILURE"></a><span class="summary-name">MSG_USERAUTH_FAILURE</span> = <code title="51">51</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="MSG_USERAUTH_INFO_REQUEST"></a><span class="summary-name">MSG_USERAUTH_INFO_REQUEST</span> = <code title="60">60</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="MSG_USERAUTH_INFO_RESPONSE"></a><span class="summary-name">MSG_USERAUTH_INFO_RESPONSE</span> = <code title="61">61</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="MSG_USERAUTH_PK_OK"></a><span class="summary-name">MSG_USERAUTH_PK_OK</span> = <code title="60">60</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="MSG_USERAUTH_REQUEST"></a><span class="summary-name">MSG_USERAUTH_REQUEST</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="MSG_USERAUTH_SUCCESS"></a><span class="summary-name">MSG_USERAUTH_SUCCESS</span> = <code title="52">52</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="OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED"></a><span class="summary-name">OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED</span> = <code title="1">1</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="OPEN_FAILED_CONNECT_FAILED"></a><span class="summary-name">OPEN_FAILED_CONNECT_FAILED</span> = <code title="2">2</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="OPEN_FAILED_RESOURCE_SHORTAGE"></a><span class="summary-name">OPEN_FAILED_RESOURCE_SHORTAGE</span> = <code title="4">4</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="OPEN_FAILED_UNKNOWN_CHANNEL_TYPE"></a><span class="summary-name">OPEN_FAILED_UNKNOWN_CHANNEL_TYPE</span> = <code title="3">3</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="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="PY22"></a><span class="summary-name">PY22</span> = <code title="False">False</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="SFTP_BAD_MESSAGE"></a><span class="summary-name">SFTP_BAD_MESSAGE</span> = <code title="5">5</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="SFTP_CONNECTION_LOST"></a><span class="summary-name">SFTP_CONNECTION_LOST</span> = <code title="7">7</code>
+ </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.sftp_client-module.html#SFTP_DESC" class="summary-name">SFTP_DESC</a> = <code title="['Success',
+ 'End of file',
+ 'No such file',
+ 'Permission denied',
+ 'Failure',
+ 'Bad message',
+ 'No connection',
+ 'Connection lost',
+..."><code class="variable-group">[</code><code class="variable-quote">'</code><code class="variable-string">Success</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">End of file</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">No such file</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">Permis</code><code class="variable-ellipsis">...</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="SFTP_EOF"></a><span class="summary-name">SFTP_EOF</span> = <code title="1">1</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="SFTP_FAILURE"></a><span class="summary-name">SFTP_FAILURE</span> = <code title="4">4</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="SFTP_FLAG_APPEND"></a><span class="summary-name">SFTP_FLAG_APPEND</span> = <code title="4">4</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="SFTP_FLAG_CREATE"></a><span class="summary-name">SFTP_FLAG_CREATE</span> = <code title="8">8</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="SFTP_FLAG_EXCL"></a><span class="summary-name">SFTP_FLAG_EXCL</span> = <code title="32">32</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="SFTP_FLAG_READ"></a><span class="summary-name">SFTP_FLAG_READ</span> = <code title="1">1</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="SFTP_FLAG_TRUNC"></a><span class="summary-name">SFTP_FLAG_TRUNC</span> = <code title="16">16</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="SFTP_FLAG_WRITE"></a><span class="summary-name">SFTP_FLAG_WRITE</span> = <code title="2">2</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="SFTP_NO_CONNECTION"></a><span class="summary-name">SFTP_NO_CONNECTION</span> = <code title="6">6</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="SFTP_NO_SUCH_FILE"></a><span class="summary-name">SFTP_NO_SUCH_FILE</span> = <code title="2">2</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="SFTP_OK"></a><span class="summary-name">SFTP_OK</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="SFTP_OP_UNSUPPORTED"></a><span class="summary-name">SFTP_OP_UNSUPPORTED</span> = <code title="8">8</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="SFTP_PERMISSION_DENIED"></a><span class="summary-name">SFTP_PERMISSION_DENIED</span> = <code title="3">3</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="WARNING"></a><span class="summary-name">WARNING</span> = <code title="30">30</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>
+</table>
+<!-- ==================== VARIABLES DETAILS ==================== -->
+<a name="section-VariablesDetails"></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">Variables Details</span></td>
+</tr>
+</table>
+<a name="CMD_NAMES"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">CMD_NAMES</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">init</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">version</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">open</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">close</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 5<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">read</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 6<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">write</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 7<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">lstat</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 8<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">fstat</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="CONNECTION_FAILED_CODE"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">CONNECTION_FAILED_CODE</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Administratively prohibited</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Connect failed</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Unknown channel type</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Resource shortage</code><code class="variable-quote">'</code><code class="variable-group">}</code>
+</pre></td></tr></table>
+</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="MSG_NAMES"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">MSG_NAMES</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">disconnect</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">ignore</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">unimplemented</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">debug</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 5<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">service-request</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 6<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">service-accept</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 20<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">kexinit</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 21<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">newkeys</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="SFTP_DESC"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">SFTP_DESC</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-group">[</code><code class="variable-quote">'</code><code class="variable-string">Success</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">End of file</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">No such file</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">Permission denied</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">Failure</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">Bad message</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">No connection</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">Connection lost</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+ </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 Jul 6 18:30:27 2008
+ </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.sftp_client-pysrc.html b/docs/paramiko.sftp_client-pysrc.html
new file mode 100644
index 0000000..0b17480
--- /dev/null
+++ b/docs/paramiko.sftp_client-pysrc.html
@@ -0,0 +1,1563 @@
+<?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.sftp_client</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> ::
+ Module&nbsp;sftp_client
+ </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.sftp_client-pysrc.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</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="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>
+<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">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="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__
+paramiko.AgentKey.__init__
+paramiko.BadAuthenticationType.__init__
+paramiko.BadHostKeyException.__init__
+paramiko.BufferedFile.__init__
+paramiko.Channel.__init__
+paramiko.ChannelException.__init__
+paramiko.DSSKey.__init__
+paramiko.HostKeys.__init__
+paramiko.Message.__init__
+paramiko.PKey.__init__
+paramiko.RSAKey.__init__
+paramiko.SFTPAttributes.__init__
+paramiko.SFTPClient.__init__
+paramiko.SFTPFile.__init__
+paramiko.SFTPHandle.__init__
+paramiko.SFTPServer.__init__
+paramiko.SFTPServerInterface.__init__
+paramiko.SSHClient.__init__
+paramiko.SSHConfig.__init__
+paramiko.SecurityOptions.__init__
+paramiko.SubsystemHandler.__init__
+paramiko.Transport.__init__
+paramiko.ber.BER.__init__
+paramiko.buffered_pipe.BufferedPipe.__init__
+paramiko.channel.ChannelStderrFile.__init__
+paramiko.compress.ZlibCompressor.__init__
+paramiko.compress.ZlibDecompressor.__init__
+paramiko.hostkeys.HostKeyEntry.__init__
+paramiko.kex_gex.KexGex.__init__
+paramiko.kex_group1.KexGroup1.__init__
+paramiko.logging22.Formatter.__init__
+paramiko.logging22.StreamHandler.__init__
+paramiko.logging22.logger.__init__
+paramiko.pipe.OrPipe.__init__
+paramiko.pipe.PosixPipe.__init__
+paramiko.pipe.WindowsPipe.__init__
+paramiko.primes.ModulusPack.__init__
+paramiko.rng.StrongLockingRandomPool.__init__
+paramiko.ssh_exception.PartialAuthentication.__init__
+paramiko.transport.ChannelMap.__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.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-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.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.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-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.BufferedFile.close
+paramiko.Channel.close
+paramiko.SFTPClient.close
+paramiko.SFTPFile.close
+paramiko.SFTPHandle.close
+paramiko.SSHClient.close
+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>
+<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
+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-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.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_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_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_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_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>
+<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="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
+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-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.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_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_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_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_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_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_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_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_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_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.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-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.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-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.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.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-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.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.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-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.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.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-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.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.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-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.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_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.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-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.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_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.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-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.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.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-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.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.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-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.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.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-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.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.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-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.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.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-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.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_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.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-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.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_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.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.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.BufferedFile.close
+paramiko.Channel.close
+paramiko.SFTPClient.close
+paramiko.SFTPFile.close
+paramiko.SFTPHandle.close
+paramiko.SSHClient.close
+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.BufferedFile.close
+paramiko.Channel.close
+paramiko.SFTPClient.close
+paramiko.SFTPFile.close
+paramiko.SFTPHandle.close
+paramiko.SSHClient.close
+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.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.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.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.BufferedFile.close
+paramiko.Channel.close
+paramiko.SFTPClient.close
+paramiko.SFTPFile.close
+paramiko.SFTPHandle.close
+paramiko.SSHClient.close
+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.BufferedFile.close
+paramiko.Channel.close
+paramiko.SFTPClient.close
+paramiko.SFTPFile.close
+paramiko.SFTPHandle.close
+paramiko.SSHClient.close
+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.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.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-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.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_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_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_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_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">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<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 Jul 6 18:30:35 2008
+ </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.sftp_file-module.html b/docs/paramiko.sftp_file-module.html
new file mode 100644
index 0000000..664b692
--- /dev/null
+++ b/docs/paramiko.sftp_file-module.html
@@ -0,0 +1,900 @@
+<?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.sftp_file</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> ::
+ Module&nbsp;sftp_file
+ </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.sftp_file-module.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module sftp_file</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.sftp_file-pysrc.html">source&nbsp;code</a></span></p>
+<p><a href="paramiko.SFTPFile-class.html" class="link">SFTPFile</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="AUTH_FAILED"></a><span class="summary-name">AUTH_FAILED</span> = <code title="2">2</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_PARTIALLY_SUCCESSFUL"></a><span class="summary-name">AUTH_PARTIALLY_SUCCESSFUL</span> = <code title="1">1</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_SUCCESSFUL"></a><span class="summary-name">AUTH_SUCCESSFUL</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="CMD_ATTRS"></a><span class="summary-name">CMD_ATTRS</span> = <code title="105">105</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="CMD_CLOSE"></a><span class="summary-name">CMD_CLOSE</span> = <code title="4">4</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="CMD_DATA"></a><span class="summary-name">CMD_DATA</span> = <code title="103">103</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="CMD_EXTENDED"></a><span class="summary-name">CMD_EXTENDED</span> = <code title="200">200</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="CMD_EXTENDED_REPLY"></a><span class="summary-name">CMD_EXTENDED_REPLY</span> = <code title="201">201</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="CMD_FSETSTAT"></a><span class="summary-name">CMD_FSETSTAT</span> = <code title="10">10</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="CMD_FSTAT"></a><span class="summary-name">CMD_FSTAT</span> = <code title="8">8</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="CMD_HANDLE"></a><span class="summary-name">CMD_HANDLE</span> = <code title="102">102</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="CMD_INIT"></a><span class="summary-name">CMD_INIT</span> = <code title="1">1</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="CMD_LSTAT"></a><span class="summary-name">CMD_LSTAT</span> = <code title="7">7</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="CMD_MKDIR"></a><span class="summary-name">CMD_MKDIR</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="CMD_NAME"></a><span class="summary-name">CMD_NAME</span> = <code title="104">104</code>
+ </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.sftp_file-module.html#CMD_NAMES" class="summary-name">CMD_NAMES</a> = <code title="{1: 'init',
+ 2: 'version',
+ 3: 'open',
+ 4: 'close',
+ 5: 'read',
+ 6: 'write',
+ 7: 'lstat',
+ 8: 'fstat',
+..."><code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">init</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">version</code><code class="variable-quote">'</code><code class="variable-op">, </code>3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">open</code><code class="variable-quote">'</code><code class="variable-op">, </code>4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">close</code><code class="variable-quote">'</code><code class="variable-op">, </code>5<code class="variable-ellipsis">...</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="CMD_OPEN"></a><span class="summary-name">CMD_OPEN</span> = <code title="3">3</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="CMD_OPENDIR"></a><span class="summary-name">CMD_OPENDIR</span> = <code title="11">11</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="CMD_READ"></a><span class="summary-name">CMD_READ</span> = <code title="5">5</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="CMD_READDIR"></a><span class="summary-name">CMD_READDIR</span> = <code title="12">12</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="CMD_READLINK"></a><span class="summary-name">CMD_READLINK</span> = <code title="19">19</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="CMD_REALPATH"></a><span class="summary-name">CMD_REALPATH</span> = <code title="16">16</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="CMD_REMOVE"></a><span class="summary-name">CMD_REMOVE</span> = <code title="13">13</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="CMD_RENAME"></a><span class="summary-name">CMD_RENAME</span> = <code title="18">18</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="CMD_RMDIR"></a><span class="summary-name">CMD_RMDIR</span> = <code title="15">15</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="CMD_SETSTAT"></a><span class="summary-name">CMD_SETSTAT</span> = <code title="9">9</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="CMD_STAT"></a><span class="summary-name">CMD_STAT</span> = <code title="17">17</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="CMD_STATUS"></a><span class="summary-name">CMD_STATUS</span> = <code title="101">101</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="CMD_SYMLINK"></a><span class="summary-name">CMD_SYMLINK</span> = <code title="20">20</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="CMD_VERSION"></a><span class="summary-name">CMD_VERSION</span> = <code title="2">2</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="CMD_WRITE"></a><span class="summary-name">CMD_WRITE</span> = <code title="6">6</code>
+ </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.sftp_file-module.html#CONNECTION_FAILED_CODE" class="summary-name">CONNECTION_FAILED_CODE</a> = <code title="{1: 'Administratively prohibited',
+ 2: 'Connect failed',
+ 3: 'Unknown channel type',
+ 4: 'Resource shortage'}"><code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Administratively prohibited</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-op">:</code><code class="variable-ellipsis">...</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="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="DEBUG"></a><span class="summary-name">DEBUG</span> = <code title="10">10</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="DISCONNECT_AUTH_CANCELLED_BY_USER"></a><span class="summary-name">DISCONNECT_AUTH_CANCELLED_BY_USER</span> = <code title="13">13</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="DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE"></a><span class="summary-name">DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE</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="DISCONNECT_SERVICE_NOT_AVAILABLE"></a><span class="summary-name">DISCONNECT_SERVICE_NOT_AVAILABLE</span> = <code title="7">7</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="ERROR"></a><span class="summary-name">ERROR</span> = <code title="40">40</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="INFO"></a><span class="summary-name">INFO</span> = <code title="20">20</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="MSG_CHANNEL_CLOSE"></a><span class="summary-name">MSG_CHANNEL_CLOSE</span> = <code title="97">97</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="MSG_CHANNEL_DATA"></a><span class="summary-name">MSG_CHANNEL_DATA</span> = <code title="94">94</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="MSG_CHANNEL_EOF"></a><span class="summary-name">MSG_CHANNEL_EOF</span> = <code title="96">96</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="MSG_CHANNEL_EXTENDED_DATA"></a><span class="summary-name">MSG_CHANNEL_EXTENDED_DATA</span> = <code title="95">95</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="MSG_CHANNEL_FAILURE"></a><span class="summary-name">MSG_CHANNEL_FAILURE</span> = <code title="100">100</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="MSG_CHANNEL_OPEN"></a><span class="summary-name">MSG_CHANNEL_OPEN</span> = <code title="90">90</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="MSG_CHANNEL_OPEN_FAILURE"></a><span class="summary-name">MSG_CHANNEL_OPEN_FAILURE</span> = <code title="92">92</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="MSG_CHANNEL_OPEN_SUCCESS"></a><span class="summary-name">MSG_CHANNEL_OPEN_SUCCESS</span> = <code title="91">91</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="MSG_CHANNEL_REQUEST"></a><span class="summary-name">MSG_CHANNEL_REQUEST</span> = <code title="98">98</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="MSG_CHANNEL_SUCCESS"></a><span class="summary-name">MSG_CHANNEL_SUCCESS</span> = <code title="99">99</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="MSG_CHANNEL_WINDOW_ADJUST"></a><span class="summary-name">MSG_CHANNEL_WINDOW_ADJUST</span> = <code title="93">93</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="MSG_DEBUG"></a><span class="summary-name">MSG_DEBUG</span> = <code title="4">4</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="MSG_DISCONNECT"></a><span class="summary-name">MSG_DISCONNECT</span> = <code title="1">1</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="MSG_GLOBAL_REQUEST"></a><span class="summary-name">MSG_GLOBAL_REQUEST</span> = <code title="80">80</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="MSG_IGNORE"></a><span class="summary-name">MSG_IGNORE</span> = <code title="2">2</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="MSG_KEXINIT"></a><span class="summary-name">MSG_KEXINIT</span> = <code title="20">20</code>
+ </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.sftp_file-module.html#MSG_NAMES" class="summary-name">MSG_NAMES</a> = <code title="{1: 'disconnect',
+ 2: 'ignore',
+ 3: 'unimplemented',
+ 4: 'debug',
+ 5: 'service-request',
+ 6: 'service-accept',
+ 20: 'kexinit',
+ 21: 'newkeys',
+..."><code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">disconnect</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">ignore</code><code class="variable-quote">'</code><code class="variable-op">, </code>3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">unimplemented</code><code class="variable-quote">'</code><code class="variable-op">,</code><code class="variable-ellipsis">...</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="MSG_NEWKEYS"></a><span class="summary-name">MSG_NEWKEYS</span> = <code title="21">21</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="MSG_REQUEST_FAILURE"></a><span class="summary-name">MSG_REQUEST_FAILURE</span> = <code title="82">82</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="MSG_REQUEST_SUCCESS"></a><span class="summary-name">MSG_REQUEST_SUCCESS</span> = <code title="81">81</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="MSG_SERVICE_ACCEPT"></a><span class="summary-name">MSG_SERVICE_ACCEPT</span> = <code title="6">6</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="MSG_SERVICE_REQUEST"></a><span class="summary-name">MSG_SERVICE_REQUEST</span> = <code title="5">5</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="MSG_UNIMPLEMENTED"></a><span class="summary-name">MSG_UNIMPLEMENTED</span> = <code title="3">3</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="MSG_USERAUTH_BANNER"></a><span class="summary-name">MSG_USERAUTH_BANNER</span> = <code title="53">53</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="MSG_USERAUTH_FAILURE"></a><span class="summary-name">MSG_USERAUTH_FAILURE</span> = <code title="51">51</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="MSG_USERAUTH_INFO_REQUEST"></a><span class="summary-name">MSG_USERAUTH_INFO_REQUEST</span> = <code title="60">60</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="MSG_USERAUTH_INFO_RESPONSE"></a><span class="summary-name">MSG_USERAUTH_INFO_RESPONSE</span> = <code title="61">61</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="MSG_USERAUTH_PK_OK"></a><span class="summary-name">MSG_USERAUTH_PK_OK</span> = <code title="60">60</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="MSG_USERAUTH_REQUEST"></a><span class="summary-name">MSG_USERAUTH_REQUEST</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="MSG_USERAUTH_SUCCESS"></a><span class="summary-name">MSG_USERAUTH_SUCCESS</span> = <code title="52">52</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="OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED"></a><span class="summary-name">OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED</span> = <code title="1">1</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="OPEN_FAILED_CONNECT_FAILED"></a><span class="summary-name">OPEN_FAILED_CONNECT_FAILED</span> = <code title="2">2</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="OPEN_FAILED_RESOURCE_SHORTAGE"></a><span class="summary-name">OPEN_FAILED_RESOURCE_SHORTAGE</span> = <code title="4">4</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="OPEN_FAILED_UNKNOWN_CHANNEL_TYPE"></a><span class="summary-name">OPEN_FAILED_UNKNOWN_CHANNEL_TYPE</span> = <code title="3">3</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="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="PY22"></a><span class="summary-name">PY22</span> = <code title="False">False</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="SFTP_BAD_MESSAGE"></a><span class="summary-name">SFTP_BAD_MESSAGE</span> = <code title="5">5</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="SFTP_CONNECTION_LOST"></a><span class="summary-name">SFTP_CONNECTION_LOST</span> = <code title="7">7</code>
+ </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.sftp_file-module.html#SFTP_DESC" class="summary-name">SFTP_DESC</a> = <code title="['Success',
+ 'End of file',
+ 'No such file',
+ 'Permission denied',
+ 'Failure',
+ 'Bad message',
+ 'No connection',
+ 'Connection lost',
+..."><code class="variable-group">[</code><code class="variable-quote">'</code><code class="variable-string">Success</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">End of file</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">No such file</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">Permis</code><code class="variable-ellipsis">...</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="SFTP_EOF"></a><span class="summary-name">SFTP_EOF</span> = <code title="1">1</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="SFTP_FAILURE"></a><span class="summary-name">SFTP_FAILURE</span> = <code title="4">4</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="SFTP_FLAG_APPEND"></a><span class="summary-name">SFTP_FLAG_APPEND</span> = <code title="4">4</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="SFTP_FLAG_CREATE"></a><span class="summary-name">SFTP_FLAG_CREATE</span> = <code title="8">8</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="SFTP_FLAG_EXCL"></a><span class="summary-name">SFTP_FLAG_EXCL</span> = <code title="32">32</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="SFTP_FLAG_READ"></a><span class="summary-name">SFTP_FLAG_READ</span> = <code title="1">1</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="SFTP_FLAG_TRUNC"></a><span class="summary-name">SFTP_FLAG_TRUNC</span> = <code title="16">16</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="SFTP_FLAG_WRITE"></a><span class="summary-name">SFTP_FLAG_WRITE</span> = <code title="2">2</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="SFTP_NO_CONNECTION"></a><span class="summary-name">SFTP_NO_CONNECTION</span> = <code title="6">6</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="SFTP_NO_SUCH_FILE"></a><span class="summary-name">SFTP_NO_SUCH_FILE</span> = <code title="2">2</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="SFTP_OK"></a><span class="summary-name">SFTP_OK</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="SFTP_OP_UNSUPPORTED"></a><span class="summary-name">SFTP_OP_UNSUPPORTED</span> = <code title="8">8</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="SFTP_PERMISSION_DENIED"></a><span class="summary-name">SFTP_PERMISSION_DENIED</span> = <code title="3">3</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="WARNING"></a><span class="summary-name">WARNING</span> = <code title="30">30</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>
+</table>
+<!-- ==================== VARIABLES DETAILS ==================== -->
+<a name="section-VariablesDetails"></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">Variables Details</span></td>
+</tr>
+</table>
+<a name="CMD_NAMES"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">CMD_NAMES</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">init</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">version</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">open</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">close</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 5<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">read</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 6<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">write</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 7<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">lstat</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 8<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">fstat</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="CONNECTION_FAILED_CODE"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">CONNECTION_FAILED_CODE</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Administratively prohibited</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Connect failed</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Unknown channel type</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Resource shortage</code><code class="variable-quote">'</code><code class="variable-group">}</code>
+</pre></td></tr></table>
+</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="MSG_NAMES"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">MSG_NAMES</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">disconnect</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">ignore</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">unimplemented</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">debug</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 5<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">service-request</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 6<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">service-accept</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 20<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">kexinit</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 21<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">newkeys</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="SFTP_DESC"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">SFTP_DESC</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-group">[</code><code class="variable-quote">'</code><code class="variable-string">Success</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">End of file</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">No such file</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">Permission denied</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">Failure</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">Bad message</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">No connection</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">Connection lost</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+ </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 Jul 6 18:30:27 2008
+ </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.sftp_file-pysrc.html b/docs/paramiko.sftp_file-pysrc.html
new file mode 100644
index 0000000..5e9b4c7
--- /dev/null
+++ b/docs/paramiko.sftp_file-pysrc.html
@@ -0,0 +1,874 @@
+<?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.sftp_file</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> ::
+ Module&nbsp;sftp_file
+ </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.sftp_file-pysrc.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</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="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>
+<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">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">socket</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">threading</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">time</tt> </tt>
+<a name="L27"></a><tt class="py-lineno"> 27</tt> <tt class="py-line"> </tt>
+<a name="L28"></a><tt class="py-lineno"> 28</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="L29"></a><tt class="py-lineno"> 29</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=paramiko.sftp-module.html"><a title="paramiko.sftp" class="py-name" href="#" onclick="return doclink('link-3', 'sftp', 'link-3');">sftp</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-4" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-4', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-5" 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-5', 'file', 'link-5');">file</a></tt> <tt class="py-keyword">import</tt> <tt id="link-6" class="py-name" targets="Class paramiko.BufferedFile=paramiko.BufferedFile-class.html"><a title="paramiko.BufferedFile" class="py-name" href="#" onclick="return doclink('link-6', 'BufferedFile', 'link-6');">BufferedFile</a></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-7" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-7', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-8" 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-8', 'sftp_attr', 'link-8');">sftp_attr</a></tt> <tt class="py-keyword">import</tt> <tt id="link-9" class="py-name" targets="Class paramiko.SFTPAttributes=paramiko.SFTPAttributes-class.html"><a title="paramiko.SFTPAttributes" class="py-name" href="#" onclick="return doclink('link-9', 'SFTPAttributes', 'link-9');">SFTPAttributes</a></tt> </tt>
+<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="SFTPFile"></a><div id="SFTPFile-def"><a name="L34"></a><tt class="py-lineno"> 34</tt> <a class="py-toggle" href="#" id="SFTPFile-toggle" onclick="return toggle('SFTPFile');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.sftp_file.SFTPFile-class.html">SFTPFile</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="SFTPFile-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="SFTPFile-expanded"><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 class="py-docstring"> Proxy object for a file on the remote server, in client mode SFTP.</tt> </tt>
+<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="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__
+paramiko.AgentKey.__init__
+paramiko.BadAuthenticationType.__init__
+paramiko.BadHostKeyException.__init__
+paramiko.BufferedFile.__init__
+paramiko.Channel.__init__
+paramiko.ChannelException.__init__
+paramiko.DSSKey.__init__
+paramiko.HostKeys.__init__
+paramiko.Message.__init__
+paramiko.PKey.__init__
+paramiko.RSAKey.__init__
+paramiko.SFTPAttributes.__init__
+paramiko.SFTPClient.__init__
+paramiko.SFTPFile.__init__
+paramiko.SFTPHandle.__init__
+paramiko.SFTPServer.__init__
+paramiko.SFTPServerInterface.__init__
+paramiko.SSHClient.__init__
+paramiko.SSHConfig.__init__
+paramiko.SecurityOptions.__init__
+paramiko.SubsystemHandler.__init__
+paramiko.Transport.__init__
+paramiko.ber.BER.__init__
+paramiko.buffered_pipe.BufferedPipe.__init__
+paramiko.channel.ChannelStderrFile.__init__
+paramiko.compress.ZlibCompressor.__init__
+paramiko.compress.ZlibDecompressor.__init__
+paramiko.hostkeys.HostKeyEntry.__init__
+paramiko.kex_gex.KexGex.__init__
+paramiko.kex_group1.KexGroup1.__init__
+paramiko.logging22.Formatter.__init__
+paramiko.logging22.StreamHandler.__init__
+paramiko.logging22.logger.__init__
+paramiko.pipe.OrPipe.__init__
+paramiko.pipe.PosixPipe.__init__
+paramiko.pipe.WindowsPipe.__init__
+paramiko.primes.ModulusPack.__init__
+paramiko.rng.StrongLockingRandomPool.__init__
+paramiko.ssh_exception.PartialAuthentication.__init__
+paramiko.transport.ChannelMap.__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>
+<a name="L46"></a><tt class="py-lineno"> 46</tt> <tt class="py-line"> <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">handle</tt> </tt>
+<a name="L47"></a><tt class="py-lineno"> 47</tt> <tt class="py-line"> <tt id="link-15" class="py-name"><a title="paramiko.BufferedFile" class="py-name" href="#" onclick="return doclink('link-15', 'BufferedFile', 'link-6');">BufferedFile</a></tt><tt class="py-op">.</tt><tt class="py-name">_set_mode</tt><tt class="py-op">(</tt><tt class="py-name">self</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>
+<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">pipelined</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<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">_prefetching</tt> <tt class="py-op">=</tt> <tt class="py-name">False</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">_prefetch_done</tt> <tt class="py-op">=</tt> <tt class="py-name">False</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">_prefetch_data</tt> <tt class="py-op">=</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">self</tt><tt class="py-op">.</tt><tt class="py-name">_prefetch_reads</tt> <tt class="py-op">=</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">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>
+</div><a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line"> </tt>
+<a name="SFTPFile.__del__"></a><div id="SFTPFile.__del__-def"><a name="L55"></a><tt class="py-lineno"> 55</tt> <a class="py-toggle" href="#" id="SFTPFile.__del__-toggle" onclick="return toggle('SFTPFile.__del__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_file.SFTPFile-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="SFTPFile.__del__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPFile.__del__-expanded"><a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_close</tt><tt class="py-op">(</tt><tt class="py-name">async</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"> </tt>
+<a name="SFTPFile.close"></a><div id="SFTPFile.close-def"><a name="L58"></a><tt class="py-lineno"> 58</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-op">:</tt> </tt>
+</div><div id="SFTPFile.close-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPFile.close-expanded"><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">_close</tt><tt class="py-op">(</tt><tt class="py-name">async</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+</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="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
+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-17', 'DEBUG', 'link-17');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'close(%s)'</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 class="py-name">handle</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-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pipelined</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 id="link-18" class="py-name"><a title="paramiko.sftp" class="py-name" href="#" onclick="return doclink('link-18', 'sftp', 'link-3');">sftp</a></tt><tt class="py-op">.</tt><tt class="py-name">_finish_responses</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
+<a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"> <tt id="link-19" class="py-name"><a title="paramiko.BufferedFile" class="py-name" href="#" onclick="return doclink('link-19', 'BufferedFile', 'link-6');">BufferedFile</a></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
+paramiko.SFTPFile.close
+paramiko.SFTPHandle.close
+paramiko.SSHClient.close
+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-20', 'close', 'link-20');">close</a></tt><tt class="py-op">(</tt><tt class="py-name">self</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">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
+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-22', '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="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-name">self</tt><tt class="py-op">.</tt><tt id="link-23" class="py-name"><a title="paramiko.sftp" class="py-name" href="#" onclick="return doclink('link-23', 'sftp', 'link-3');">sftp</a></tt><tt class="py-op">.</tt><tt class="py-name">_request</tt><tt class="py-op">(</tt><tt id="link-24" class="py-name"><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-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="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>
+</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>
+<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">k</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="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
+<a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line"> <tt class="py-name">k</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">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-name">y</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="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="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="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>
+</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>
+<a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"><tt class="py-docstring"> if a block of data is present in the prefetch buffers, at the given</tt> </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"><tt class="py-docstring"> offset, return the offset of the relevant prefetch buffer. otherwise,</tt> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"><tt class="py-docstring"> return None. this guarantees nothing about the number of bytes</tt> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line"><tt class="py-docstring"> collected in the prefetch buffer so far.</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">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_data</tt><tt class="py-op">.</tt><tt id="link-26" 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-26', 'keys', 'link-26');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-keyword">if</tt> <tt class="py-name">i</tt> <tt class="py-op">&lt;=</tt> <tt class="py-name">offset</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">if</tt> <tt class="py-name">len</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">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-keyword">return</tt> <tt class="py-name">None</tt> </tt>
+<a name="L113"></a><tt class="py-lineno">113</tt> <tt class="py-line"> <tt class="py-name">index</tt> <tt class="py-op">=</tt> <tt class="py-name">max</tt><tt class="py-op">(</tt><tt class="py-name">k</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">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="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>
+</div><div id="SFTPFile._read_prefetch-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPFile._read_prefetch-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"> read data out of the prefetch buffer, if possible. if the data isn't</tt> </tt>
+<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="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>
+<a name="L130"></a><tt class="py-lineno">130</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_prefetch_done</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="L131"></a><tt class="py-lineno">131</tt> <tt class="py-line"> <tt class="py-keyword">break</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 id="link-27" class="py-name"><a title="paramiko.sftp" class="py-name" href="#" onclick="return doclink('link-27', 'sftp', 'link-3');">sftp</a></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="L133"></a><tt class="py-lineno">133</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_check_exception</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">offset</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_prefetching</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L136"></a><tt class="py-lineno">136</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
+<a name="L137"></a><tt class="py-lineno">137</tt> <tt class="py-line"> <tt id="link-28" 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-28', 'prefetch', 'link-28');">prefetch</a></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">offset</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">del</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">offset</tt><tt class="py-op">]</tt> </tt>
+<a name="L139"></a><tt class="py-lineno">139</tt> <tt class="py-line"> </tt>
+<a name="L140"></a><tt class="py-lineno">140</tt> <tt class="py-line"> <tt class="py-name">buf_offset</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-name">offset</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">buf_offset</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</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">self</tt><tt class="py-op">.</tt><tt class="py-name">_prefetch_data</tt><tt class="py-op">[</tt><tt class="py-name">offset</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-29" class="py-name"><a title="paramiko.SFTPFile.prefetch" class="py-name" href="#" onclick="return doclink('link-29', 'prefetch', 'link-28');">prefetch</a></tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-name">buf_offset</tt><tt class="py-op">]</tt> </tt>
+<a name="L143"></a><tt class="py-lineno">143</tt> <tt class="py-line"> <tt id="link-30" class="py-name"><a title="paramiko.SFTPFile.prefetch" class="py-name" href="#" onclick="return doclink('link-30', 'prefetch', 'link-28');">prefetch</a></tt> <tt class="py-op">=</tt> <tt id="link-31" class="py-name"><a title="paramiko.SFTPFile.prefetch" class="py-name" href="#" onclick="return doclink('link-31', 'prefetch', 'link-28');">prefetch</a></tt><tt class="py-op">[</tt><tt class="py-name">buf_offset</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">size</tt> <tt class="py-op">&lt;</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-32" class="py-name"><a title="paramiko.SFTPFile.prefetch" class="py-name" href="#" onclick="return doclink('link-32', 'prefetch', 'link-28');">prefetch</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">self</tt><tt class="py-op">.</tt><tt class="py-name">_prefetch_data</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-name">size</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-33" class="py-name"><a title="paramiko.SFTPFile.prefetch" class="py-name" href="#" onclick="return doclink('link-33', 'prefetch', 'link-28');">prefetch</a></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="L146"></a><tt class="py-lineno">146</tt> <tt class="py-line"> <tt id="link-34" class="py-name"><a title="paramiko.SFTPFile.prefetch" class="py-name" href="#" onclick="return doclink('link-34', 'prefetch', 'link-28');">prefetch</a></tt> <tt class="py-op">=</tt> <tt id="link-35" class="py-name"><a title="paramiko.SFTPFile.prefetch" class="py-name" href="#" onclick="return doclink('link-35', 'prefetch', 'link-28');">prefetch</a></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="L147"></a><tt class="py-lineno">147</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-36" class="py-name"><a title="paramiko.SFTPFile.prefetch" class="py-name" href="#" onclick="return doclink('link-36', 'prefetch', 'link-28');">prefetch</a></tt> </tt>
+</div><a name="L148"></a><tt class="py-lineno">148</tt> <tt class="py-line"> </tt>
+<a name="SFTPFile._read"></a><div id="SFTPFile._read-def"><a name="L149"></a><tt class="py-lineno">149</tt> <a class="py-toggle" href="#" id="SFTPFile._read-toggle" onclick="return toggle('SFTPFile._read');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_file.SFTPFile-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="SFTPFile._read-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPFile._read-expanded"><a name="L150"></a><tt class="py-lineno">150</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">size</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.SFTPFile.MAX_REQUEST_SIZE" class="py-name" href="#" onclick="return doclink('link-37', 'MAX_REQUEST_SIZE', 'link-10');">MAX_REQUEST_SIZE</a></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">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_prefetching</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">data</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_read_prefetch</tt><tt class="py-op">(</tt><tt class="py-name">size</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-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="L154"></a><tt class="py-lineno">154</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">data</tt> </tt>
+<a name="L155"></a><tt class="py-lineno">155</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 id="link-38" class="py-name"><a title="paramiko.sftp" class="py-name" href="#" onclick="return doclink('link-38', 'sftp', 'link-3');">sftp</a></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_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-39', 'CMD_READ', 'link-39');">CMD_READ</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">long</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-op">,</tt> <tt class="py-name">int</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="L156"></a><tt class="py-lineno">156</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_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-40', 'CMD_DATA', 'link-40');">CMD_DATA</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L157"></a><tt class="py-lineno">157</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 data'</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">return</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>
+</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="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
+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-45', 'CMD_WRITE', 'link-45');">CMD_WRITE</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">long</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-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 class="py-op">:</tt><tt class="py-name">chunk</tt><tt class="py-op">]</tt><tt class="py-op">)</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-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pipelined</tt> <tt class="py-keyword">or</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-46" class="py-name"><a title="paramiko.sftp" class="py-name" href="#" onclick="return doclink('link-46', 'sftp', 'link-3');">sftp</a></tt><tt class="py-op">.</tt><tt class="py-name">sock</tt><tt class="py-op">.</tt><tt id="link-47" class="py-name" targets="Method paramiko.Channel.recv_ready()=paramiko.Channel-class.html#recv_ready"><a title="paramiko.Channel.recv_ready" class="py-name" href="#" onclick="return doclink('link-47', 'recv_ready', 'link-47');">recv_ready</a></tt><tt class="py-op">(</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">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 id="link-48" class="py-name"><a title="paramiko.sftp" class="py-name" href="#" onclick="return doclink('link-48', 'sftp', 'link-3');">sftp</a></tt><tt class="py-op">.</tt><tt class="py-name">_read_response</tt><tt class="py-op">(</tt><tt class="py-name">req</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">if</tt> <tt class="py-name">t</tt> <tt class="py-op">!=</tt> <tt id="link-49" 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-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>
+</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>
+<a name="L173"></a><tt class="py-lineno">173</tt> <tt class="py-line"><tt class="py-docstring"> Set a timeout on read/write operations on the underlying socket or</tt> </tt>
+<a name="L174"></a><tt class="py-lineno">174</tt> <tt class="py-line"><tt class="py-docstring"> ssh L{Channel}.</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-docstring"> @see: L{Channel.settimeout}</tt> </tt>
+<a name="L177"></a><tt class="py-lineno">177</tt> <tt class="py-line"><tt class="py-docstring"> @param timeout: seconds to wait for a pending read/write operation</tt> </tt>
+<a name="L178"></a><tt class="py-lineno">178</tt> <tt class="py-line"><tt class="py-docstring"> before raising C{socket.timeout}, or C{None} for no timeout</tt> </tt>
+<a name="L179"></a><tt class="py-lineno">179</tt> <tt class="py-line"><tt class="py-docstring"> @type timeout: float</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-name">self</tt><tt class="py-op">.</tt><tt id="link-51" class="py-name"><a title="paramiko.sftp" class="py-name" href="#" onclick="return doclink('link-51', 'sftp', 'link-3');">sftp</a></tt><tt class="py-op">.</tt><tt class="py-name">sock</tt><tt class="py-op">.</tt><tt id="link-52" 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-52', 'settimeout', 'link-52');">settimeout</a></tt><tt class="py-op">(</tt><tt class="py-name">timeout</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L182"></a><tt class="py-lineno">182</tt> <tt class="py-line"> </tt>
+<a name="SFTPFile.gettimeout"></a><div id="SFTPFile.gettimeout-def"><a name="L183"></a><tt class="py-lineno">183</tt> <a class="py-toggle" href="#" id="SFTPFile.gettimeout-toggle" onclick="return toggle('SFTPFile.gettimeout');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_file.SFTPFile-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="SFTPFile.gettimeout-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPFile.gettimeout-expanded"><a name="L184"></a><tt class="py-lineno">184</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L185"></a><tt class="py-lineno">185</tt> <tt class="py-line"><tt class="py-docstring"> Returns the timeout in seconds (as a float) associated with the socket</tt> </tt>
+<a name="L186"></a><tt class="py-lineno">186</tt> <tt class="py-line"><tt class="py-docstring"> or ssh L{Channel} used for this file.</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"> @see: L{Channel.gettimeout}</tt> </tt>
+<a name="L189"></a><tt class="py-lineno">189</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: float</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">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-53" class="py-name"><a title="paramiko.sftp" class="py-name" href="#" onclick="return doclink('link-53', 'sftp', 'link-3');">sftp</a></tt><tt class="py-op">.</tt><tt class="py-name">sock</tt><tt class="py-op">.</tt><tt id="link-54" class="py-name" targets="Method paramiko.Channel.gettimeout()=paramiko.Channel-class.html#gettimeout,Method paramiko.SFTPFile.gettimeout()=paramiko.SFTPFile-class.html#gettimeout"><a title="paramiko.Channel.gettimeout
+paramiko.SFTPFile.gettimeout" class="py-name" href="#" onclick="return doclink('link-54', 'gettimeout', 'link-54');">gettimeout</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="SFTPFile.setblocking"></a><div id="SFTPFile.setblocking-def"><a name="L193"></a><tt class="py-lineno">193</tt> <a class="py-toggle" href="#" id="SFTPFile.setblocking-toggle" onclick="return toggle('SFTPFile.setblocking');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_file.SFTPFile-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="SFTPFile.setblocking-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPFile.setblocking-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"> Set blocking or non-blocking mode on the underiying socket or ssh</tt> </tt>
+<a name="L196"></a><tt class="py-lineno">196</tt> <tt class="py-line"><tt class="py-docstring"> L{Channel}.</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"> @see: L{Channel.setblocking}</tt> </tt>
+<a name="L199"></a><tt class="py-lineno">199</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="L200"></a><tt class="py-lineno">200</tt> <tt class="py-line"><tt class="py-docstring"> mode.</tt> </tt>
+<a name="L201"></a><tt class="py-lineno">201</tt> <tt class="py-line"><tt class="py-docstring"> @type blocking: int</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-name">self</tt><tt class="py-op">.</tt><tt id="link-55" class="py-name"><a title="paramiko.sftp" class="py-name" href="#" onclick="return doclink('link-55', 'sftp', 'link-3');">sftp</a></tt><tt class="py-op">.</tt><tt class="py-name">sock</tt><tt class="py-op">.</tt><tt id="link-56" class="py-name" targets="Method paramiko.Channel.setblocking()=paramiko.Channel-class.html#setblocking,Method paramiko.SFTPFile.setblocking()=paramiko.SFTPFile-class.html#setblocking"><a title="paramiko.Channel.setblocking
+paramiko.SFTPFile.setblocking" class="py-name" href="#" onclick="return doclink('link-56', 'setblocking', 'link-56');">setblocking</a></tt><tt class="py-op">(</tt><tt class="py-name">blocking</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L204"></a><tt class="py-lineno">204</tt> <tt class="py-line"> </tt>
+<a name="SFTPFile.seek"></a><div id="SFTPFile.seek-def"><a name="L205"></a><tt class="py-lineno">205</tt> <a class="py-toggle" href="#" id="SFTPFile.seek-toggle" onclick="return toggle('SFTPFile.seek');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_file.SFTPFile-class.html#seek">seek</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">whence</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SFTPFile.seek-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPFile.seek-expanded"><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 id="link-57" class="py-name" targets="Method paramiko.BufferedFile.flush()=paramiko.BufferedFile-class.html#flush"><a title="paramiko.BufferedFile.flush" class="py-name" href="#" onclick="return doclink('link-57', 'flush', 'link-57');">flush</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-keyword">if</tt> <tt class="py-name">whence</tt> <tt class="py-op">==</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-58" class="py-name" targets="Variable paramiko.BufferedFile.SEEK_SET=paramiko.BufferedFile-class.html#SEEK_SET"><a title="paramiko.BufferedFile.SEEK_SET" class="py-name" href="#" onclick="return doclink('link-58', 'SEEK_SET', 'link-58');">SEEK_SET</a></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 class="py-name">_realpos</tt> <tt class="py-op">=</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">offset</tt> </tt>
+<a name="L209"></a><tt class="py-lineno">209</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">whence</tt> <tt class="py-op">==</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-59" class="py-name" targets="Variable paramiko.BufferedFile.SEEK_CUR=paramiko.BufferedFile-class.html#SEEK_CUR"><a title="paramiko.BufferedFile.SEEK_CUR" class="py-name" href="#" onclick="return doclink('link-59', 'SEEK_CUR', 'link-59');">SEEK_CUR</a></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">_pos</tt> <tt class="py-op">+=</tt> <tt class="py-name">offset</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">_realpos</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_pos</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_realpos</tt> <tt class="py-op">=</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">_get_size</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-name">offset</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">_rbuffer</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
+</div><a name="L215"></a><tt class="py-lineno">215</tt> <tt class="py-line"> </tt>
+<a name="SFTPFile.stat"></a><div id="SFTPFile.stat-def"><a name="L216"></a><tt class="py-lineno">216</tt> <a class="py-toggle" href="#" id="SFTPFile.stat-toggle" onclick="return toggle('SFTPFile.stat');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_file.SFTPFile-class.html#stat">stat</a><tt 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.stat-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPFile.stat-expanded"><a name="L217"></a><tt class="py-lineno">217</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L218"></a><tt class="py-lineno">218</tt> <tt class="py-line"><tt class="py-docstring"> Retrieve information about this file from the remote system. This is</tt> </tt>
+<a name="L219"></a><tt class="py-lineno">219</tt> <tt class="py-line"><tt class="py-docstring"> exactly like L{SFTP.stat}, except that it operates on an already-open</tt> </tt>
+<a name="L220"></a><tt class="py-lineno">220</tt> <tt class="py-line"><tt class="py-docstring"> file.</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"> @return: an object containing attributes about this file.</tt> </tt>
+<a name="L223"></a><tt class="py-lineno">223</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: SFTPAttributes</tt> </tt>
+<a name="L224"></a><tt class="py-lineno">224</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L225"></a><tt class="py-lineno">225</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 id="link-60" class="py-name"><a title="paramiko.sftp" class="py-name" href="#" onclick="return doclink('link-60', 'sftp', 'link-3');">sftp</a></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_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-61', 'CMD_FSTAT', 'link-61');">CMD_FSTAT</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="L226"></a><tt class="py-lineno">226</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" 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-62', 'CMD_ATTRS', 'link-62');">CMD_ATTRS</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-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 attributes'</tt><tt class="py-op">)</tt> </tt>
+<a name="L228"></a><tt class="py-lineno">228</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-64" class="py-name"><a title="paramiko.SFTPAttributes" class="py-name" href="#" onclick="return doclink('link-64', 'SFTPAttributes', 'link-9');">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="L229"></a><tt class="py-lineno">229</tt> <tt class="py-line"> </tt>
+<a name="SFTPFile.chmod"></a><div id="SFTPFile.chmod-def"><a name="L230"></a><tt class="py-lineno">230</tt> <a class="py-toggle" href="#" id="SFTPFile.chmod-toggle" onclick="return toggle('SFTPFile.chmod');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_file.SFTPFile-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">mode</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SFTPFile.chmod-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPFile.chmod-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"> Change the mode (permissions) of this file. The permissions are</tt> </tt>
+<a name="L233"></a><tt class="py-lineno">233</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="L234"></a><tt class="py-lineno">234</tt> <tt class="py-line"><tt class="py-docstring"> function.</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"> @param mode: new permissions</tt> </tt>
+<a name="L237"></a><tt class="py-lineno">237</tt> <tt class="py-line"><tt class="py-docstring"> @type mode: int</tt> </tt>
+<a name="L238"></a><tt class="py-lineno">238</tt> <tt class="py-line"><tt class="py-docstring"> """</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-65" class="py-name"><a title="paramiko.sftp" class="py-name" href="#" onclick="return doclink('link-65', '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-66" 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-66', 'DEBUG', 'link-17');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'chmod(%s, %r)'</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">self</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-name">mode</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">attr</tt> <tt class="py-op">=</tt> <tt id="link-67" class="py-name"><a title="paramiko.SFTPAttributes" class="py-name" href="#" onclick="return doclink('link-67', 'SFTPAttributes', 'link-9');">SFTPAttributes</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-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="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-68" class="py-name"><a title="paramiko.sftp" class="py-name" href="#" onclick="return doclink('link-68', 'sftp', 'link-3');">sftp</a></tt><tt class="py-op">.</tt><tt class="py-name">_request</tt><tt class="py-op">(</tt><tt id="link-69" 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-69', 'CMD_FSETSTAT', 'link-69');">CMD_FSETSTAT</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">attr</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L243"></a><tt class="py-lineno">243</tt> <tt class="py-line"> </tt>
+<a name="SFTPFile.chown"></a><div id="SFTPFile.chown-def"><a name="L244"></a><tt class="py-lineno">244</tt> <a class="py-toggle" href="#" id="SFTPFile.chown-toggle" onclick="return toggle('SFTPFile.chown');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_file.SFTPFile-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">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="SFTPFile.chown-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPFile.chown-expanded"><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"> Change the owner (C{uid}) and group (C{gid}) of this file. As with</tt> </tt>
+<a name="L247"></a><tt class="py-lineno">247</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="L248"></a><tt class="py-lineno">248</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="L249"></a><tt class="py-lineno">249</tt> <tt class="py-line"><tt class="py-docstring"> owner and group.</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"> @param uid: new owner's uid</tt> </tt>
+<a name="L252"></a><tt class="py-lineno">252</tt> <tt class="py-line"><tt class="py-docstring"> @type uid: int</tt> </tt>
+<a name="L253"></a><tt class="py-lineno">253</tt> <tt class="py-line"><tt class="py-docstring"> @param gid: new group id</tt> </tt>
+<a name="L254"></a><tt class="py-lineno">254</tt> <tt class="py-line"><tt class="py-docstring"> @type gid: int</tt> </tt>
+<a name="L255"></a><tt class="py-lineno">255</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L256"></a><tt class="py-lineno">256</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-70" class="py-name"><a title="paramiko.sftp" class="py-name" href="#" onclick="return doclink('link-70', '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-71" 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-71', 'DEBUG', 'link-17');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'chown(%s, %r, %r)'</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">self</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-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="L257"></a><tt class="py-lineno">257</tt> <tt class="py-line"> <tt class="py-name">attr</tt> <tt class="py-op">=</tt> <tt id="link-72" class="py-name"><a title="paramiko.SFTPAttributes" class="py-name" href="#" onclick="return doclink('link-72', 'SFTPAttributes', 'link-9');">SFTPAttributes</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">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="L259"></a><tt class="py-lineno">259</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.sftp" class="py-name" href="#" onclick="return doclink('link-73', 'sftp', 'link-3');">sftp</a></tt><tt class="py-op">.</tt><tt class="py-name">_request</tt><tt class="py-op">(</tt><tt id="link-74" class="py-name"><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-74', 'CMD_FSETSTAT', 'link-69');">CMD_FSETSTAT</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">attr</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="SFTPFile.utime"></a><div id="SFTPFile.utime-def"><a name="L261"></a><tt class="py-lineno">261</tt> <a class="py-toggle" href="#" id="SFTPFile.utime-toggle" onclick="return toggle('SFTPFile.utime');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_file.SFTPFile-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">times</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SFTPFile.utime-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPFile.utime-expanded"><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"> Set the access and modified times of this file. If</tt> </tt>
+<a name="L264"></a><tt class="py-lineno">264</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="L265"></a><tt class="py-lineno">265</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="L266"></a><tt class="py-lineno">266</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="L267"></a><tt class="py-lineno">267</tt> <tt class="py-line"><tt class="py-docstring"> modified times, respectively. This bizarre API is mimicked from python</tt> </tt>
+<a name="L268"></a><tt class="py-lineno">268</tt> <tt class="py-line"><tt class="py-docstring"> for the sake of consistency -- I apologize.</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 times: C{None} or a tuple of (access time, modified time) in</tt> </tt>
+<a name="L271"></a><tt class="py-lineno">271</tt> <tt class="py-line"><tt class="py-docstring"> standard internet epoch time (seconds since 01 January 1970 GMT)</tt> </tt>
+<a name="L272"></a><tt class="py-lineno">272</tt> <tt class="py-line"><tt class="py-docstring"> @type times: tuple(int)</tt> </tt>
+<a name="L273"></a><tt class="py-lineno">273</tt> <tt class="py-line"><tt class="py-docstring"> """</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-name">times</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</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">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="L276"></a><tt class="py-lineno">276</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-75" class="py-name"><a title="paramiko.sftp" class="py-name" href="#" onclick="return doclink('link-75', '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-76" 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-76', 'DEBUG', 'link-17');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'utime(%s, %r)'</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">self</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-name">times</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L277"></a><tt class="py-lineno">277</tt> <tt class="py-line"> <tt class="py-name">attr</tt> <tt class="py-op">=</tt> <tt id="link-77" class="py-name"><a title="paramiko.SFTPAttributes" class="py-name" href="#" onclick="return doclink('link-77', 'SFTPAttributes', 'link-9');">SFTPAttributes</a></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">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="L279"></a><tt class="py-lineno">279</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-78" class="py-name"><a title="paramiko.sftp" class="py-name" href="#" onclick="return doclink('link-78', 'sftp', 'link-3');">sftp</a></tt><tt class="py-op">.</tt><tt class="py-name">_request</tt><tt class="py-op">(</tt><tt id="link-79" class="py-name"><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-79', 'CMD_FSETSTAT', 'link-69');">CMD_FSETSTAT</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">attr</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="SFTPFile.truncate"></a><div id="SFTPFile.truncate-def"><a name="L281"></a><tt class="py-lineno">281</tt> <a class="py-toggle" href="#" id="SFTPFile.truncate-toggle" onclick="return toggle('SFTPFile.truncate');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_file.SFTPFile-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">size</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SFTPFile.truncate-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPFile.truncate-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"> Change the size of this file. This usually extends</tt> </tt>
+<a name="L284"></a><tt class="py-lineno">284</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="L285"></a><tt class="py-lineno">285</tt> <tt class="py-line"><tt class="py-docstring"> python file objects.</tt> </tt>
+<a name="L286"></a><tt class="py-lineno">286</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L287"></a><tt class="py-lineno">287</tt> <tt class="py-line"><tt class="py-docstring"> @param size: the new size of the file</tt> </tt>
+<a name="L288"></a><tt class="py-lineno">288</tt> <tt class="py-line"><tt class="py-docstring"> @type size: int or long</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-name">self</tt><tt class="py-op">.</tt><tt id="link-80" class="py-name"><a title="paramiko.sftp" class="py-name" href="#" onclick="return doclink('link-80', '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-81" 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-81', 'DEBUG', 'link-17');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'truncate(%s, %r)'</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">self</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-name">size</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">attr</tt> <tt class="py-op">=</tt> <tt id="link-82" class="py-name"><a title="paramiko.SFTPAttributes" class="py-name" href="#" onclick="return doclink('link-82', 'SFTPAttributes', 'link-9');">SFTPAttributes</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">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="L293"></a><tt class="py-lineno">293</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-83" class="py-name"><a title="paramiko.sftp" class="py-name" href="#" onclick="return doclink('link-83', 'sftp', 'link-3');">sftp</a></tt><tt class="py-op">.</tt><tt class="py-name">_request</tt><tt class="py-op">(</tt><tt id="link-84" class="py-name"><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-84', 'CMD_FSETSTAT', 'link-69');">CMD_FSETSTAT</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">attr</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L294"></a><tt class="py-lineno">294</tt> <tt class="py-line"> </tt>
+<a name="SFTPFile.check"></a><div id="SFTPFile.check-def"><a name="L295"></a><tt class="py-lineno">295</tt> <a class="py-toggle" href="#" id="SFTPFile.check-toggle" onclick="return toggle('SFTPFile.check');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_file.SFTPFile-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">hash_algorithm</tt><tt class="py-op">,</tt> <tt class="py-param">offset</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-param">length</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-param">block_size</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SFTPFile.check-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPFile.check-expanded"><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"> Ask the server for a hash of a section of this file. This can be used</tt> </tt>
+<a name="L298"></a><tt class="py-lineno">298</tt> <tt class="py-line"><tt class="py-docstring"> to verify a successful upload or download, or for various rsync-like</tt> </tt>
+<a name="L299"></a><tt class="py-lineno">299</tt> <tt class="py-line"><tt class="py-docstring"> operations.</tt> </tt>
+<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"> The file is hashed from C{offset}, for C{length} bytes. If C{length}</tt> </tt>
+<a name="L302"></a><tt class="py-lineno">302</tt> <tt class="py-line"><tt class="py-docstring"> is 0, the remainder of the file is hashed. Thus, if both C{offset}</tt> </tt>
+<a name="L303"></a><tt class="py-lineno">303</tt> <tt class="py-line"><tt class="py-docstring"> and C{length} are zero, the entire file is hashed.</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-docstring"> Normally, C{block_size} will be 0 (the default), and this method will</tt> </tt>
+<a name="L306"></a><tt class="py-lineno">306</tt> <tt class="py-line"><tt class="py-docstring"> return a byte string representing the requested hash (for example, a</tt> </tt>
+<a name="L307"></a><tt class="py-lineno">307</tt> <tt class="py-line"><tt class="py-docstring"> string of length 16 for MD5, or 20 for SHA-1). If a non-zero</tt> </tt>
+<a name="L308"></a><tt class="py-lineno">308</tt> <tt class="py-line"><tt class="py-docstring"> C{block_size} is given, each chunk of the file (from C{offset} to</tt> </tt>
+<a name="L309"></a><tt class="py-lineno">309</tt> <tt class="py-line"><tt class="py-docstring"> C{offset + length}) of C{block_size} bytes is computed as a separate</tt> </tt>
+<a name="L310"></a><tt class="py-lineno">310</tt> <tt class="py-line"><tt class="py-docstring"> hash. The hash results are all concatenated and returned as a single</tt> </tt>
+<a name="L311"></a><tt class="py-lineno">311</tt> <tt class="py-line"><tt class="py-docstring"> string.</tt> </tt>
+<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"> For example, C{check('sha1', 0, 1024, 512)} will return a string of</tt> </tt>
+<a name="L314"></a><tt class="py-lineno">314</tt> <tt class="py-line"><tt class="py-docstring"> length 40. The first 20 bytes will be the SHA-1 of the first 512 bytes</tt> </tt>
+<a name="L315"></a><tt class="py-lineno">315</tt> <tt class="py-line"><tt class="py-docstring"> of the file, and the last 20 bytes will be the SHA-1 of the next 512</tt> </tt>
+<a name="L316"></a><tt class="py-lineno">316</tt> <tt class="py-line"><tt class="py-docstring"> bytes.</tt> </tt>
+<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"> @param hash_algorithm: the name of the hash algorithm to use (normally</tt> </tt>
+<a name="L319"></a><tt class="py-lineno">319</tt> <tt class="py-line"><tt class="py-docstring"> C{"sha1"} or C{"md5"})</tt> </tt>
+<a name="L320"></a><tt class="py-lineno">320</tt> <tt class="py-line"><tt class="py-docstring"> @type hash_algorithm: str</tt> </tt>
+<a name="L321"></a><tt class="py-lineno">321</tt> <tt class="py-line"><tt class="py-docstring"> @param offset: offset into the file to begin hashing (0 means to start</tt> </tt>
+<a name="L322"></a><tt class="py-lineno">322</tt> <tt class="py-line"><tt class="py-docstring"> from the beginning)</tt> </tt>
+<a name="L323"></a><tt class="py-lineno">323</tt> <tt class="py-line"><tt class="py-docstring"> @type offset: int or long</tt> </tt>
+<a name="L324"></a><tt class="py-lineno">324</tt> <tt class="py-line"><tt class="py-docstring"> @param length: number of bytes to hash (0 means continue to the end of</tt> </tt>
+<a name="L325"></a><tt class="py-lineno">325</tt> <tt class="py-line"><tt class="py-docstring"> the file)</tt> </tt>
+<a name="L326"></a><tt class="py-lineno">326</tt> <tt class="py-line"><tt class="py-docstring"> @type length: int or long</tt> </tt>
+<a name="L327"></a><tt class="py-lineno">327</tt> <tt class="py-line"><tt class="py-docstring"> @param block_size: number of bytes to hash per result (must not be less</tt> </tt>
+<a name="L328"></a><tt class="py-lineno">328</tt> <tt class="py-line"><tt class="py-docstring"> than 256; 0 means to compute only one hash of the entire segment)</tt> </tt>
+<a name="L329"></a><tt class="py-lineno">329</tt> <tt class="py-line"><tt class="py-docstring"> @type block_size: int</tt> </tt>
+<a name="L330"></a><tt class="py-lineno">330</tt> <tt class="py-line"><tt class="py-docstring"> @return: string of bytes representing the hash of each block,</tt> </tt>
+<a name="L331"></a><tt class="py-lineno">331</tt> <tt class="py-line"><tt class="py-docstring"> concatenated together</tt> </tt>
+<a name="L332"></a><tt class="py-lineno">332</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: str</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"> @note: Many (most?) servers don't support this extension yet.</tt> </tt>
+<a name="L335"></a><tt class="py-lineno">335</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L336"></a><tt class="py-lineno">336</tt> <tt class="py-line"><tt class="py-docstring"> @raise IOError: if the server doesn't support the "check-file"</tt> </tt>
+<a name="L337"></a><tt class="py-lineno">337</tt> <tt class="py-line"><tt class="py-docstring"> extension, or possibly doesn't support the hash algorithm</tt> </tt>
+<a name="L338"></a><tt class="py-lineno">338</tt> <tt class="py-line"><tt class="py-docstring"> requested</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"> @since: 1.4</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">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 id="link-85" class="py-name"><a title="paramiko.sftp" class="py-name" href="#" onclick="return doclink('link-85', 'sftp', 'link-3');">sftp</a></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_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-86', 'CMD_EXTENDED', 'link-86');">CMD_EXTENDED</a></tt><tt class="py-op">,</tt> <tt class="py-string">'check-file'</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="L343"></a><tt class="py-lineno">343</tt> <tt class="py-line"> <tt class="py-name">hash_algorithm</tt><tt class="py-op">,</tt> <tt class="py-name">long</tt><tt class="py-op">(</tt><tt class="py-name">offset</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">length</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">block_size</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">ext</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-87" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-87', 'get_string', 'link-42');">get_string</a></tt><tt class="py-op">(</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">alg</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-88" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-88', 'get_string', 'link-42');">get_string</a></tt><tt class="py-op">(</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">data</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-89" class="py-name" targets="Method paramiko.Message.get_remainder()=paramiko.Message-class.html#get_remainder"><a title="paramiko.Message.get_remainder" class="py-name" href="#" onclick="return doclink('link-89', 'get_remainder', 'link-89');">get_remainder</a></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-keyword">return</tt> <tt class="py-name">data</tt> </tt>
+</div><a name="L348"></a><tt class="py-lineno">348</tt> <tt class="py-line"> </tt>
+<a name="SFTPFile.set_pipelined"></a><div id="SFTPFile.set_pipelined-def"><a name="L349"></a><tt class="py-lineno">349</tt> <a class="py-toggle" href="#" id="SFTPFile.set_pipelined-toggle" onclick="return toggle('SFTPFile.set_pipelined');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_file.SFTPFile-class.html#set_pipelined">set_pipelined</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">pipelined</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="SFTPFile.set_pipelined-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPFile.set_pipelined-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"> Turn on/off the pipelining of write operations to this file. When</tt> </tt>
+<a name="L352"></a><tt class="py-lineno">352</tt> <tt class="py-line"><tt class="py-docstring"> pipelining is on, paramiko won't wait for the server response after</tt> </tt>
+<a name="L353"></a><tt class="py-lineno">353</tt> <tt class="py-line"><tt class="py-docstring"> each write operation. Instead, they're collected as they come in.</tt> </tt>
+<a name="L354"></a><tt class="py-lineno">354</tt> <tt class="py-line"><tt class="py-docstring"> At the first non-write operation (including L{close}), all remaining</tt> </tt>
+<a name="L355"></a><tt class="py-lineno">355</tt> <tt class="py-line"><tt class="py-docstring"> server responses are collected. This means that if there was an error</tt> </tt>
+<a name="L356"></a><tt class="py-lineno">356</tt> <tt class="py-line"><tt class="py-docstring"> with one of your later writes, an exception might be thrown from</tt> </tt>
+<a name="L357"></a><tt class="py-lineno">357</tt> <tt class="py-line"><tt class="py-docstring"> within L{close} instead of L{write}.</tt> </tt>
+<a name="L358"></a><tt class="py-lineno">358</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L359"></a><tt class="py-lineno">359</tt> <tt class="py-line"><tt class="py-docstring"> By default, files are I{not} pipelined.</tt> </tt>
+<a name="L360"></a><tt class="py-lineno">360</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L361"></a><tt class="py-lineno">361</tt> <tt class="py-line"><tt class="py-docstring"> @param pipelined: C{True} if pipelining should be turned on for this</tt> </tt>
+<a name="L362"></a><tt class="py-lineno">362</tt> <tt class="py-line"><tt class="py-docstring"> file; C{False} otherwise</tt> </tt>
+<a name="L363"></a><tt class="py-lineno">363</tt> <tt class="py-line"><tt class="py-docstring"> @type pipelined: bool</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"> @since: 1.5</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pipelined</tt> <tt class="py-op">=</tt> <tt class="py-name">pipelined</tt> </tt>
+</div><a name="L368"></a><tt class="py-lineno">368</tt> <tt class="py-line"> </tt>
+<a name="SFTPFile.prefetch"></a><div id="SFTPFile.prefetch-def"><a name="L369"></a><tt class="py-lineno">369</tt> <a class="py-toggle" href="#" id="SFTPFile.prefetch-toggle" onclick="return toggle('SFTPFile.prefetch');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_file.SFTPFile-class.html#prefetch">prefetch</a><tt 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.prefetch-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPFile.prefetch-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"> Pre-fetch the remaining contents of this file in anticipation of</tt> </tt>
+<a name="L372"></a><tt class="py-lineno">372</tt> <tt class="py-line"><tt class="py-docstring"> future L{read} calls. If reading the entire file, pre-fetching can</tt> </tt>
+<a name="L373"></a><tt class="py-lineno">373</tt> <tt class="py-line"><tt class="py-docstring"> dramatically improve the download speed by avoiding roundtrip latency.</tt> </tt>
+<a name="L374"></a><tt class="py-lineno">374</tt> <tt class="py-line"><tt class="py-docstring"> The file's contents are incrementally buffered in a background thread.</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"> The prefetched data is stored in a buffer until read via the L{read}</tt> </tt>
+<a name="L377"></a><tt class="py-lineno">377</tt> <tt class="py-line"><tt class="py-docstring"> method. Once data has been read, it's removed from the buffer. The</tt> </tt>
+<a name="L378"></a><tt class="py-lineno">378</tt> <tt class="py-line"><tt class="py-docstring"> data may be read in a random order (using L{seek}); chunks of the</tt> </tt>
+<a name="L379"></a><tt class="py-lineno">379</tt> <tt class="py-line"><tt class="py-docstring"> buffer that haven't been read will continue to be buffered.</tt> </tt>
+<a name="L380"></a><tt class="py-lineno">380</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L381"></a><tt class="py-lineno">381</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.5.1</tt> </tt>
+<a name="L382"></a><tt class="py-lineno">382</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L383"></a><tt class="py-lineno">383</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 id="link-90" 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-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="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>
+<a name="L389"></a><tt class="py-lineno">389</tt> <tt class="py-line"> <tt class="py-name">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">n</tt><tt class="py-op">,</tt> <tt class="py-name">chunk</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">n</tt> <tt class="py-op">+=</tt> <tt class="py-name">chunk</tt> </tt>
+<a name="L391"></a><tt class="py-lineno">391</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">chunks</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="L392"></a><tt class="py-lineno">392</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">chunks</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="SFTPFile.readv"></a><div id="SFTPFile.readv-def"><a name="L394"></a><tt class="py-lineno">394</tt> <a class="py-toggle" href="#" id="SFTPFile.readv-toggle" onclick="return toggle('SFTPFile.readv');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_file.SFTPFile-class.html#readv">readv</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.readv-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPFile.readv-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"> Read a set of blocks from the file by (offset, length). This is more</tt> </tt>
+<a name="L397"></a><tt class="py-lineno">397</tt> <tt class="py-line"><tt class="py-docstring"> efficient than doing a series of L{seek} and L{read} calls, since the</tt> </tt>
+<a name="L398"></a><tt class="py-lineno">398</tt> <tt class="py-line"><tt class="py-docstring"> prefetch machinery is used to retrieve all the requested blocks at</tt> </tt>
+<a name="L399"></a><tt class="py-lineno">399</tt> <tt class="py-line"><tt class="py-docstring"> once.</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-docstring"> @param chunks: a list of (offset, length) tuples indicating which</tt> </tt>
+<a name="L402"></a><tt class="py-lineno">402</tt> <tt class="py-line"><tt class="py-docstring"> sections of the file to read</tt> </tt>
+<a name="L403"></a><tt class="py-lineno">403</tt> <tt class="py-line"><tt class="py-docstring"> @type chunks: list(tuple(long, int))</tt> </tt>
+<a name="L404"></a><tt class="py-lineno">404</tt> <tt class="py-line"><tt class="py-docstring"> @return: a list of blocks read, in the same order as in C{chunks}</tt> </tt>
+<a name="L405"></a><tt class="py-lineno">405</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: list(str)</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"> @since: 1.5.4</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-name">self</tt><tt class="py-op">.</tt><tt id="link-92" class="py-name"><a title="paramiko.sftp" class="py-name" href="#" onclick="return doclink('link-92', '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-93" 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-93', 'DEBUG', 'link-17');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'readv(%s, %r)'</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">self</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-name">chunks</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>
+<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="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="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>
+<a name="L422"></a><tt class="py-lineno">422</tt> <tt class="py-line"> <tt class="py-name">size</tt> <tt class="py-op">-=</tt> <tt class="py-name">chunk_size</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-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="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
+paramiko.SFTPHandle.read
+paramiko.buffered_pipe.BufferedPipe.read" class="py-name" href="#" onclick="return doclink('link-96', 'read', 'link-96');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">x</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</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="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>
+<a name="L436"></a><tt class="py-lineno">436</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-97" 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-97', '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="L437"></a><tt class="py-lineno">437</tt> <tt class="py-line"> <tt class="py-keyword">except</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">return</tt> <tt class="py-number">0</tt> </tt>
+</div><a name="L439"></a><tt class="py-lineno">439</tt> <tt class="py-line"> </tt>
+<a name="SFTPFile._start_prefetch"></a><div id="SFTPFile._start_prefetch-def"><a name="L440"></a><tt class="py-lineno">440</tt> <a class="py-toggle" href="#" id="SFTPFile._start_prefetch-toggle" onclick="return toggle('SFTPFile._start_prefetch');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_file.SFTPFile-class.html#_start_prefetch">_start_prefetch</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._start_prefetch-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPFile._start_prefetch-expanded"><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">_prefetching</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L442"></a><tt class="py-lineno">442</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_prefetch_done</tt> <tt class="py-op">=</tt> <tt class="py-name">False</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">_prefetch_reads</tt><tt class="py-op">.</tt><tt class="py-name">extend</tt><tt class="py-op">(</tt><tt class="py-name">chunks</tt><tt class="py-op">)</tt> </tt>
+<a name="L444"></a><tt class="py-lineno">444</tt> <tt class="py-line"> </tt>
+<a name="L445"></a><tt class="py-lineno">445</tt> <tt class="py-line"> <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt class="py-name">threading</tt><tt class="py-op">.</tt><tt class="py-name">Thread</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">_prefetch_thread</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-name">chunks</tt><tt class="py-op">,</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L446"></a><tt class="py-lineno">446</tt> <tt class="py-line"> <tt class="py-name">t</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="L447"></a><tt class="py-lineno">447</tt> <tt class="py-line"> <tt class="py-name">t</tt><tt class="py-op">.</tt><tt class="py-name">start</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</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="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
+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-99', 'CMD_READ', 'link-39');">CMD_READ</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">long</tt><tt class="py-op">(</tt><tt class="py-name">offset</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">length</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L454"></a><tt class="py-lineno">454</tt> <tt class="py-line"> </tt>
+<a name="SFTPFile._async_response"></a><div id="SFTPFile._async_response-def"><a name="L455"></a><tt class="py-lineno">455</tt> <a class="py-toggle" href="#" id="SFTPFile._async_response-toggle" onclick="return toggle('SFTPFile._async_response');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_file.SFTPFile-class.html#_async_response">_async_response</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">msg</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SFTPFile._async_response-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPFile._async_response-expanded"><a name="L456"></a><tt class="py-lineno">456</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-100" class="py-name"><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-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="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>
+<a name="L462"></a><tt class="py-lineno">462</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L463"></a><tt class="py-lineno">463</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-102" class="py-name"><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-102', 'CMD_DATA', 'link-40');">CMD_DATA</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L464"></a><tt class="py-lineno">464</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt id="link-103" class="py-name"><a title="paramiko.SFTPError" class="py-name" href="#" onclick="return doclink('link-103', 'SFTPError', 'link-41');">SFTPError</a></tt><tt class="py-op">(</tt><tt class="py-string">'Expected data'</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">data</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-104" class="py-name"><a title="paramiko.Message.get_string" class="py-name" href="#" onclick="return doclink('link-104', 'get_string', 'link-42');">get_string</a></tt><tt class="py-op">(</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">offset</tt><tt class="py-op">,</tt> <tt class="py-name">length</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_prefetch_reads</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="L467"></a><tt class="py-lineno">467</tt> <tt class="py-line"> <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">offset</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">data</tt> </tt>
+<a name="L468"></a><tt class="py-lineno">468</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">_prefetch_reads</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="L469"></a><tt class="py-lineno">469</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_prefetch_done</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+</div><a name="L470"></a><tt class="py-lineno">470</tt> <tt class="py-line"> </tt>
+<a name="SFTPFile._check_exception"></a><div id="SFTPFile._check_exception-def"><a name="L471"></a><tt class="py-lineno">471</tt> <a class="py-toggle" href="#" id="SFTPFile._check_exception-toggle" onclick="return toggle('SFTPFile._check_exception');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_file.SFTPFile-class.html#_check_exception">_check_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="SFTPFile._check_exception-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPFile._check_exception-expanded"><a name="L472"></a><tt class="py-lineno">472</tt> <tt class="py-line"> <tt class="py-docstring">"if there's a saved exception, raise &amp; clear it"</tt> </tt>
+<a name="L473"></a><tt class="py-lineno">473</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</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="L474"></a><tt class="py-lineno">474</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">_saved_exception</tt> </tt>
+<a name="L475"></a><tt class="py-lineno">475</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="L476"></a><tt class="py-lineno">476</tt> <tt class="py-line"> <tt class="py-keyword">raise</tt> <tt class="py-name">x</tt> </tt>
+</div></div><a name="L477"></a><tt class="py-lineno">477</tt> <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<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 Jul 6 18:30:36 2008
+ </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.sftp_handle-module.html b/docs/paramiko.sftp_handle-module.html
new file mode 100644
index 0000000..60b436d
--- /dev/null
+++ b/docs/paramiko.sftp_handle-module.html
@@ -0,0 +1,900 @@
+<?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.sftp_handle</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> ::
+ Module&nbsp;sftp_handle
+ </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.sftp_handle-module.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module sftp_handle</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.sftp_handle-pysrc.html">source&nbsp;code</a></span></p>
+<p>Abstraction of an SFTP file handle (for server mode).</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="AUTH_FAILED"></a><span class="summary-name">AUTH_FAILED</span> = <code title="2">2</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_PARTIALLY_SUCCESSFUL"></a><span class="summary-name">AUTH_PARTIALLY_SUCCESSFUL</span> = <code title="1">1</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_SUCCESSFUL"></a><span class="summary-name">AUTH_SUCCESSFUL</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="CMD_ATTRS"></a><span class="summary-name">CMD_ATTRS</span> = <code title="105">105</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="CMD_CLOSE"></a><span class="summary-name">CMD_CLOSE</span> = <code title="4">4</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="CMD_DATA"></a><span class="summary-name">CMD_DATA</span> = <code title="103">103</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="CMD_EXTENDED"></a><span class="summary-name">CMD_EXTENDED</span> = <code title="200">200</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="CMD_EXTENDED_REPLY"></a><span class="summary-name">CMD_EXTENDED_REPLY</span> = <code title="201">201</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="CMD_FSETSTAT"></a><span class="summary-name">CMD_FSETSTAT</span> = <code title="10">10</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="CMD_FSTAT"></a><span class="summary-name">CMD_FSTAT</span> = <code title="8">8</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="CMD_HANDLE"></a><span class="summary-name">CMD_HANDLE</span> = <code title="102">102</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="CMD_INIT"></a><span class="summary-name">CMD_INIT</span> = <code title="1">1</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="CMD_LSTAT"></a><span class="summary-name">CMD_LSTAT</span> = <code title="7">7</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="CMD_MKDIR"></a><span class="summary-name">CMD_MKDIR</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="CMD_NAME"></a><span class="summary-name">CMD_NAME</span> = <code title="104">104</code>
+ </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.sftp_handle-module.html#CMD_NAMES" class="summary-name">CMD_NAMES</a> = <code title="{1: 'init',
+ 2: 'version',
+ 3: 'open',
+ 4: 'close',
+ 5: 'read',
+ 6: 'write',
+ 7: 'lstat',
+ 8: 'fstat',
+..."><code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">init</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">version</code><code class="variable-quote">'</code><code class="variable-op">, </code>3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">open</code><code class="variable-quote">'</code><code class="variable-op">, </code>4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">close</code><code class="variable-quote">'</code><code class="variable-op">, </code>5<code class="variable-ellipsis">...</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="CMD_OPEN"></a><span class="summary-name">CMD_OPEN</span> = <code title="3">3</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="CMD_OPENDIR"></a><span class="summary-name">CMD_OPENDIR</span> = <code title="11">11</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="CMD_READ"></a><span class="summary-name">CMD_READ</span> = <code title="5">5</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="CMD_READDIR"></a><span class="summary-name">CMD_READDIR</span> = <code title="12">12</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="CMD_READLINK"></a><span class="summary-name">CMD_READLINK</span> = <code title="19">19</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="CMD_REALPATH"></a><span class="summary-name">CMD_REALPATH</span> = <code title="16">16</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="CMD_REMOVE"></a><span class="summary-name">CMD_REMOVE</span> = <code title="13">13</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="CMD_RENAME"></a><span class="summary-name">CMD_RENAME</span> = <code title="18">18</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="CMD_RMDIR"></a><span class="summary-name">CMD_RMDIR</span> = <code title="15">15</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="CMD_SETSTAT"></a><span class="summary-name">CMD_SETSTAT</span> = <code title="9">9</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="CMD_STAT"></a><span class="summary-name">CMD_STAT</span> = <code title="17">17</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="CMD_STATUS"></a><span class="summary-name">CMD_STATUS</span> = <code title="101">101</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="CMD_SYMLINK"></a><span class="summary-name">CMD_SYMLINK</span> = <code title="20">20</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="CMD_VERSION"></a><span class="summary-name">CMD_VERSION</span> = <code title="2">2</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="CMD_WRITE"></a><span class="summary-name">CMD_WRITE</span> = <code title="6">6</code>
+ </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.sftp_handle-module.html#CONNECTION_FAILED_CODE" class="summary-name">CONNECTION_FAILED_CODE</a> = <code title="{1: 'Administratively prohibited',
+ 2: 'Connect failed',
+ 3: 'Unknown channel type',
+ 4: 'Resource shortage'}"><code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Administratively prohibited</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-op">:</code><code class="variable-ellipsis">...</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="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="DEBUG"></a><span class="summary-name">DEBUG</span> = <code title="10">10</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="DISCONNECT_AUTH_CANCELLED_BY_USER"></a><span class="summary-name">DISCONNECT_AUTH_CANCELLED_BY_USER</span> = <code title="13">13</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="DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE"></a><span class="summary-name">DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE</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="DISCONNECT_SERVICE_NOT_AVAILABLE"></a><span class="summary-name">DISCONNECT_SERVICE_NOT_AVAILABLE</span> = <code title="7">7</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="ERROR"></a><span class="summary-name">ERROR</span> = <code title="40">40</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="INFO"></a><span class="summary-name">INFO</span> = <code title="20">20</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="MSG_CHANNEL_CLOSE"></a><span class="summary-name">MSG_CHANNEL_CLOSE</span> = <code title="97">97</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="MSG_CHANNEL_DATA"></a><span class="summary-name">MSG_CHANNEL_DATA</span> = <code title="94">94</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="MSG_CHANNEL_EOF"></a><span class="summary-name">MSG_CHANNEL_EOF</span> = <code title="96">96</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="MSG_CHANNEL_EXTENDED_DATA"></a><span class="summary-name">MSG_CHANNEL_EXTENDED_DATA</span> = <code title="95">95</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="MSG_CHANNEL_FAILURE"></a><span class="summary-name">MSG_CHANNEL_FAILURE</span> = <code title="100">100</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="MSG_CHANNEL_OPEN"></a><span class="summary-name">MSG_CHANNEL_OPEN</span> = <code title="90">90</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="MSG_CHANNEL_OPEN_FAILURE"></a><span class="summary-name">MSG_CHANNEL_OPEN_FAILURE</span> = <code title="92">92</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="MSG_CHANNEL_OPEN_SUCCESS"></a><span class="summary-name">MSG_CHANNEL_OPEN_SUCCESS</span> = <code title="91">91</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="MSG_CHANNEL_REQUEST"></a><span class="summary-name">MSG_CHANNEL_REQUEST</span> = <code title="98">98</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="MSG_CHANNEL_SUCCESS"></a><span class="summary-name">MSG_CHANNEL_SUCCESS</span> = <code title="99">99</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="MSG_CHANNEL_WINDOW_ADJUST"></a><span class="summary-name">MSG_CHANNEL_WINDOW_ADJUST</span> = <code title="93">93</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="MSG_DEBUG"></a><span class="summary-name">MSG_DEBUG</span> = <code title="4">4</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="MSG_DISCONNECT"></a><span class="summary-name">MSG_DISCONNECT</span> = <code title="1">1</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="MSG_GLOBAL_REQUEST"></a><span class="summary-name">MSG_GLOBAL_REQUEST</span> = <code title="80">80</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="MSG_IGNORE"></a><span class="summary-name">MSG_IGNORE</span> = <code title="2">2</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="MSG_KEXINIT"></a><span class="summary-name">MSG_KEXINIT</span> = <code title="20">20</code>
+ </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.sftp_handle-module.html#MSG_NAMES" class="summary-name">MSG_NAMES</a> = <code title="{1: 'disconnect',
+ 2: 'ignore',
+ 3: 'unimplemented',
+ 4: 'debug',
+ 5: 'service-request',
+ 6: 'service-accept',
+ 20: 'kexinit',
+ 21: 'newkeys',
+..."><code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">disconnect</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">ignore</code><code class="variable-quote">'</code><code class="variable-op">, </code>3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">unimplemented</code><code class="variable-quote">'</code><code class="variable-op">,</code><code class="variable-ellipsis">...</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="MSG_NEWKEYS"></a><span class="summary-name">MSG_NEWKEYS</span> = <code title="21">21</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="MSG_REQUEST_FAILURE"></a><span class="summary-name">MSG_REQUEST_FAILURE</span> = <code title="82">82</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="MSG_REQUEST_SUCCESS"></a><span class="summary-name">MSG_REQUEST_SUCCESS</span> = <code title="81">81</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="MSG_SERVICE_ACCEPT"></a><span class="summary-name">MSG_SERVICE_ACCEPT</span> = <code title="6">6</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="MSG_SERVICE_REQUEST"></a><span class="summary-name">MSG_SERVICE_REQUEST</span> = <code title="5">5</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="MSG_UNIMPLEMENTED"></a><span class="summary-name">MSG_UNIMPLEMENTED</span> = <code title="3">3</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="MSG_USERAUTH_BANNER"></a><span class="summary-name">MSG_USERAUTH_BANNER</span> = <code title="53">53</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="MSG_USERAUTH_FAILURE"></a><span class="summary-name">MSG_USERAUTH_FAILURE</span> = <code title="51">51</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="MSG_USERAUTH_INFO_REQUEST"></a><span class="summary-name">MSG_USERAUTH_INFO_REQUEST</span> = <code title="60">60</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="MSG_USERAUTH_INFO_RESPONSE"></a><span class="summary-name">MSG_USERAUTH_INFO_RESPONSE</span> = <code title="61">61</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="MSG_USERAUTH_PK_OK"></a><span class="summary-name">MSG_USERAUTH_PK_OK</span> = <code title="60">60</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="MSG_USERAUTH_REQUEST"></a><span class="summary-name">MSG_USERAUTH_REQUEST</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="MSG_USERAUTH_SUCCESS"></a><span class="summary-name">MSG_USERAUTH_SUCCESS</span> = <code title="52">52</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="OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED"></a><span class="summary-name">OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED</span> = <code title="1">1</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="OPEN_FAILED_CONNECT_FAILED"></a><span class="summary-name">OPEN_FAILED_CONNECT_FAILED</span> = <code title="2">2</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="OPEN_FAILED_RESOURCE_SHORTAGE"></a><span class="summary-name">OPEN_FAILED_RESOURCE_SHORTAGE</span> = <code title="4">4</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="OPEN_FAILED_UNKNOWN_CHANNEL_TYPE"></a><span class="summary-name">OPEN_FAILED_UNKNOWN_CHANNEL_TYPE</span> = <code title="3">3</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="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="PY22"></a><span class="summary-name">PY22</span> = <code title="False">False</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="SFTP_BAD_MESSAGE"></a><span class="summary-name">SFTP_BAD_MESSAGE</span> = <code title="5">5</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="SFTP_CONNECTION_LOST"></a><span class="summary-name">SFTP_CONNECTION_LOST</span> = <code title="7">7</code>
+ </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.sftp_handle-module.html#SFTP_DESC" class="summary-name">SFTP_DESC</a> = <code title="['Success',
+ 'End of file',
+ 'No such file',
+ 'Permission denied',
+ 'Failure',
+ 'Bad message',
+ 'No connection',
+ 'Connection lost',
+..."><code class="variable-group">[</code><code class="variable-quote">'</code><code class="variable-string">Success</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">End of file</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">No such file</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">Permis</code><code class="variable-ellipsis">...</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="SFTP_EOF"></a><span class="summary-name">SFTP_EOF</span> = <code title="1">1</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="SFTP_FAILURE"></a><span class="summary-name">SFTP_FAILURE</span> = <code title="4">4</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="SFTP_FLAG_APPEND"></a><span class="summary-name">SFTP_FLAG_APPEND</span> = <code title="4">4</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="SFTP_FLAG_CREATE"></a><span class="summary-name">SFTP_FLAG_CREATE</span> = <code title="8">8</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="SFTP_FLAG_EXCL"></a><span class="summary-name">SFTP_FLAG_EXCL</span> = <code title="32">32</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="SFTP_FLAG_READ"></a><span class="summary-name">SFTP_FLAG_READ</span> = <code title="1">1</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="SFTP_FLAG_TRUNC"></a><span class="summary-name">SFTP_FLAG_TRUNC</span> = <code title="16">16</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="SFTP_FLAG_WRITE"></a><span class="summary-name">SFTP_FLAG_WRITE</span> = <code title="2">2</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="SFTP_NO_CONNECTION"></a><span class="summary-name">SFTP_NO_CONNECTION</span> = <code title="6">6</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="SFTP_NO_SUCH_FILE"></a><span class="summary-name">SFTP_NO_SUCH_FILE</span> = <code title="2">2</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="SFTP_OK"></a><span class="summary-name">SFTP_OK</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="SFTP_OP_UNSUPPORTED"></a><span class="summary-name">SFTP_OP_UNSUPPORTED</span> = <code title="8">8</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="SFTP_PERMISSION_DENIED"></a><span class="summary-name">SFTP_PERMISSION_DENIED</span> = <code title="3">3</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="WARNING"></a><span class="summary-name">WARNING</span> = <code title="30">30</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>
+</table>
+<!-- ==================== VARIABLES DETAILS ==================== -->
+<a name="section-VariablesDetails"></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">Variables Details</span></td>
+</tr>
+</table>
+<a name="CMD_NAMES"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">CMD_NAMES</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">init</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">version</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">open</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">close</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 5<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">read</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 6<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">write</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 7<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">lstat</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 8<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">fstat</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="CONNECTION_FAILED_CODE"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">CONNECTION_FAILED_CODE</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Administratively prohibited</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Connect failed</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Unknown channel type</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Resource shortage</code><code class="variable-quote">'</code><code class="variable-group">}</code>
+</pre></td></tr></table>
+</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="MSG_NAMES"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">MSG_NAMES</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">disconnect</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">ignore</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">unimplemented</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">debug</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 5<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">service-request</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 6<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">service-accept</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 20<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">kexinit</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 21<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">newkeys</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="SFTP_DESC"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">SFTP_DESC</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-group">[</code><code class="variable-quote">'</code><code class="variable-string">Success</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">End of file</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">No such file</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">Permission denied</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">Failure</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">Bad message</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">No connection</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">Connection lost</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+ </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 Jul 6 18:30:27 2008
+ </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.sftp_handle-pysrc.html b/docs/paramiko.sftp_handle-pysrc.html
new file mode 100644
index 0000000..ca22a01
--- /dev/null
+++ b/docs/paramiko.sftp_handle-pysrc.html
@@ -0,0 +1,369 @@
+<?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.sftp_handle</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> ::
+ Module&nbsp;sftp_handle
+ </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.sftp_handle-pysrc.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</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="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>
+<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">import</tt> <tt class="py-name">os</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 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="L26"></a><tt class="py-lineno"> 26</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=paramiko.sftp-module.html"><a title="paramiko.sftp" class="py-name" href="#" onclick="return doclink('link-3', 'sftp', 'link-3');">sftp</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L27"></a><tt class="py-lineno"> 27</tt> <tt class="py-line"> </tt>
+<a name="L28"></a><tt class="py-lineno"> 28</tt> <tt class="py-line"> </tt>
+<a name="SFTPHandle"></a><div id="SFTPHandle-def"><a name="L29"></a><tt class="py-lineno"> 29</tt> <a class="py-toggle" href="#" id="SFTPHandle-toggle" onclick="return toggle('SFTPHandle');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.sftp_handle.SFTPHandle-class.html">SFTPHandle</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="SFTPHandle-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="SFTPHandle-expanded"><a name="L30"></a><tt class="py-lineno"> 30</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L31"></a><tt class="py-lineno"> 31</tt> <tt class="py-line"><tt class="py-docstring"> Abstract object representing a handle to an open file (or folder) in an</tt> </tt>
+<a name="L32"></a><tt class="py-lineno"> 32</tt> <tt class="py-line"><tt class="py-docstring"> SFTP server implementation. Each handle has a string representation used</tt> </tt>
+<a name="L33"></a><tt class="py-lineno"> 33</tt> <tt class="py-line"><tt class="py-docstring"> by the client to refer to the underlying file.</tt> </tt>
+<a name="L34"></a><tt class="py-lineno"> 34</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L35"></a><tt class="py-lineno"> 35</tt> <tt class="py-line"><tt class="py-docstring"> Server implementations can (and should) subclass SFTPHandle to implement</tt> </tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line"><tt class="py-docstring"> features of a file handle, like L{stat} or L{chattr}.</tt> </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="SFTPHandle.__init__"></a><div id="SFTPHandle.__init__-def"><a name="L38"></a><tt class="py-lineno"> 38</tt> <a class="py-toggle" href="#" id="SFTPHandle.__init__-toggle" onclick="return toggle('SFTPHandle.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_handle.SFTPHandle-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">flags</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SFTPHandle.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPHandle.__init__-expanded"><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 class="py-docstring"> Create a new file handle representing a local file being served over</tt> </tt>
+<a name="L41"></a><tt class="py-lineno"> 41</tt> <tt class="py-line"><tt class="py-docstring"> SFTP. If C{flags} is passed in, it's used to determine if the file</tt> </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt> <tt class="py-line"><tt class="py-docstring"> is open in append mode.</tt> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"><tt class="py-docstring"> @param flags: optional flags as passed to L{SFTPServerInterface.open}</tt> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt> <tt class="py-line"><tt class="py-docstring"> @type flags: int</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-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="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>
+</div><div id="SFTPHandle.close-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPHandle.close-expanded"><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-docstring"> When a client closes a file, this method is called on the handle.</tt> </tt>
+<a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"><tt class="py-docstring"> Normally you would use this method to close the underlying OS level</tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"><tt class="py-docstring"> file object(s).</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-docstring"> The default implementation checks for attributes on C{self} named</tt> </tt>
+<a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"><tt class="py-docstring"> C{readfile} and/or C{writefile}, and if either or both are present,</tt> </tt>
+<a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"><tt class="py-docstring"> their C{close()} methods are called. This means that if you are</tt> </tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"><tt class="py-docstring"> using the default implementations of L{read} and L{write}, this</tt> </tt>
+<a name="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"><tt class="py-docstring"> method's default implementation should be fine also.</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-name">readfile</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">'readfile'</tt><tt class="py-op">,</tt> <tt class="py-name">None</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">if</tt> <tt class="py-name">readfile</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="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line"> <tt class="py-name">readfile</tt><tt class="py-op">.</tt><tt id="link-4" 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
+paramiko.SFTPFile.close
+paramiko.SFTPHandle.close
+paramiko.SSHClient.close
+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-4', 'close', 'link-4');">close</a></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-name">writefile</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">'writefile'</tt><tt class="py-op">,</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 class="py-keyword">if</tt> <tt class="py-name">writefile</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="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line"> <tt class="py-name">writefile</tt><tt class="py-op">.</tt><tt id="link-5" class="py-name"><a title="paramiko.Agent.close
+paramiko.BufferedFile.close
+paramiko.Channel.close
+paramiko.SFTPClient.close
+paramiko.SFTPFile.close
+paramiko.SFTPHandle.close
+paramiko.SSHClient.close
+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-5', 'close', 'link-4');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line"> </tt>
+<a name="SFTPHandle.read"></a><div id="SFTPHandle.read-def"><a name="L72"></a><tt class="py-lineno"> 72</tt> <a class="py-toggle" href="#" id="SFTPHandle.read-toggle" onclick="return toggle('SFTPHandle.read');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_handle.SFTPHandle-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">offset</tt><tt class="py-op">,</tt> <tt class="py-param">length</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SFTPHandle.read-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPHandle.read-expanded"><a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"><tt class="py-docstring"> Read up to C{length} bytes from this file, starting at position</tt> </tt>
+<a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"><tt class="py-docstring"> C{offset}. The offset may be a python long, since SFTP allows it</tt> </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"><tt class="py-docstring"> to be 64 bits.</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-docstring"> If the end of the file has been reached, this method may return an</tt> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line"><tt class="py-docstring"> empty string to signify EOF, or it may also return L{SFTP_EOF}.</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-docstring"> The default implementation checks for an attribute on C{self} named</tt> </tt>
+<a name="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"><tt class="py-docstring"> C{readfile}, and if present, performs the read operation on the python</tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"><tt class="py-docstring"> file-like object found there. (This is meant as a time saver for the</tt> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"><tt class="py-docstring"> common case where you are wrapping a python file object.)</tt> </tt>
+<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"> @param offset: position in the file to start reading from.</tt> </tt>
+<a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"><tt class="py-docstring"> @type offset: int or long</tt> </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</tt> <tt class="py-line"><tt class="py-docstring"> @param length: number of bytes to attempt to read.</tt> </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"><tt class="py-docstring"> @type length: int</tt> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"><tt class="py-docstring"> @return: data read from the file, or an SFTP error code.</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-name">readfile</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">'readfile'</tt><tt class="py-op">,</tt> <tt class="py-name">None</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">readfile</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</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 id="link-6" 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-6', 'SFTP_OP_UNSUPPORTED', 'link-6');">SFTP_OP_UNSUPPORTED</a></tt> </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"> <tt class="py-keyword">try</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">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="L98"></a><tt class="py-lineno"> 98</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">readfile</tt><tt class="py-op">.</tt><tt id="link-7" 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-7', 'tell', 'link-7');">tell</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-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>
+<a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"> <tt class="py-name">readfile</tt><tt class="py-op">.</tt><tt id="link-8" 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-8', 'seek', 'link-8');">seek</a></tt><tt class="py-op">(</tt><tt class="py-name">offset</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">__tell</tt> <tt class="py-op">=</tt> <tt class="py-name">offset</tt> </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"> <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">readfile</tt><tt class="py-op">.</tt><tt id="link-9" 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-9', 'read', 'link-9');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">length</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 class="py-name">IOError</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">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>
+<a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-10" class="py-name" targets="Class paramiko.SFTPServer=paramiko.SFTPServer-class.html"><a title="paramiko.SFTPServer" class="py-name" href="#" onclick="return doclink('link-10', 'SFTPServer', 'link-10');">SFTPServer</a></tt><tt class="py-op">.</tt><tt id="link-11" class="py-name" targets="Static Method paramiko.SFTPServer.convert_errno()=paramiko.SFTPServer-class.html#convert_errno"><a title="paramiko.SFTPServer.convert_errno" class="py-name" href="#" onclick="return doclink('link-11', 'convert_errno', 'link-11');">convert_errno</a></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>
+<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 class="py-name">__tell</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="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">data</tt> </tt>
+</div><a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line"> </tt>
+<a name="SFTPHandle.write"></a><div id="SFTPHandle.write-def"><a name="L109"></a><tt class="py-lineno">109</tt> <a class="py-toggle" href="#" id="SFTPHandle.write-toggle" onclick="return toggle('SFTPHandle.write');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_handle.SFTPHandle-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">offset</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="SFTPHandle.write-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPHandle.write-expanded"><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"> Write C{data} into this file at position C{offset}. Extending the</tt> </tt>
+<a name="L112"></a><tt class="py-lineno">112</tt> <tt class="py-line"><tt class="py-docstring"> file past its original end is expected. Unlike python's normal</tt> </tt>
+<a name="L113"></a><tt class="py-lineno">113</tt> <tt class="py-line"><tt class="py-docstring"> C{write()} methods, this method cannot do a partial write: it must</tt> </tt>
+<a name="L114"></a><tt class="py-lineno">114</tt> <tt class="py-line"><tt class="py-docstring"> write all of C{data} or else return an error.</tt> </tt>
+<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"> The default implementation checks for an attribute on C{self} named</tt> </tt>
+<a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"><tt class="py-docstring"> C{writefile}, and if present, performs the write operation on the</tt> </tt>
+<a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"><tt class="py-docstring"> python file-like object found there. The attribute is named</tt> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"><tt class="py-docstring"> differently from C{readfile} to make it easy to implement read-only</tt> </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt> <tt class="py-line"><tt class="py-docstring"> (or write-only) files, but if both attributes are present, they should</tt> </tt>
+<a name="L121"></a><tt class="py-lineno">121</tt> <tt class="py-line"><tt class="py-docstring"> refer to the same file.</tt> </tt>
+<a name="L122"></a><tt class="py-lineno">122</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt> <tt class="py-line"><tt class="py-docstring"> @param offset: position in the file to start reading from.</tt> </tt>
+<a name="L124"></a><tt class="py-lineno">124</tt> <tt class="py-line"><tt class="py-docstring"> @type offset: int or long</tt> </tt>
+<a name="L125"></a><tt class="py-lineno">125</tt> <tt class="py-line"><tt class="py-docstring"> @param data: data to write into the file.</tt> </tt>
+<a name="L126"></a><tt class="py-lineno">126</tt> <tt class="py-line"><tt class="py-docstring"> @type data: str</tt> </tt>
+<a name="L127"></a><tt class="py-lineno">127</tt> <tt class="py-line"><tt class="py-docstring"> @return: an SFTP error code like L{SFTP_OK}.</tt> </tt>
+<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-name">writefile</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">'writefile'</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L130"></a><tt class="py-lineno">130</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">writefile</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</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 id="link-12" 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-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="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>
+<a name="L138"></a><tt class="py-lineno">138</tt> <tt class="py-line"> <tt class="py-name">writefile</tt><tt class="py-op">.</tt><tt id="link-14" class="py-name"><a title="paramiko.BufferedFile.seek
+paramiko.SFTPFile.seek" class="py-name" href="#" onclick="return doclink('link-14', 'seek', 'link-8');">seek</a></tt><tt class="py-op">(</tt><tt class="py-name">offset</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">self</tt><tt class="py-op">.</tt><tt class="py-name">__tell</tt> <tt class="py-op">=</tt> <tt class="py-name">offset</tt> </tt>
+<a name="L140"></a><tt class="py-lineno">140</tt> <tt class="py-line"> <tt class="py-name">writefile</tt><tt class="py-op">.</tt><tt id="link-15" 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-15', 'write', 'link-15');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">data</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">writefile</tt><tt class="py-op">.</tt><tt id="link-16" class="py-name" targets="Method paramiko.BufferedFile.flush()=paramiko.BufferedFile-class.html#flush"><a title="paramiko.BufferedFile.flush" class="py-name" href="#" onclick="return doclink('link-16', 'flush', 'link-16');">flush</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 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="L143"></a><tt class="py-lineno">143</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>
+<a name="L144"></a><tt class="py-lineno">144</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-17" class="py-name"><a title="paramiko.SFTPServer" class="py-name" href="#" onclick="return doclink('link-17', 'SFTPServer', 'link-10');">SFTPServer</a></tt><tt class="py-op">.</tt><tt id="link-18" class="py-name"><a title="paramiko.SFTPServer.convert_errno" class="py-name" href="#" onclick="return doclink('link-18', 'convert_errno', 'link-11');">convert_errno</a></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>
+<a name="L145"></a><tt class="py-lineno">145</tt> <tt 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-keyword">not</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__tell</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="L147"></a><tt class="py-lineno">147</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-19" 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-19', 'SFTP_OK', 'link-19');">SFTP_OK</a></tt> </tt>
+</div><a name="L148"></a><tt class="py-lineno">148</tt> <tt class="py-line"> </tt>
+<a name="SFTPHandle.stat"></a><div id="SFTPHandle.stat-def"><a name="L149"></a><tt class="py-lineno">149</tt> <a class="py-toggle" href="#" id="SFTPHandle.stat-toggle" onclick="return toggle('SFTPHandle.stat');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_handle.SFTPHandle-class.html#stat">stat</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SFTPHandle.stat-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPHandle.stat-expanded"><a name="L150"></a><tt class="py-lineno">150</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L151"></a><tt class="py-lineno">151</tt> <tt class="py-line"><tt class="py-docstring"> Return an L{SFTPAttributes} object referring to this open file, or an</tt> </tt>
+<a name="L152"></a><tt class="py-lineno">152</tt> <tt class="py-line"><tt class="py-docstring"> error code. This is equivalent to L{SFTPServerInterface.stat}, except</tt> </tt>
+<a name="L153"></a><tt class="py-lineno">153</tt> <tt class="py-line"><tt class="py-docstring"> it's called on an open file instead of a path.</tt> </tt>
+<a name="L154"></a><tt class="py-lineno">154</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L155"></a><tt class="py-lineno">155</tt> <tt class="py-line"><tt class="py-docstring"> @return: an attributes object for the given file, or an SFTP error</tt> </tt>
+<a name="L156"></a><tt class="py-lineno">156</tt> <tt class="py-line"><tt class="py-docstring"> code (like L{SFTP_PERMISSION_DENIED}).</tt> </tt>
+<a name="L157"></a><tt class="py-lineno">157</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: L{SFTPAttributes} I{or error code}</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-keyword">return</tt> <tt id="link-20" 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-20', 'SFTP_OP_UNSUPPORTED', 'link-6');">SFTP_OP_UNSUPPORTED</a></tt> </tt>
+</div><a name="L160"></a><tt class="py-lineno">160</tt> <tt class="py-line"> </tt>
+<a name="SFTPHandle.chattr"></a><div id="SFTPHandle.chattr-def"><a name="L161"></a><tt class="py-lineno">161</tt> <a class="py-toggle" href="#" id="SFTPHandle.chattr-toggle" onclick="return toggle('SFTPHandle.chattr');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_handle.SFTPHandle-class.html#chattr">chattr</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">attr</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SFTPHandle.chattr-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPHandle.chattr-expanded"><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"> Change the attributes of this file. The C{attr} object will contain</tt> </tt>
+<a name="L164"></a><tt class="py-lineno">164</tt> <tt class="py-line"><tt class="py-docstring"> only those fields provided by the client in its request, so you should</tt> </tt>
+<a name="L165"></a><tt class="py-lineno">165</tt> <tt class="py-line"><tt class="py-docstring"> check for the presence of fields before using them.</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 attr: the attributes to change on this file.</tt> </tt>
+<a name="L168"></a><tt class="py-lineno">168</tt> <tt class="py-line"><tt class="py-docstring"> @type attr: L{SFTPAttributes}</tt> </tt>
+<a name="L169"></a><tt class="py-lineno">169</tt> <tt class="py-line"><tt class="py-docstring"> @return: an error code like L{SFTP_OK}.</tt> </tt>
+<a name="L170"></a><tt class="py-lineno">170</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: int</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-keyword">return</tt> <tt id="link-21" 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-21', 'SFTP_OP_UNSUPPORTED', 'link-6');">SFTP_OP_UNSUPPORTED</a></tt> </tt>
+</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="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>
+<a name="L180"></a><tt class="py-lineno">180</tt> <tt class="py-line"><tt class="py-docstring"> Used by the SFTP server code to cache a directory listing. (In</tt> </tt>
+<a name="L181"></a><tt class="py-lineno">181</tt> <tt class="py-line"><tt class="py-docstring"> the SFTP protocol, listing a directory is a multi-stage process</tt> </tt>
+<a name="L182"></a><tt class="py-lineno">182</tt> <tt class="py-line"><tt class="py-docstring"> requiring a temporary handle.)</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__files</tt> <tt class="py-op">=</tt> <tt class="py-name">files</tt> </tt>
+</div><a name="L185"></a><tt class="py-lineno">185</tt> <tt class="py-line"> </tt>
+<a name="SFTPHandle._get_next_files"></a><div id="SFTPHandle._get_next_files-def"><a name="L186"></a><tt class="py-lineno">186</tt> <a class="py-toggle" href="#" id="SFTPHandle._get_next_files-toggle" onclick="return toggle('SFTPHandle._get_next_files');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_handle.SFTPHandle-class.html#_get_next_files">_get_next_files</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SFTPHandle._get_next_files-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPHandle._get_next_files-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"> Used by the SFTP server code to retreive a cached directory</tt> </tt>
+<a name="L189"></a><tt class="py-lineno">189</tt> <tt class="py-line"><tt class="py-docstring"> listing.</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-name">fnlist</tt> <tt class="py-op">=</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-number">16</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">__files</tt> <tt class="py-op">=</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-number">16</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">return</tt> <tt class="py-name">fnlist</tt> </tt>
+</div><a name="L194"></a><tt class="py-lineno">194</tt> <tt class="py-line"> </tt>
+<a name="SFTPHandle._get_name"></a><div id="SFTPHandle._get_name-def"><a name="L195"></a><tt class="py-lineno">195</tt> <a class="py-toggle" href="#" id="SFTPHandle._get_name-toggle" onclick="return toggle('SFTPHandle._get_name');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_handle.SFTPHandle-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="SFTPHandle._get_name-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPHandle._get_name-expanded"><a name="L196"></a><tt class="py-lineno">196</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="L197"></a><tt class="py-lineno">197</tt> <tt class="py-line"> </tt>
+<a name="SFTPHandle._set_name"></a><div id="SFTPHandle._set_name-def"><a name="L198"></a><tt class="py-lineno">198</tt> <a class="py-toggle" href="#" id="SFTPHandle._set_name-toggle" onclick="return toggle('SFTPHandle._set_name');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_handle.SFTPHandle-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="SFTPHandle._set_name-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPHandle._set_name-expanded"><a name="L199"></a><tt class="py-lineno">199</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-22" 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-22', 'name', 'link-22');">name</a></tt> </tt>
+</div></div><a name="L200"></a><tt class="py-lineno">200</tt> <tt class="py-line"> </tt>
+<a name="L201"></a><tt class="py-lineno">201</tt> <tt class="py-line"> </tt>
+<a name="L202"></a><tt class="py-lineno">202</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-23" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-23', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-24" class="py-name" targets="Module paramiko.sftp_server=paramiko.sftp_server-module.html"><a title="paramiko.sftp_server" class="py-name" href="#" onclick="return doclink('link-24', 'sftp_server', 'link-24');">sftp_server</a></tt> <tt class="py-keyword">import</tt> <tt id="link-25" class="py-name"><a title="paramiko.SFTPServer" class="py-name" href="#" onclick="return doclink('link-25', 'SFTPServer', 'link-10');">SFTPServer</a></tt> </tt>
+<a name="L203"></a><tt class="py-lineno">203</tt> <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<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 Jul 6 18:30:35 2008
+ </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.sftp_server-module.html b/docs/paramiko.sftp_server-module.html
new file mode 100644
index 0000000..a2343f6
--- /dev/null
+++ b/docs/paramiko.sftp_server-module.html
@@ -0,0 +1,900 @@
+<?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.sftp_server</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> ::
+ Module&nbsp;sftp_server
+ </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.sftp_server-module.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module sftp_server</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.sftp_server-pysrc.html">source&nbsp;code</a></span></p>
+<p>Server-mode SFTP support.</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="AUTH_FAILED"></a><span class="summary-name">AUTH_FAILED</span> = <code title="2">2</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_PARTIALLY_SUCCESSFUL"></a><span class="summary-name">AUTH_PARTIALLY_SUCCESSFUL</span> = <code title="1">1</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_SUCCESSFUL"></a><span class="summary-name">AUTH_SUCCESSFUL</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="CMD_ATTRS"></a><span class="summary-name">CMD_ATTRS</span> = <code title="105">105</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="CMD_CLOSE"></a><span class="summary-name">CMD_CLOSE</span> = <code title="4">4</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="CMD_DATA"></a><span class="summary-name">CMD_DATA</span> = <code title="103">103</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="CMD_EXTENDED"></a><span class="summary-name">CMD_EXTENDED</span> = <code title="200">200</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="CMD_EXTENDED_REPLY"></a><span class="summary-name">CMD_EXTENDED_REPLY</span> = <code title="201">201</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="CMD_FSETSTAT"></a><span class="summary-name">CMD_FSETSTAT</span> = <code title="10">10</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="CMD_FSTAT"></a><span class="summary-name">CMD_FSTAT</span> = <code title="8">8</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="CMD_HANDLE"></a><span class="summary-name">CMD_HANDLE</span> = <code title="102">102</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="CMD_INIT"></a><span class="summary-name">CMD_INIT</span> = <code title="1">1</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="CMD_LSTAT"></a><span class="summary-name">CMD_LSTAT</span> = <code title="7">7</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="CMD_MKDIR"></a><span class="summary-name">CMD_MKDIR</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="CMD_NAME"></a><span class="summary-name">CMD_NAME</span> = <code title="104">104</code>
+ </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.sftp_server-module.html#CMD_NAMES" class="summary-name">CMD_NAMES</a> = <code title="{1: 'init',
+ 2: 'version',
+ 3: 'open',
+ 4: 'close',
+ 5: 'read',
+ 6: 'write',
+ 7: 'lstat',
+ 8: 'fstat',
+..."><code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">init</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">version</code><code class="variable-quote">'</code><code class="variable-op">, </code>3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">open</code><code class="variable-quote">'</code><code class="variable-op">, </code>4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">close</code><code class="variable-quote">'</code><code class="variable-op">, </code>5<code class="variable-ellipsis">...</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="CMD_OPEN"></a><span class="summary-name">CMD_OPEN</span> = <code title="3">3</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="CMD_OPENDIR"></a><span class="summary-name">CMD_OPENDIR</span> = <code title="11">11</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="CMD_READ"></a><span class="summary-name">CMD_READ</span> = <code title="5">5</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="CMD_READDIR"></a><span class="summary-name">CMD_READDIR</span> = <code title="12">12</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="CMD_READLINK"></a><span class="summary-name">CMD_READLINK</span> = <code title="19">19</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="CMD_REALPATH"></a><span class="summary-name">CMD_REALPATH</span> = <code title="16">16</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="CMD_REMOVE"></a><span class="summary-name">CMD_REMOVE</span> = <code title="13">13</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="CMD_RENAME"></a><span class="summary-name">CMD_RENAME</span> = <code title="18">18</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="CMD_RMDIR"></a><span class="summary-name">CMD_RMDIR</span> = <code title="15">15</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="CMD_SETSTAT"></a><span class="summary-name">CMD_SETSTAT</span> = <code title="9">9</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="CMD_STAT"></a><span class="summary-name">CMD_STAT</span> = <code title="17">17</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="CMD_STATUS"></a><span class="summary-name">CMD_STATUS</span> = <code title="101">101</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="CMD_SYMLINK"></a><span class="summary-name">CMD_SYMLINK</span> = <code title="20">20</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="CMD_VERSION"></a><span class="summary-name">CMD_VERSION</span> = <code title="2">2</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="CMD_WRITE"></a><span class="summary-name">CMD_WRITE</span> = <code title="6">6</code>
+ </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.sftp_server-module.html#CONNECTION_FAILED_CODE" class="summary-name">CONNECTION_FAILED_CODE</a> = <code title="{1: 'Administratively prohibited',
+ 2: 'Connect failed',
+ 3: 'Unknown channel type',
+ 4: 'Resource shortage'}"><code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Administratively prohibited</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-op">:</code><code class="variable-ellipsis">...</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="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="DEBUG"></a><span class="summary-name">DEBUG</span> = <code title="10">10</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="DISCONNECT_AUTH_CANCELLED_BY_USER"></a><span class="summary-name">DISCONNECT_AUTH_CANCELLED_BY_USER</span> = <code title="13">13</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="DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE"></a><span class="summary-name">DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE</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="DISCONNECT_SERVICE_NOT_AVAILABLE"></a><span class="summary-name">DISCONNECT_SERVICE_NOT_AVAILABLE</span> = <code title="7">7</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="ERROR"></a><span class="summary-name">ERROR</span> = <code title="40">40</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="INFO"></a><span class="summary-name">INFO</span> = <code title="20">20</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="MSG_CHANNEL_CLOSE"></a><span class="summary-name">MSG_CHANNEL_CLOSE</span> = <code title="97">97</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="MSG_CHANNEL_DATA"></a><span class="summary-name">MSG_CHANNEL_DATA</span> = <code title="94">94</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="MSG_CHANNEL_EOF"></a><span class="summary-name">MSG_CHANNEL_EOF</span> = <code title="96">96</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="MSG_CHANNEL_EXTENDED_DATA"></a><span class="summary-name">MSG_CHANNEL_EXTENDED_DATA</span> = <code title="95">95</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="MSG_CHANNEL_FAILURE"></a><span class="summary-name">MSG_CHANNEL_FAILURE</span> = <code title="100">100</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="MSG_CHANNEL_OPEN"></a><span class="summary-name">MSG_CHANNEL_OPEN</span> = <code title="90">90</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="MSG_CHANNEL_OPEN_FAILURE"></a><span class="summary-name">MSG_CHANNEL_OPEN_FAILURE</span> = <code title="92">92</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="MSG_CHANNEL_OPEN_SUCCESS"></a><span class="summary-name">MSG_CHANNEL_OPEN_SUCCESS</span> = <code title="91">91</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="MSG_CHANNEL_REQUEST"></a><span class="summary-name">MSG_CHANNEL_REQUEST</span> = <code title="98">98</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="MSG_CHANNEL_SUCCESS"></a><span class="summary-name">MSG_CHANNEL_SUCCESS</span> = <code title="99">99</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="MSG_CHANNEL_WINDOW_ADJUST"></a><span class="summary-name">MSG_CHANNEL_WINDOW_ADJUST</span> = <code title="93">93</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="MSG_DEBUG"></a><span class="summary-name">MSG_DEBUG</span> = <code title="4">4</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="MSG_DISCONNECT"></a><span class="summary-name">MSG_DISCONNECT</span> = <code title="1">1</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="MSG_GLOBAL_REQUEST"></a><span class="summary-name">MSG_GLOBAL_REQUEST</span> = <code title="80">80</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="MSG_IGNORE"></a><span class="summary-name">MSG_IGNORE</span> = <code title="2">2</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="MSG_KEXINIT"></a><span class="summary-name">MSG_KEXINIT</span> = <code title="20">20</code>
+ </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.sftp_server-module.html#MSG_NAMES" class="summary-name">MSG_NAMES</a> = <code title="{1: 'disconnect',
+ 2: 'ignore',
+ 3: 'unimplemented',
+ 4: 'debug',
+ 5: 'service-request',
+ 6: 'service-accept',
+ 20: 'kexinit',
+ 21: 'newkeys',
+..."><code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">disconnect</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">ignore</code><code class="variable-quote">'</code><code class="variable-op">, </code>3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">unimplemented</code><code class="variable-quote">'</code><code class="variable-op">,</code><code class="variable-ellipsis">...</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="MSG_NEWKEYS"></a><span class="summary-name">MSG_NEWKEYS</span> = <code title="21">21</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="MSG_REQUEST_FAILURE"></a><span class="summary-name">MSG_REQUEST_FAILURE</span> = <code title="82">82</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="MSG_REQUEST_SUCCESS"></a><span class="summary-name">MSG_REQUEST_SUCCESS</span> = <code title="81">81</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="MSG_SERVICE_ACCEPT"></a><span class="summary-name">MSG_SERVICE_ACCEPT</span> = <code title="6">6</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="MSG_SERVICE_REQUEST"></a><span class="summary-name">MSG_SERVICE_REQUEST</span> = <code title="5">5</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="MSG_UNIMPLEMENTED"></a><span class="summary-name">MSG_UNIMPLEMENTED</span> = <code title="3">3</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="MSG_USERAUTH_BANNER"></a><span class="summary-name">MSG_USERAUTH_BANNER</span> = <code title="53">53</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="MSG_USERAUTH_FAILURE"></a><span class="summary-name">MSG_USERAUTH_FAILURE</span> = <code title="51">51</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="MSG_USERAUTH_INFO_REQUEST"></a><span class="summary-name">MSG_USERAUTH_INFO_REQUEST</span> = <code title="60">60</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="MSG_USERAUTH_INFO_RESPONSE"></a><span class="summary-name">MSG_USERAUTH_INFO_RESPONSE</span> = <code title="61">61</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="MSG_USERAUTH_PK_OK"></a><span class="summary-name">MSG_USERAUTH_PK_OK</span> = <code title="60">60</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="MSG_USERAUTH_REQUEST"></a><span class="summary-name">MSG_USERAUTH_REQUEST</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="MSG_USERAUTH_SUCCESS"></a><span class="summary-name">MSG_USERAUTH_SUCCESS</span> = <code title="52">52</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="OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED"></a><span class="summary-name">OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED</span> = <code title="1">1</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="OPEN_FAILED_CONNECT_FAILED"></a><span class="summary-name">OPEN_FAILED_CONNECT_FAILED</span> = <code title="2">2</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="OPEN_FAILED_RESOURCE_SHORTAGE"></a><span class="summary-name">OPEN_FAILED_RESOURCE_SHORTAGE</span> = <code title="4">4</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="OPEN_FAILED_UNKNOWN_CHANNEL_TYPE"></a><span class="summary-name">OPEN_FAILED_UNKNOWN_CHANNEL_TYPE</span> = <code title="3">3</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="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="PY22"></a><span class="summary-name">PY22</span> = <code title="False">False</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="SFTP_BAD_MESSAGE"></a><span class="summary-name">SFTP_BAD_MESSAGE</span> = <code title="5">5</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="SFTP_CONNECTION_LOST"></a><span class="summary-name">SFTP_CONNECTION_LOST</span> = <code title="7">7</code>
+ </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.sftp_server-module.html#SFTP_DESC" class="summary-name">SFTP_DESC</a> = <code title="['Success',
+ 'End of file',
+ 'No such file',
+ 'Permission denied',
+ 'Failure',
+ 'Bad message',
+ 'No connection',
+ 'Connection lost',
+..."><code class="variable-group">[</code><code class="variable-quote">'</code><code class="variable-string">Success</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">End of file</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">No such file</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">Permis</code><code class="variable-ellipsis">...</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="SFTP_EOF"></a><span class="summary-name">SFTP_EOF</span> = <code title="1">1</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="SFTP_FAILURE"></a><span class="summary-name">SFTP_FAILURE</span> = <code title="4">4</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="SFTP_FLAG_APPEND"></a><span class="summary-name">SFTP_FLAG_APPEND</span> = <code title="4">4</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="SFTP_FLAG_CREATE"></a><span class="summary-name">SFTP_FLAG_CREATE</span> = <code title="8">8</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="SFTP_FLAG_EXCL"></a><span class="summary-name">SFTP_FLAG_EXCL</span> = <code title="32">32</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="SFTP_FLAG_READ"></a><span class="summary-name">SFTP_FLAG_READ</span> = <code title="1">1</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="SFTP_FLAG_TRUNC"></a><span class="summary-name">SFTP_FLAG_TRUNC</span> = <code title="16">16</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="SFTP_FLAG_WRITE"></a><span class="summary-name">SFTP_FLAG_WRITE</span> = <code title="2">2</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="SFTP_NO_CONNECTION"></a><span class="summary-name">SFTP_NO_CONNECTION</span> = <code title="6">6</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="SFTP_NO_SUCH_FILE"></a><span class="summary-name">SFTP_NO_SUCH_FILE</span> = <code title="2">2</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="SFTP_OK"></a><span class="summary-name">SFTP_OK</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="SFTP_OP_UNSUPPORTED"></a><span class="summary-name">SFTP_OP_UNSUPPORTED</span> = <code title="8">8</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="SFTP_PERMISSION_DENIED"></a><span class="summary-name">SFTP_PERMISSION_DENIED</span> = <code title="3">3</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="WARNING"></a><span class="summary-name">WARNING</span> = <code title="30">30</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>
+</table>
+<!-- ==================== VARIABLES DETAILS ==================== -->
+<a name="section-VariablesDetails"></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">Variables Details</span></td>
+</tr>
+</table>
+<a name="CMD_NAMES"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">CMD_NAMES</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">init</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">version</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">open</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">close</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 5<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">read</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 6<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">write</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 7<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">lstat</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 8<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">fstat</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="CONNECTION_FAILED_CODE"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">CONNECTION_FAILED_CODE</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Administratively prohibited</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Connect failed</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Unknown channel type</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Resource shortage</code><code class="variable-quote">'</code><code class="variable-group">}</code>
+</pre></td></tr></table>
+</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="MSG_NAMES"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">MSG_NAMES</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">disconnect</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">ignore</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">unimplemented</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">debug</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 5<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">service-request</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 6<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">service-accept</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 20<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">kexinit</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 21<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">newkeys</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="SFTP_DESC"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">SFTP_DESC</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-group">[</code><code class="variable-quote">'</code><code class="variable-string">Success</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">End of file</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">No such file</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">Permission denied</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">Failure</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">Bad message</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">No connection</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">Connection lost</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+ </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 Jul 6 18:30:27 2008
+ </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.sftp_server-pysrc.html b/docs/paramiko.sftp_server-pysrc.html
new file mode 100644
index 0000000..cd77999
--- /dev/null
+++ b/docs/paramiko.sftp_server-pysrc.html
@@ -0,0 +1,1196 @@
+<?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.sftp_server</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> ::
+ Module&nbsp;sftp_server
+ </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.sftp_server-pysrc.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</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="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>
+<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">import</tt> <tt class="py-name">os</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>
+<a name="L26"></a><tt class="py-lineno"> 26</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">MD5</tt><tt class="py-op">,</tt> <tt class="py-name">SHA</tt> </tt>
+<a name="L27"></a><tt class="py-lineno"> 27</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="L28"></a><tt class="py-lineno"> 28</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.server=paramiko.server-module.html"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-3', 'server', 'link-3');">server</a></tt> <tt class="py-keyword">import</tt> <tt id="link-4" class="py-name" targets="Class paramiko.SubsystemHandler=paramiko.SubsystemHandler-class.html"><a title="paramiko.SubsystemHandler" class="py-name" href="#" onclick="return doclink('link-4', 'SubsystemHandler', 'link-4');">SubsystemHandler</a></tt> </tt>
+<a name="L29"></a><tt class="py-lineno"> 29</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.sftp=paramiko.sftp-module.html"><a title="paramiko.sftp" class="py-name" href="#" onclick="return doclink('link-6', 'sftp', 'link-6');">sftp</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-7" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-7', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-8" class="py-name" targets="Module paramiko.sftp_si=paramiko.sftp_si-module.html"><a title="paramiko.sftp_si" class="py-name" href="#" onclick="return doclink('link-8', 'sftp_si', 'link-8');">sftp_si</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-9" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-9', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-10" 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-10', 'sftp_attr', 'link-10');">sftp_attr</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>
+<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="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>
+<a name="L39"></a><tt class="py-lineno"> 39</tt> <tt class="py-line"> </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</tt> <tt class="py-line"> </tt>
+<a name="SFTPServer"></a><div id="SFTPServer-def"><a name="L41"></a><tt class="py-lineno"> 41</tt> <a class="py-toggle" href="#" id="SFTPServer-toggle" onclick="return toggle('SFTPServer');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.sftp_server.SFTPServer-class.html">SFTPServer</a> <tt class="py-op">(</tt><tt class="py-base-class">BaseSFTP</tt><tt class="py-op">,</tt> <tt class="py-base-class">SubsystemHandler</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SFTPServer-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="SFTPServer-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"> Server-side SFTP subsystem support. Since this is a L{SubsystemHandler},</tt> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"><tt class="py-docstring"> it can be (and is meant to be) set as the handler for C{"sftp"} requests.</tt> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt> <tt class="py-line"><tt class="py-docstring"> Use L{Transport.set_subsystem_handler} to activate this class.</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>
+<a name="SFTPServer.__init__"></a><div id="SFTPServer.__init__-def"><a name="L48"></a><tt class="py-lineno"> 48</tt> <a class="py-toggle" href="#" id="SFTPServer.__init__-toggle" onclick="return toggle('SFTPServer.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_server.SFTPServer-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">name</tt><tt class="py-op">,</tt> <tt class="py-param">server</tt><tt class="py-op">,</tt> <tt class="py-param">sftp_si</tt><tt class="py-op">=</tt><tt id="link-12" class="py-name" targets="Class paramiko.SFTPServerInterface=paramiko.SFTPServerInterface-class.html"><a title="paramiko.SFTPServerInterface" class="py-name" href="#" onclick="return doclink('link-12', 'SFTPServerInterface', 'link-12');">SFTPServerInterface</a></tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-param">largs</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-param">kwargs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SFTPServer.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPServer.__init__-expanded"><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"> The constructor for SFTPServer is meant to be called from within the</tt> </tt>
+<a name="L51"></a><tt class="py-lineno"> 51</tt> <tt class="py-line"><tt class="py-docstring"> L{Transport} as a subsystem handler. C{server} and any additional</tt> </tt>
+<a name="L52"></a><tt class="py-lineno"> 52</tt> <tt class="py-line"><tt class="py-docstring"> parameters or keyword parameters are passed from the original call to</tt> </tt>
+<a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"><tt class="py-docstring"> L{Transport.set_subsystem_handler}.</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-docstring"> @param channel: channel passed from the L{Transport}.</tt> </tt>
+<a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"><tt class="py-docstring"> @type channel: L{Channel}</tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"><tt class="py-docstring"> @param name: name of the requested subsystem.</tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"><tt class="py-docstring"> @type name: str</tt> </tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"><tt class="py-docstring"> @param server: the server object associated with this channel and</tt> </tt>
+<a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"><tt class="py-docstring"> subsystem</tt> </tt>
+<a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"><tt class="py-docstring"> @type server: L{ServerInterface}</tt> </tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"><tt class="py-docstring"> @param sftp_si: a subclass of L{SFTPServerInterface} to use for handling</tt> </tt>
+<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__
+paramiko.AgentKey.__init__
+paramiko.BadAuthenticationType.__init__
+paramiko.BadHostKeyException.__init__
+paramiko.BufferedFile.__init__
+paramiko.Channel.__init__
+paramiko.ChannelException.__init__
+paramiko.DSSKey.__init__
+paramiko.HostKeys.__init__
+paramiko.Message.__init__
+paramiko.PKey.__init__
+paramiko.RSAKey.__init__
+paramiko.SFTPAttributes.__init__
+paramiko.SFTPClient.__init__
+paramiko.SFTPFile.__init__
+paramiko.SFTPHandle.__init__
+paramiko.SFTPServer.__init__
+paramiko.SFTPServerInterface.__init__
+paramiko.SSHClient.__init__
+paramiko.SSHConfig.__init__
+paramiko.SecurityOptions.__init__
+paramiko.SubsystemHandler.__init__
+paramiko.Transport.__init__
+paramiko.ber.BER.__init__
+paramiko.buffered_pipe.BufferedPipe.__init__
+paramiko.channel.ChannelStderrFile.__init__
+paramiko.compress.ZlibCompressor.__init__
+paramiko.compress.ZlibDecompressor.__init__
+paramiko.hostkeys.HostKeyEntry.__init__
+paramiko.kex_gex.KexGex.__init__
+paramiko.kex_group1.KexGroup1.__init__
+paramiko.logging22.Formatter.__init__
+paramiko.logging22.StreamHandler.__init__
+paramiko.logging22.logger.__init__
+paramiko.pipe.OrPipe.__init__
+paramiko.pipe.PosixPipe.__init__
+paramiko.pipe.WindowsPipe.__init__
+paramiko.primes.ModulusPack.__init__
+paramiko.rng.StrongLockingRandomPool.__init__
+paramiko.ssh_exception.PartialAuthentication.__init__
+paramiko.transport.ChannelMap.__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__
+paramiko.AgentKey.__init__
+paramiko.BadAuthenticationType.__init__
+paramiko.BadHostKeyException.__init__
+paramiko.BufferedFile.__init__
+paramiko.Channel.__init__
+paramiko.ChannelException.__init__
+paramiko.DSSKey.__init__
+paramiko.HostKeys.__init__
+paramiko.Message.__init__
+paramiko.PKey.__init__
+paramiko.RSAKey.__init__
+paramiko.SFTPAttributes.__init__
+paramiko.SFTPClient.__init__
+paramiko.SFTPFile.__init__
+paramiko.SFTPHandle.__init__
+paramiko.SFTPServer.__init__
+paramiko.SFTPServerInterface.__init__
+paramiko.SSHClient.__init__
+paramiko.SSHConfig.__init__
+paramiko.SecurityOptions.__init__
+paramiko.SubsystemHandler.__init__
+paramiko.Transport.__init__
+paramiko.ber.BER.__init__
+paramiko.buffered_pipe.BufferedPipe.__init__
+paramiko.channel.ChannelStderrFile.__init__
+paramiko.compress.ZlibCompressor.__init__
+paramiko.compress.ZlibDecompressor.__init__
+paramiko.hostkeys.HostKeyEntry.__init__
+paramiko.kex_gex.KexGex.__init__
+paramiko.kex_group1.KexGroup1.__init__
+paramiko.logging22.Formatter.__init__
+paramiko.logging22.StreamHandler.__init__
+paramiko.logging22.logger.__init__
+paramiko.pipe.OrPipe.__init__
+paramiko.pipe.PosixPipe.__init__
+paramiko.pipe.WindowsPipe.__init__
+paramiko.primes.ModulusPack.__init__
+paramiko.rng.StrongLockingRandomPool.__init__
+paramiko.ssh_exception.PartialAuthentication.__init__
+paramiko.transport.ChannelMap.__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>
+<a name="L68"></a><tt class="py-lineno"> 68</tt> <tt class="py-line"> <tt id="link-19" class="py-name" targets="Module paramiko.transport=paramiko.transport-module.html"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-19', 'transport', 'link-19');">transport</a></tt> <tt class="py-op">=</tt> <tt id="link-20" class="py-name"><a title="paramiko.channel" class="py-name" href="#" onclick="return doclink('link-20', 'channel', 'link-16');">channel</a></tt><tt class="py-op">.</tt><tt id="link-21" 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-21', 'get_transport', 'link-21');">get_transport</a></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-name">self</tt><tt class="py-op">.</tt><tt id="link-22" 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-22', 'logger', 'link-22');">logger</a></tt> <tt class="py-op">=</tt> <tt id="link-23" class="py-name" targets="Module paramiko.util=paramiko.util-module.html"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-23', 'util', 'link-23');">util</a></tt><tt class="py-op">.</tt><tt id="link-24" 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-24', 'get_logger', 'link-24');">get_logger</a></tt><tt class="py-op">(</tt><tt id="link-25" class="py-name"><a title="paramiko.transport" class="py-name" href="#" onclick="return doclink('link-25', 'transport', 'link-19');">transport</a></tt><tt class="py-op">.</tt><tt id="link-26" 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-26', 'get_log_channel', 'link-26');">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="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="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>
+<a name="SFTPServer._log"></a><div id="SFTPServer._log-def"><a name="L77"></a><tt class="py-lineno"> 77</tt> <a class="py-toggle" href="#" id="SFTPServer._log-toggle" onclick="return toggle('SFTPServer._log');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_server.SFTPServer-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="SFTPServer._log-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPServer._log-expanded"><a name="L78"></a><tt class="py-lineno"> 78</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="L79"></a><tt class="py-lineno"> 79</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="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"> <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-32" class="py-name" targets="Class paramiko.SFTPServer=paramiko.SFTPServer-class.html"><a title="paramiko.SFTPServer" class="py-name" href="#" onclick="return doclink('link-32', '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 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 "</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-33" 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-33', 'get_name', 'link-33');">get_name</a></tt><tt class="py-op">(</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">m</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">else</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">super</tt><tt class="py-op">(</tt><tt id="link-34" class="py-name"><a title="paramiko.SFTPServer" class="py-name" href="#" onclick="return doclink('link-34', '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 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 "</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-35" 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-35', 'get_name', 'link-33');">get_name</a></tt><tt class="py-op">(</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">msg</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"> </tt>
+<a name="SFTPServer.start_subsystem"></a><div id="SFTPServer.start_subsystem-def"><a name="L84"></a><tt class="py-lineno"> 84</tt> <a class="py-toggle" href="#" id="SFTPServer.start_subsystem-toggle" onclick="return toggle('SFTPServer.start_subsystem');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_server.SFTPServer-class.html#start_subsystem">start_subsystem</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">transport</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="SFTPServer.start_subsystem-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPServer.start_subsystem-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">sock</tt> <tt class="py-op">=</tt> <tt id="link-36" class="py-name"><a title="paramiko.channel" class="py-name" href="#" onclick="return doclink('link-36', 'channel', 'link-16');">channel</a></tt> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"> <tt 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" 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
+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-37', 'DEBUG', 'link-37');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Started sftp server on channel %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">repr</tt><tt class="py-op">(</tt><tt id="link-38" class="py-name"><a title="paramiko.channel" class="py-name" href="#" onclick="return doclink('link-38', 'channel', 'link-16');">channel</a></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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_send_server_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-name">self</tt><tt class="py-op">.</tt><tt id="link-39" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-39', 'server', 'link-3');">server</a></tt><tt class="py-op">.</tt><tt id="link-40" class="py-name" targets="Method paramiko.SFTPServerInterface.session_started()=paramiko.SFTPServerInterface-class.html#session_started"><a title="paramiko.SFTPServerInterface.session_started" class="py-name" href="#" onclick="return doclink('link-40', 'session_started', 'link-40');">session_started</a></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-keyword">while</tt> <tt class="py-name">True</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">try</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">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="L92"></a><tt class="py-lineno"> 92</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="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">_log</tt><tt class="py-op">(</tt><tt id="link-41" 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-41', 'DEBUG', 'link-37');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'EOF -- end of session'</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">return</tt> </tt>
+<a name="L95"></a><tt class="py-lineno"> 95</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="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">_log</tt><tt class="py-op">(</tt><tt id="link-42" 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-42', 'DEBUG', 'link-37');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Exception on channel: '</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="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">_log</tt><tt class="py-op">(</tt><tt id="link-43" 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-43', 'DEBUG', 'link-37');">DEBUG</a></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-23');">util</a></tt><tt class="py-op">.</tt><tt id="link-45" 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-45', '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="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"> <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt id="link-46" class="py-name" targets="Class paramiko.Message=paramiko.Message-class.html"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-46', 'Message', 'link-46');">Message</a></tt><tt class="py-op">(</tt><tt class="py-name">data</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">request_number</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-47" 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-47', 'get_int', 'link-47');">get_int</a></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-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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_process</tt><tt class="py-op">(</tt><tt class="py-name">t</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="L103"></a><tt class="py-lineno">103</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="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">_log</tt><tt class="py-op">(</tt><tt id="link-48" 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-48', 'DEBUG', 'link-37');">DEBUG</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Exception in server processing: '</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="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_log</tt><tt class="py-op">(</tt><tt id="link-49" 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-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="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
+paramiko.sftp_file.SFTP_FAILURE
+paramiko.sftp_handle.SFTP_FAILURE
+paramiko.sftp_server.SFTP_FAILURE
+paramiko.sftp_si.SFTP_FAILURE" class="py-name" href="#" onclick="return doclink('link-52', 'SFTP_FAILURE', 'link-52');">SFTP_FAILURE</a></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">except</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">pass</tt> </tt>
+</div><a name="L111"></a><tt class="py-lineno">111</tt> <tt class="py-line"> </tt>
+<a name="SFTPServer.finish_subsystem"></a><div id="SFTPServer.finish_subsystem-def"><a name="L112"></a><tt class="py-lineno">112</tt> <a class="py-toggle" href="#" id="SFTPServer.finish_subsystem-toggle" onclick="return toggle('SFTPServer.finish_subsystem');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_server.SFTPServer-class.html#finish_subsystem">finish_subsystem</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SFTPServer.finish_subsystem-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPServer.finish_subsystem-expanded"><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-53" class="py-name"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-53', 'server', 'link-3');">server</a></tt><tt class="py-op">.</tt><tt id="link-54" class="py-name" targets="Method paramiko.SFTPServerInterface.session_ended()=paramiko.SFTPServerInterface-class.html#session_ended"><a title="paramiko.SFTPServerInterface.session_ended" class="py-name" href="#" onclick="return doclink('link-54', 'session_ended', 'link-54');">session_ended</a></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-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="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
+paramiko.SFTPClient.close
+paramiko.SFTPFile.close
+paramiko.SFTPHandle.close
+paramiko.SSHClient.close
+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-57', 'close', 'link-57');">close</a></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-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">folder_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="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-58" class="py-name"><a title="paramiko.Agent.close
+paramiko.BufferedFile.close
+paramiko.Channel.close
+paramiko.SFTPClient.close
+paramiko.SFTPFile.close
+paramiko.SFTPHandle.close
+paramiko.SSHClient.close
+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-58', 'close', 'link-57');">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-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="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">folder_table</tt> <tt class="py-op">=</tt> <tt class="py-op">{</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="SFTPServer.convert_errno"></a><div id="SFTPServer.convert_errno-def"><a name="L123"></a><tt class="py-lineno">123</tt> <a class="py-toggle" href="#" id="SFTPServer.convert_errno-toggle" onclick="return toggle('SFTPServer.convert_errno');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_server.SFTPServer-class.html#convert_errno">convert_errno</a><tt class="py-op">(</tt><tt class="py-param">e</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SFTPServer.convert_errno-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPServer.convert_errno-expanded"><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"> Convert an errno value (as from an C{OSError} or C{IOError}) into a</tt> </tt>
+<a name="L126"></a><tt class="py-lineno">126</tt> <tt class="py-line"><tt class="py-docstring"> standard SFTP result code. This is a convenience function for trapping</tt> </tt>
+<a name="L127"></a><tt class="py-lineno">127</tt> <tt class="py-line"><tt class="py-docstring"> exceptions in server code and returning an appropriate result.</tt> </tt>
+<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"> @param e: an errno code, as from C{OSError.errno}.</tt> </tt>
+<a name="L130"></a><tt class="py-lineno">130</tt> <tt class="py-line"><tt class="py-docstring"> @type e: int</tt> </tt>
+<a name="L131"></a><tt class="py-lineno">131</tt> <tt class="py-line"><tt class="py-docstring"> @return: an SFTP error code like L{SFTP_NO_SUCH_FILE}.</tt> </tt>
+<a name="L132"></a><tt class="py-lineno">132</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: int</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-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
+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-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
+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-60', 'SFTP_NO_SUCH_FILE', 'link-60');">SFTP_NO_SUCH_FILE</a></tt> </tt>
+<a name="L140"></a><tt class="py-lineno">140</tt> <tt class="py-line"> <tt class="py-keyword">else</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">return</tt> <tt id="link-61" class="py-name"><a title="paramiko.sftp.SFTP_FAILURE
+paramiko.sftp_attr.SFTP_FAILURE
+paramiko.sftp_client.SFTP_FAILURE
+paramiko.sftp_file.SFTP_FAILURE
+paramiko.sftp_handle.SFTP_FAILURE
+paramiko.sftp_server.SFTP_FAILURE
+paramiko.sftp_si.SFTP_FAILURE" class="py-name" href="#" onclick="return doclink('link-61', 'SFTP_FAILURE', 'link-52');">SFTP_FAILURE</a></tt> </tt>
+</div><a name="L142"></a><tt class="py-lineno">142</tt> <tt class="py-line"> <tt id="link-62" class="py-name" targets="Static Method paramiko.SFTPServer.convert_errno()=paramiko.SFTPServer-class.html#convert_errno"><a title="paramiko.SFTPServer.convert_errno" class="py-name" href="#" onclick="return doclink('link-62', 'convert_errno', 'link-62');">convert_errno</a></tt> <tt class="py-op">=</tt> <tt class="py-name">staticmethod</tt><tt class="py-op">(</tt><tt id="link-63" class="py-name"><a title="paramiko.SFTPServer.convert_errno" class="py-name" href="#" onclick="return doclink('link-63', 'convert_errno', 'link-62');">convert_errno</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L143"></a><tt class="py-lineno">143</tt> <tt class="py-line"> </tt>
+<a name="SFTPServer.set_file_attr"></a><div id="SFTPServer.set_file_attr-def"><a name="L144"></a><tt class="py-lineno">144</tt> <a class="py-toggle" href="#" id="SFTPServer.set_file_attr-toggle" onclick="return toggle('SFTPServer.set_file_attr');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_server.SFTPServer-class.html#set_file_attr">set_file_attr</a><tt class="py-op">(</tt><tt class="py-param">filename</tt><tt class="py-op">,</tt> <tt class="py-param">attr</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SFTPServer.set_file_attr-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPServer.set_file_attr-expanded"><a name="L145"></a><tt class="py-lineno">145</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L146"></a><tt class="py-lineno">146</tt> <tt class="py-line"><tt class="py-docstring"> Change a file's attributes on the local filesystem. The contents of</tt> </tt>
+<a name="L147"></a><tt class="py-lineno">147</tt> <tt class="py-line"><tt class="py-docstring"> C{attr} are used to change the permissions, owner, group ownership,</tt> </tt>
+<a name="L148"></a><tt class="py-lineno">148</tt> <tt class="py-line"><tt class="py-docstring"> and/or modification &amp; access time of the file, depending on which</tt> </tt>
+<a name="L149"></a><tt class="py-lineno">149</tt> <tt class="py-line"><tt class="py-docstring"> attributes are present in C{attr}.</tt> </tt>
+<a name="L150"></a><tt class="py-lineno">150</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L151"></a><tt class="py-lineno">151</tt> <tt class="py-line"><tt class="py-docstring"> This is meant to be a handy helper function for translating SFTP file</tt> </tt>
+<a name="L152"></a><tt class="py-lineno">152</tt> <tt class="py-line"><tt class="py-docstring"> requests into local file operations.</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"> @param filename: name of the file to alter (should usually be an</tt> </tt>
+<a name="L155"></a><tt class="py-lineno">155</tt> <tt class="py-line"><tt class="py-docstring"> absolute path).</tt> </tt>
+<a name="L156"></a><tt class="py-lineno">156</tt> <tt class="py-line"><tt class="py-docstring"> @type filename: str</tt> </tt>
+<a name="L157"></a><tt class="py-lineno">157</tt> <tt class="py-line"><tt class="py-docstring"> @param attr: attributes to change.</tt> </tt>
+<a name="L158"></a><tt class="py-lineno">158</tt> <tt class="py-line"><tt class="py-docstring"> @type attr: L{SFTPAttributes}</tt> </tt>
+<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="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>
+<a name="L165"></a><tt class="py-lineno">165</tt> <tt class="py-line"> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-67" class="py-name" targets="Method paramiko.SFTPClient.chown()=paramiko.SFTPClient-class.html#chown,Method paramiko.SFTPFile.chown()=paramiko.SFTPFile-class.html#chown"><a title="paramiko.SFTPClient.chown
+paramiko.SFTPFile.chown" class="py-name" href="#" onclick="return doclink('link-67', 'chown', 'link-67');">chown</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_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>
+<a name="L166"></a><tt class="py-lineno">166</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-68" class="py-name" targets="Variable paramiko.SFTPAttributes.FLAG_AMTIME=paramiko.SFTPAttributes-class.html#FLAG_AMTIME"><a title="paramiko.SFTPAttributes.FLAG_AMTIME" class="py-name" href="#" onclick="return doclink('link-68', 'FLAG_AMTIME', 'link-68');">FLAG_AMTIME</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-name">os</tt><tt class="py-op">.</tt><tt id="link-69" class="py-name" targets="Method paramiko.SFTPClient.utime()=paramiko.SFTPClient-class.html#utime,Method paramiko.SFTPFile.utime()=paramiko.SFTPFile-class.html#utime"><a title="paramiko.SFTPClient.utime
+paramiko.SFTPFile.utime" class="py-name" href="#" onclick="return doclink('link-69', 'utime', 'link-69');">utime</a></tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><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-op">)</tt> </tt>
+<a name="L168"></a><tt class="py-lineno">168</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-70" class="py-name" targets="Variable paramiko.SFTPAttributes.FLAG_SIZE=paramiko.SFTPAttributes-class.html#FLAG_SIZE"><a title="paramiko.SFTPAttributes.FLAG_SIZE" class="py-name" href="#" onclick="return doclink('link-70', 'FLAG_SIZE', 'link-70');">FLAG_SIZE</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L169"></a><tt class="py-lineno">169</tt> <tt class="py-line"> <tt id="link-71" 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-71', 'open', 'link-71');">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-op">.</tt><tt id="link-72" class="py-name" targets="Method paramiko.SFTPClient.truncate()=paramiko.SFTPClient-class.html#truncate,Method paramiko.SFTPFile.truncate()=paramiko.SFTPFile-class.html#truncate"><a title="paramiko.SFTPClient.truncate
+paramiko.SFTPFile.truncate" class="py-name" href="#" onclick="return doclink('link-72', 'truncate', 'link-72');">truncate</a></tt><tt class="py-op">(</tt><tt class="py-name">attr</tt><tt class="py-op">.</tt><tt class="py-name">st_size</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L170"></a><tt class="py-lineno">170</tt> <tt class="py-line"> <tt id="link-73" class="py-name" targets="Static Method paramiko.SFTPServer.set_file_attr()=paramiko.SFTPServer-class.html#set_file_attr"><a title="paramiko.SFTPServer.set_file_attr" class="py-name" href="#" onclick="return doclink('link-73', 'set_file_attr', 'link-73');">set_file_attr</a></tt> <tt class="py-op">=</tt> <tt class="py-name">staticmethod</tt><tt class="py-op">(</tt><tt id="link-74" class="py-name"><a title="paramiko.SFTPServer.set_file_attr" class="py-name" href="#" onclick="return doclink('link-74', 'set_file_attr', 'link-73');">set_file_attr</a></tt><tt class="py-op">)</tt> </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>
+<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="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>
+<a name="L178"></a><tt class="py-lineno">178</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-76" 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-76', '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="L179"></a><tt class="py-lineno">179</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="L180"></a><tt class="py-lineno">180</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="L181"></a><tt class="py-lineno">181</tt> <tt class="py-line"> <tt class="py-name">msg</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-76');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">item</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">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="L183"></a><tt class="py-lineno">183</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-78" 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-78', 'add_int64', 'link-78');">add_int64</a></tt><tt class="py-op">(</tt><tt class="py-name">item</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">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="L185"></a><tt class="py-lineno">185</tt> <tt class="py-line"> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-79" 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-79', 'add_string', 'link-79');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">item</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">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-80" class="py-name" targets="Class paramiko.SFTPAttributes=paramiko.SFTPAttributes-class.html"><a title="paramiko.SFTPAttributes" class="py-name" href="#" onclick="return doclink('link-80', 'SFTPAttributes', 'link-80');">SFTPAttributes</a></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">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="L188"></a><tt class="py-lineno">188</tt> <tt class="py-line"> <tt class="py-keyword">else</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 class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-string">'unknown type for '</tt> <tt class="py-op">+</tt> <tt class="py-name">repr</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-string">' type '</tt> <tt class="py-op">+</tt> <tt class="py-name">repr</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="L190"></a><tt class="py-lineno">190</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>
+</div><a name="L191"></a><tt class="py-lineno">191</tt> <tt class="py-line"> </tt>
+<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="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>
+<a name="L199"></a><tt class="py-lineno">199</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">folder</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">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 class="py-name">_get_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-name">handle</tt> </tt>
+<a name="L201"></a><tt class="py-lineno">201</tt> <tt class="py-line"> <tt class="py-keyword">else</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">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-name">_get_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-name">handle</tt> </tt>
+<a name="L203"></a><tt class="py-lineno">203</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-82" 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-82', 'CMD_HANDLE', 'link-82');">CMD_HANDLE</a></tt><tt class="py-op">,</tt> <tt class="py-name">handle</tt><tt class="py-op">.</tt><tt class="py-name">_get_name</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L204"></a><tt class="py-lineno">204</tt> <tt class="py-line"> </tt>
+<a name="SFTPServer._send_status"></a><div id="SFTPServer._send_status-def"><a name="L205"></a><tt class="py-lineno">205</tt> <a class="py-toggle" href="#" id="SFTPServer._send_status-toggle" onclick="return toggle('SFTPServer._send_status');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_server.SFTPServer-class.html#_send_status">_send_status</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">code</tt><tt class="py-op">,</tt> <tt class="py-param">desc</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="SFTPServer._send_status-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPServer._send_status-expanded"><a name="L206"></a><tt class="py-lineno">206</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">desc</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">try</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">desc</tt> <tt class="py-op">=</tt> <tt id="link-83" class="py-name" targets="Variable paramiko.sftp.SFTP_DESC=paramiko.sftp-module.html#SFTP_DESC,Variable paramiko.sftp_attr.SFTP_DESC=paramiko.sftp_attr-module.html#SFTP_DESC,Variable paramiko.sftp_client.SFTP_DESC=paramiko.sftp_client-module.html#SFTP_DESC,Variable paramiko.sftp_file.SFTP_DESC=paramiko.sftp_file-module.html#SFTP_DESC,Variable paramiko.sftp_handle.SFTP_DESC=paramiko.sftp_handle-module.html#SFTP_DESC,Variable paramiko.sftp_server.SFTP_DESC=paramiko.sftp_server-module.html#SFTP_DESC,Variable paramiko.sftp_si.SFTP_DESC=paramiko.sftp_si-module.html#SFTP_DESC"><a title="paramiko.sftp.SFTP_DESC
+paramiko.sftp_attr.SFTP_DESC
+paramiko.sftp_client.SFTP_DESC
+paramiko.sftp_file.SFTP_DESC
+paramiko.sftp_handle.SFTP_DESC
+paramiko.sftp_server.SFTP_DESC
+paramiko.sftp_si.SFTP_DESC" class="py-name" href="#" onclick="return doclink('link-83', 'SFTP_DESC', 'link-83');">SFTP_DESC</a></tt><tt class="py-op">[</tt><tt class="py-name">code</tt><tt class="py-op">]</tt> </tt>
+<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
+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-84', 'CMD_STATUS', 'link-84');">CMD_STATUS</a></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-string">''</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="SFTPServer._open_folder"></a><div id="SFTPServer._open_folder-def"><a name="L214"></a><tt class="py-lineno">214</tt> <a class="py-toggle" href="#" id="SFTPServer._open_folder-toggle" onclick="return toggle('SFTPServer._open_folder');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_server.SFTPServer-class.html#_open_folder">_open_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">path</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</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="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>
+</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>
+<a name="L227"></a><tt class="py-lineno">227</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">flist</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="L228"></a><tt class="py-lineno">228</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-88" 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-88', 'SFTP_EOF', 'link-88');">SFTP_EOF</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L229"></a><tt class="py-lineno">229</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> </tt>
+<a name="L230"></a><tt class="py-lineno">230</tt> <tt class="py-line"> <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt id="link-89" class="py-name"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-89', 'Message', 'link-46');">Message</a></tt><tt class="py-op">(</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">msg</tt><tt class="py-op">.</tt><tt id="link-90" class="py-name"><a title="paramiko.Message.add_int" class="py-name" href="#" onclick="return doclink('link-90', '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="L232"></a><tt class="py-lineno">232</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.add_int" class="py-name" href="#" onclick="return doclink('link-91', 'add_int', 'link-76');">add_int</a></tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">flist</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-keyword">for</tt> <tt class="py-name">attr</tt> <tt class="py-keyword">in</tt> <tt class="py-name">flist</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">msg</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-79');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">attr</tt><tt class="py-op">.</tt><tt class="py-name">filename</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">msg</tt><tt class="py-op">.</tt><tt id="link-93" class="py-name"><a title="paramiko.Message.add_string" class="py-name" href="#" onclick="return doclink('link-93', 'add_string', 'link-79');">add_string</a></tt><tt class="py-op">(</tt><tt class="py-name">str</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="L236"></a><tt class="py-lineno">236</tt> <tt class="py-line"> <tt class="py-name">attr</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="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">_send_packet</tt><tt class="py-op">(</tt><tt id="link-94" 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-94', 'CMD_NAME', 'link-94');">CMD_NAME</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="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="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>
+<a name="L248"></a><tt class="py-lineno">248</tt> <tt class="py-line"> <tt class="py-name">block_size</tt> <tt class="py-op">=</tt> <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt id="link-99" class="py-name"><a title="paramiko.Message.get_int" class="py-name" href="#" onclick="return doclink('link-99', 'get_int', 'link-47');">get_int</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-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="L250"></a><tt class="py-lineno">250</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-100" class="py-name" targets="Variable paramiko.sftp.SFTP_BAD_MESSAGE=paramiko.sftp-module.html#SFTP_BAD_MESSAGE,Variable paramiko.sftp_attr.SFTP_BAD_MESSAGE=paramiko.sftp_attr-module.html#SFTP_BAD_MESSAGE,Variable paramiko.sftp_client.SFTP_BAD_MESSAGE=paramiko.sftp_client-module.html#SFTP_BAD_MESSAGE,Variable paramiko.sftp_file.SFTP_BAD_MESSAGE=paramiko.sftp_file-module.html#SFTP_BAD_MESSAGE,Variable paramiko.sftp_handle.SFTP_BAD_MESSAGE=paramiko.sftp_handle-module.html#SFTP_BAD_MESSAGE,Variable paramiko.sftp_server.SFTP_BAD_MESSAGE=paramiko.sftp_server-module.html#SFTP_BAD_MESSAGE,Variable paramiko.sftp_si.SFTP_BAD_MESSAGE=paramiko.sftp_si-module.html#SFTP_BAD_MESSAGE"><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-100', '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="L251"></a><tt class="py-lineno">251</tt> <tt class="py-line"> <tt class="py-keyword">return</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 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="L253"></a><tt class="py-lineno">253</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">alg_list</tt><tt class="py-op">:</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">x</tt> <tt class="py-keyword">in</tt> <tt id="link-101" class="py-name"><a title="paramiko.sftp_server._hash_class" class="py-name" href="#" onclick="return doclink('link-101', '_hash_class', 'link-11');">_hash_class</a></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">algname</tt> <tt class="py-op">=</tt> <tt class="py-name">x</tt> </tt>
+<a name="L256"></a><tt class="py-lineno">256</tt> <tt class="py-line"> <tt class="py-name">alg</tt> <tt class="py-op">=</tt> <tt id="link-102" class="py-name"><a title="paramiko.sftp_server._hash_class" class="py-name" href="#" onclick="return doclink('link-102', '_hash_class', 'link-11');">_hash_class</a></tt><tt class="py-op">[</tt><tt class="py-name">x</tt><tt class="py-op">]</tt> </tt>
+<a name="L257"></a><tt class="py-lineno">257</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
+<a name="L258"></a><tt class="py-lineno">258</tt> <tt class="py-line"> <tt class="py-keyword">else</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">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-103" class="py-name"><a title="paramiko.sftp.SFTP_FAILURE
+paramiko.sftp_attr.SFTP_FAILURE
+paramiko.sftp_client.SFTP_FAILURE
+paramiko.sftp_file.SFTP_FAILURE
+paramiko.sftp_handle.SFTP_FAILURE
+paramiko.sftp_server.SFTP_FAILURE
+paramiko.sftp_si.SFTP_FAILURE" class="py-name" href="#" onclick="return doclink('link-103', 'SFTP_FAILURE', 'link-52');">SFTP_FAILURE</a></tt><tt class="py-op">,</tt> <tt class="py-string">'No supported hash types found'</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>
+<a name="L261"></a><tt class="py-lineno">261</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">length</tt> <tt class="py-op">==</tt> <tt class="py-number">0</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">st</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-104" 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-104', 'stat', 'link-104');">stat</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L263"></a><tt class="py-lineno">263</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">st</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-105" class="py-name"><a title="paramiko.SFTPAttributes" class="py-name" href="#" onclick="return doclink('link-105', 'SFTPAttributes', 'link-80');">SFTPAttributes</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 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">st</tt><tt class="py-op">,</tt> <tt class="py-string">'Unable to stat file'</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>
+<a name="L266"></a><tt class="py-lineno">266</tt> <tt class="py-line"> <tt class="py-name">length</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">.</tt><tt class="py-name">st_size</tt> <tt class="py-op">-</tt> <tt class="py-name">start</tt> </tt>
+<a name="L267"></a><tt class="py-lineno">267</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">block_size</tt> <tt class="py-op">==</tt> <tt class="py-number">0</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">block_size</tt> <tt class="py-op">=</tt> <tt class="py-name">length</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">block_size</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">256</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">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-106" class="py-name"><a title="paramiko.sftp.SFTP_FAILURE
+paramiko.sftp_attr.SFTP_FAILURE
+paramiko.sftp_client.SFTP_FAILURE
+paramiko.sftp_file.SFTP_FAILURE
+paramiko.sftp_handle.SFTP_FAILURE
+paramiko.sftp_server.SFTP_FAILURE
+paramiko.sftp_si.SFTP_FAILURE" class="py-name" href="#" onclick="return doclink('link-106', 'SFTP_FAILURE', 'link-52');">SFTP_FAILURE</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Block size too small'</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>
+<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 class="py-name">sum_out</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
+<a name="L274"></a><tt class="py-lineno">274</tt> <tt class="py-line"> <tt class="py-name">offset</tt> <tt class="py-op">=</tt> <tt class="py-name">start</tt> </tt>
+<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="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="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
+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>
+<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>
+<a name="L286"></a><tt class="py-lineno">286</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">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">count</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="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
+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>
+</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
+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_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>
+<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
+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>
+<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
+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>
+<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
+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>
+<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
+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>
+<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
+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>
+<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
+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-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.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_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_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>
+<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
+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>
+<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
+paramiko.BufferedFile.close
+paramiko.Channel.close
+paramiko.SFTPClient.close
+paramiko.SFTPFile.close
+paramiko.SFTPHandle.close
+paramiko.SSHClient.close
+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>
+<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
+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>
+<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
+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_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>
+<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
+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>
+<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
+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>
+<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
+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>
+<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
+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>
+<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
+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>
+<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
+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>
+<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
+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_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_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_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_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>
+<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
+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>
+<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
+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>
+<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
+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.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.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>
+<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
+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_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>
+<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
+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>
+<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
+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>
+<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
+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.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>
+<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
+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_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>
+<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
+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>
+<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
+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>
+<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
+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>
+<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
+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>
+<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
+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_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_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>
+<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
+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>
+<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
+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>
+</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="L445"></a><tt class="py-lineno">445</tt> <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<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 Jul 6 18:30:37 2008
+ </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.sftp_si-module.html b/docs/paramiko.sftp_si-module.html
new file mode 100644
index 0000000..4907504
--- /dev/null
+++ b/docs/paramiko.sftp_si-module.html
@@ -0,0 +1,902 @@
+<?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.sftp_si</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> ::
+ Module&nbsp;sftp_si
+ </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.sftp_si-module.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module sftp_si</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.sftp_si-pysrc.html">source&nbsp;code</a></span></p>
+<p><a href="paramiko.SFTPServerInterface-class.html"
+ class="link">SFTPServerInterface</a> is an interface to override for SFTP
+ server support.</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="AUTH_FAILED"></a><span class="summary-name">AUTH_FAILED</span> = <code title="2">2</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_PARTIALLY_SUCCESSFUL"></a><span class="summary-name">AUTH_PARTIALLY_SUCCESSFUL</span> = <code title="1">1</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_SUCCESSFUL"></a><span class="summary-name">AUTH_SUCCESSFUL</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="CMD_ATTRS"></a><span class="summary-name">CMD_ATTRS</span> = <code title="105">105</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="CMD_CLOSE"></a><span class="summary-name">CMD_CLOSE</span> = <code title="4">4</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="CMD_DATA"></a><span class="summary-name">CMD_DATA</span> = <code title="103">103</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="CMD_EXTENDED"></a><span class="summary-name">CMD_EXTENDED</span> = <code title="200">200</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="CMD_EXTENDED_REPLY"></a><span class="summary-name">CMD_EXTENDED_REPLY</span> = <code title="201">201</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="CMD_FSETSTAT"></a><span class="summary-name">CMD_FSETSTAT</span> = <code title="10">10</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="CMD_FSTAT"></a><span class="summary-name">CMD_FSTAT</span> = <code title="8">8</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="CMD_HANDLE"></a><span class="summary-name">CMD_HANDLE</span> = <code title="102">102</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="CMD_INIT"></a><span class="summary-name">CMD_INIT</span> = <code title="1">1</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="CMD_LSTAT"></a><span class="summary-name">CMD_LSTAT</span> = <code title="7">7</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="CMD_MKDIR"></a><span class="summary-name">CMD_MKDIR</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="CMD_NAME"></a><span class="summary-name">CMD_NAME</span> = <code title="104">104</code>
+ </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.sftp_si-module.html#CMD_NAMES" class="summary-name">CMD_NAMES</a> = <code title="{1: 'init',
+ 2: 'version',
+ 3: 'open',
+ 4: 'close',
+ 5: 'read',
+ 6: 'write',
+ 7: 'lstat',
+ 8: 'fstat',
+..."><code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">init</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">version</code><code class="variable-quote">'</code><code class="variable-op">, </code>3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">open</code><code class="variable-quote">'</code><code class="variable-op">, </code>4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">close</code><code class="variable-quote">'</code><code class="variable-op">, </code>5<code class="variable-ellipsis">...</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="CMD_OPEN"></a><span class="summary-name">CMD_OPEN</span> = <code title="3">3</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="CMD_OPENDIR"></a><span class="summary-name">CMD_OPENDIR</span> = <code title="11">11</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="CMD_READ"></a><span class="summary-name">CMD_READ</span> = <code title="5">5</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="CMD_READDIR"></a><span class="summary-name">CMD_READDIR</span> = <code title="12">12</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="CMD_READLINK"></a><span class="summary-name">CMD_READLINK</span> = <code title="19">19</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="CMD_REALPATH"></a><span class="summary-name">CMD_REALPATH</span> = <code title="16">16</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="CMD_REMOVE"></a><span class="summary-name">CMD_REMOVE</span> = <code title="13">13</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="CMD_RENAME"></a><span class="summary-name">CMD_RENAME</span> = <code title="18">18</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="CMD_RMDIR"></a><span class="summary-name">CMD_RMDIR</span> = <code title="15">15</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="CMD_SETSTAT"></a><span class="summary-name">CMD_SETSTAT</span> = <code title="9">9</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="CMD_STAT"></a><span class="summary-name">CMD_STAT</span> = <code title="17">17</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="CMD_STATUS"></a><span class="summary-name">CMD_STATUS</span> = <code title="101">101</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="CMD_SYMLINK"></a><span class="summary-name">CMD_SYMLINK</span> = <code title="20">20</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="CMD_VERSION"></a><span class="summary-name">CMD_VERSION</span> = <code title="2">2</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="CMD_WRITE"></a><span class="summary-name">CMD_WRITE</span> = <code title="6">6</code>
+ </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.sftp_si-module.html#CONNECTION_FAILED_CODE" class="summary-name">CONNECTION_FAILED_CODE</a> = <code title="{1: 'Administratively prohibited',
+ 2: 'Connect failed',
+ 3: 'Unknown channel type',
+ 4: 'Resource shortage'}"><code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Administratively prohibited</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-op">:</code><code class="variable-ellipsis">...</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="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="DEBUG"></a><span class="summary-name">DEBUG</span> = <code title="10">10</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="DISCONNECT_AUTH_CANCELLED_BY_USER"></a><span class="summary-name">DISCONNECT_AUTH_CANCELLED_BY_USER</span> = <code title="13">13</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="DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE"></a><span class="summary-name">DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE</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="DISCONNECT_SERVICE_NOT_AVAILABLE"></a><span class="summary-name">DISCONNECT_SERVICE_NOT_AVAILABLE</span> = <code title="7">7</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="ERROR"></a><span class="summary-name">ERROR</span> = <code title="40">40</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="INFO"></a><span class="summary-name">INFO</span> = <code title="20">20</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="MSG_CHANNEL_CLOSE"></a><span class="summary-name">MSG_CHANNEL_CLOSE</span> = <code title="97">97</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="MSG_CHANNEL_DATA"></a><span class="summary-name">MSG_CHANNEL_DATA</span> = <code title="94">94</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="MSG_CHANNEL_EOF"></a><span class="summary-name">MSG_CHANNEL_EOF</span> = <code title="96">96</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="MSG_CHANNEL_EXTENDED_DATA"></a><span class="summary-name">MSG_CHANNEL_EXTENDED_DATA</span> = <code title="95">95</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="MSG_CHANNEL_FAILURE"></a><span class="summary-name">MSG_CHANNEL_FAILURE</span> = <code title="100">100</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="MSG_CHANNEL_OPEN"></a><span class="summary-name">MSG_CHANNEL_OPEN</span> = <code title="90">90</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="MSG_CHANNEL_OPEN_FAILURE"></a><span class="summary-name">MSG_CHANNEL_OPEN_FAILURE</span> = <code title="92">92</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="MSG_CHANNEL_OPEN_SUCCESS"></a><span class="summary-name">MSG_CHANNEL_OPEN_SUCCESS</span> = <code title="91">91</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="MSG_CHANNEL_REQUEST"></a><span class="summary-name">MSG_CHANNEL_REQUEST</span> = <code title="98">98</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="MSG_CHANNEL_SUCCESS"></a><span class="summary-name">MSG_CHANNEL_SUCCESS</span> = <code title="99">99</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="MSG_CHANNEL_WINDOW_ADJUST"></a><span class="summary-name">MSG_CHANNEL_WINDOW_ADJUST</span> = <code title="93">93</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="MSG_DEBUG"></a><span class="summary-name">MSG_DEBUG</span> = <code title="4">4</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="MSG_DISCONNECT"></a><span class="summary-name">MSG_DISCONNECT</span> = <code title="1">1</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="MSG_GLOBAL_REQUEST"></a><span class="summary-name">MSG_GLOBAL_REQUEST</span> = <code title="80">80</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="MSG_IGNORE"></a><span class="summary-name">MSG_IGNORE</span> = <code title="2">2</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="MSG_KEXINIT"></a><span class="summary-name">MSG_KEXINIT</span> = <code title="20">20</code>
+ </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.sftp_si-module.html#MSG_NAMES" class="summary-name">MSG_NAMES</a> = <code title="{1: 'disconnect',
+ 2: 'ignore',
+ 3: 'unimplemented',
+ 4: 'debug',
+ 5: 'service-request',
+ 6: 'service-accept',
+ 20: 'kexinit',
+ 21: 'newkeys',
+..."><code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">disconnect</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">ignore</code><code class="variable-quote">'</code><code class="variable-op">, </code>3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">unimplemented</code><code class="variable-quote">'</code><code class="variable-op">,</code><code class="variable-ellipsis">...</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="MSG_NEWKEYS"></a><span class="summary-name">MSG_NEWKEYS</span> = <code title="21">21</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="MSG_REQUEST_FAILURE"></a><span class="summary-name">MSG_REQUEST_FAILURE</span> = <code title="82">82</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="MSG_REQUEST_SUCCESS"></a><span class="summary-name">MSG_REQUEST_SUCCESS</span> = <code title="81">81</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="MSG_SERVICE_ACCEPT"></a><span class="summary-name">MSG_SERVICE_ACCEPT</span> = <code title="6">6</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="MSG_SERVICE_REQUEST"></a><span class="summary-name">MSG_SERVICE_REQUEST</span> = <code title="5">5</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="MSG_UNIMPLEMENTED"></a><span class="summary-name">MSG_UNIMPLEMENTED</span> = <code title="3">3</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="MSG_USERAUTH_BANNER"></a><span class="summary-name">MSG_USERAUTH_BANNER</span> = <code title="53">53</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="MSG_USERAUTH_FAILURE"></a><span class="summary-name">MSG_USERAUTH_FAILURE</span> = <code title="51">51</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="MSG_USERAUTH_INFO_REQUEST"></a><span class="summary-name">MSG_USERAUTH_INFO_REQUEST</span> = <code title="60">60</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="MSG_USERAUTH_INFO_RESPONSE"></a><span class="summary-name">MSG_USERAUTH_INFO_RESPONSE</span> = <code title="61">61</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="MSG_USERAUTH_PK_OK"></a><span class="summary-name">MSG_USERAUTH_PK_OK</span> = <code title="60">60</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="MSG_USERAUTH_REQUEST"></a><span class="summary-name">MSG_USERAUTH_REQUEST</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="MSG_USERAUTH_SUCCESS"></a><span class="summary-name">MSG_USERAUTH_SUCCESS</span> = <code title="52">52</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="OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED"></a><span class="summary-name">OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED</span> = <code title="1">1</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="OPEN_FAILED_CONNECT_FAILED"></a><span class="summary-name">OPEN_FAILED_CONNECT_FAILED</span> = <code title="2">2</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="OPEN_FAILED_RESOURCE_SHORTAGE"></a><span class="summary-name">OPEN_FAILED_RESOURCE_SHORTAGE</span> = <code title="4">4</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="OPEN_FAILED_UNKNOWN_CHANNEL_TYPE"></a><span class="summary-name">OPEN_FAILED_UNKNOWN_CHANNEL_TYPE</span> = <code title="3">3</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="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="PY22"></a><span class="summary-name">PY22</span> = <code title="False">False</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="SFTP_BAD_MESSAGE"></a><span class="summary-name">SFTP_BAD_MESSAGE</span> = <code title="5">5</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="SFTP_CONNECTION_LOST"></a><span class="summary-name">SFTP_CONNECTION_LOST</span> = <code title="7">7</code>
+ </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.sftp_si-module.html#SFTP_DESC" class="summary-name">SFTP_DESC</a> = <code title="['Success',
+ 'End of file',
+ 'No such file',
+ 'Permission denied',
+ 'Failure',
+ 'Bad message',
+ 'No connection',
+ 'Connection lost',
+..."><code class="variable-group">[</code><code class="variable-quote">'</code><code class="variable-string">Success</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">End of file</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">No such file</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">Permis</code><code class="variable-ellipsis">...</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="SFTP_EOF"></a><span class="summary-name">SFTP_EOF</span> = <code title="1">1</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="SFTP_FAILURE"></a><span class="summary-name">SFTP_FAILURE</span> = <code title="4">4</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="SFTP_FLAG_APPEND"></a><span class="summary-name">SFTP_FLAG_APPEND</span> = <code title="4">4</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="SFTP_FLAG_CREATE"></a><span class="summary-name">SFTP_FLAG_CREATE</span> = <code title="8">8</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="SFTP_FLAG_EXCL"></a><span class="summary-name">SFTP_FLAG_EXCL</span> = <code title="32">32</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="SFTP_FLAG_READ"></a><span class="summary-name">SFTP_FLAG_READ</span> = <code title="1">1</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="SFTP_FLAG_TRUNC"></a><span class="summary-name">SFTP_FLAG_TRUNC</span> = <code title="16">16</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="SFTP_FLAG_WRITE"></a><span class="summary-name">SFTP_FLAG_WRITE</span> = <code title="2">2</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="SFTP_NO_CONNECTION"></a><span class="summary-name">SFTP_NO_CONNECTION</span> = <code title="6">6</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="SFTP_NO_SUCH_FILE"></a><span class="summary-name">SFTP_NO_SUCH_FILE</span> = <code title="2">2</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="SFTP_OK"></a><span class="summary-name">SFTP_OK</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="SFTP_OP_UNSUPPORTED"></a><span class="summary-name">SFTP_OP_UNSUPPORTED</span> = <code title="8">8</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="SFTP_PERMISSION_DENIED"></a><span class="summary-name">SFTP_PERMISSION_DENIED</span> = <code title="3">3</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="WARNING"></a><span class="summary-name">WARNING</span> = <code title="30">30</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>
+</table>
+<!-- ==================== VARIABLES DETAILS ==================== -->
+<a name="section-VariablesDetails"></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">Variables Details</span></td>
+</tr>
+</table>
+<a name="CMD_NAMES"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">CMD_NAMES</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">init</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">version</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">open</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">close</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 5<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">read</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 6<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">write</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 7<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">lstat</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 8<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">fstat</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="CONNECTION_FAILED_CODE"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">CONNECTION_FAILED_CODE</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Administratively prohibited</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Connect failed</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Unknown channel type</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Resource shortage</code><code class="variable-quote">'</code><code class="variable-group">}</code>
+</pre></td></tr></table>
+</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="MSG_NAMES"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">MSG_NAMES</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">disconnect</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">ignore</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">unimplemented</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">debug</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 5<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">service-request</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 6<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">service-accept</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 20<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">kexinit</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 21<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">newkeys</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="SFTP_DESC"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">SFTP_DESC</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-group">[</code><code class="variable-quote">'</code><code class="variable-string">Success</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">End of file</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">No such file</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">Permission denied</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">Failure</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">Bad message</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">No connection</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">Connection lost</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+ </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 Jul 6 18:30:28 2008
+ </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.sftp_si-pysrc.html b/docs/paramiko.sftp_si-pysrc.html
new file mode 100644
index 0000000..d28e3f1
--- /dev/null
+++ b/docs/paramiko.sftp_si-pysrc.html
@@ -0,0 +1,527 @@
+<?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.sftp_si</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> ::
+ Module&nbsp;sftp_si
+ </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.sftp_si-pysrc.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</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="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>
+<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">import</tt> <tt class="py-name">os</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 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="L26"></a><tt class="py-lineno"> 26</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=paramiko.sftp-module.html"><a title="paramiko.sftp" class="py-name" href="#" onclick="return doclink('link-3', 'sftp', 'link-3');">sftp</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L27"></a><tt class="py-lineno"> 27</tt> <tt class="py-line"> </tt>
+<a name="L28"></a><tt class="py-lineno"> 28</tt> <tt class="py-line"> </tt>
+<a name="SFTPServerInterface"></a><div id="SFTPServerInterface-def"><a name="L29"></a><tt class="py-lineno"> 29</tt> <a class="py-toggle" href="#" id="SFTPServerInterface-toggle" onclick="return toggle('SFTPServerInterface');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.sftp_si.SFTPServerInterface-class.html">SFTPServerInterface</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="SFTPServerInterface-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="SFTPServerInterface-expanded"><a name="L30"></a><tt class="py-lineno"> 30</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L31"></a><tt class="py-lineno"> 31</tt> <tt class="py-line"><tt class="py-docstring"> This class defines an interface for controlling the behavior of paramiko</tt> </tt>
+<a name="L32"></a><tt class="py-lineno"> 32</tt> <tt class="py-line"><tt class="py-docstring"> when using the L{SFTPServer} subsystem to provide an SFTP server.</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"> Methods on this class are called from the SFTP session's thread, so you can</tt> </tt>
+<a name="L35"></a><tt class="py-lineno"> 35</tt> <tt class="py-line"><tt class="py-docstring"> block as long as necessary without affecting other sessions (even other</tt> </tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line"><tt class="py-docstring"> SFTP sessions). However, raising an exception will usually cause the SFTP</tt> </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt> <tt class="py-line"><tt class="py-docstring"> session to abruptly end, so you will usually want to catch exceptions and</tt> </tt>
+<a name="L38"></a><tt class="py-lineno"> 38</tt> <tt class="py-line"><tt class="py-docstring"> return an appropriate error code.</tt> </tt>
+<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 class="py-docstring"> All paths are in string form instead of unicode because not all SFTP</tt> </tt>
+<a name="L41"></a><tt class="py-lineno"> 41</tt> <tt class="py-line"><tt class="py-docstring"> clients &amp; servers obey the requirement that paths be encoded in UTF-8.</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>
+<a name="SFTPServerInterface.__init__"></a><div id="SFTPServerInterface.__init__-def"><a name="L44"></a><tt class="py-lineno"> 44</tt> <a class="py-toggle" href="#" id="SFTPServerInterface.__init__-toggle" onclick="return toggle('SFTPServerInterface.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_si.SFTPServerInterface-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">server</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-param">largs</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-param">kwargs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SFTPServerInterface.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPServerInterface.__init__-expanded"><a name="L45"></a><tt class="py-lineno"> 45</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"> Create a new SFTPServerInterface object. This method does nothing by</tt> </tt>
+<a name="L47"></a><tt class="py-lineno"> 47</tt> <tt class="py-line"><tt class="py-docstring"> default and is meant to be overridden by subclasses.</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"> @param server: the server object associated with this channel and</tt> </tt>
+<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__
+paramiko.AgentKey.__init__
+paramiko.BadAuthenticationType.__init__
+paramiko.BadHostKeyException.__init__
+paramiko.BufferedFile.__init__
+paramiko.Channel.__init__
+paramiko.ChannelException.__init__
+paramiko.DSSKey.__init__
+paramiko.HostKeys.__init__
+paramiko.Message.__init__
+paramiko.PKey.__init__
+paramiko.RSAKey.__init__
+paramiko.SFTPAttributes.__init__
+paramiko.SFTPClient.__init__
+paramiko.SFTPFile.__init__
+paramiko.SFTPHandle.__init__
+paramiko.SFTPServer.__init__
+paramiko.SFTPServerInterface.__init__
+paramiko.SSHClient.__init__
+paramiko.SSHConfig.__init__
+paramiko.SecurityOptions.__init__
+paramiko.SubsystemHandler.__init__
+paramiko.Transport.__init__
+paramiko.ber.BER.__init__
+paramiko.buffered_pipe.BufferedPipe.__init__
+paramiko.channel.ChannelStderrFile.__init__
+paramiko.compress.ZlibCompressor.__init__
+paramiko.compress.ZlibDecompressor.__init__
+paramiko.hostkeys.HostKeyEntry.__init__
+paramiko.kex_gex.KexGex.__init__
+paramiko.kex_group1.KexGroup1.__init__
+paramiko.logging22.Formatter.__init__
+paramiko.logging22.StreamHandler.__init__
+paramiko.logging22.logger.__init__
+paramiko.pipe.OrPipe.__init__
+paramiko.pipe.PosixPipe.__init__
+paramiko.pipe.WindowsPipe.__init__
+paramiko.primes.ModulusPack.__init__
+paramiko.rng.StrongLockingRandomPool.__init__
+paramiko.ssh_exception.PartialAuthentication.__init__
+paramiko.transport.ChannelMap.__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>
+<a name="SFTPServerInterface.session_started"></a><div id="SFTPServerInterface.session_started-def"><a name="L55"></a><tt class="py-lineno"> 55</tt> <a class="py-toggle" href="#" id="SFTPServerInterface.session_started-toggle" onclick="return toggle('SFTPServerInterface.session_started');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_si.SFTPServerInterface-class.html#session_started">session_started</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SFTPServerInterface.session_started-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPServerInterface.session_started-expanded"><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-docstring"> The SFTP server session has just started. This method is meant to be</tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"><tt class="py-docstring"> overridden to perform any necessary setup before handling callbacks</tt> </tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"><tt class="py-docstring"> from SFTP operations.</tt> </tt>
+<a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"> </tt>
+<a name="SFTPServerInterface.session_ended"></a><div id="SFTPServerInterface.session_ended-def"><a name="L63"></a><tt class="py-lineno"> 63</tt> <a class="py-toggle" href="#" id="SFTPServerInterface.session_ended-toggle" onclick="return toggle('SFTPServerInterface.session_ended');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_si.SFTPServerInterface-class.html#session_ended">session_ended</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SFTPServerInterface.session_ended-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPServerInterface.session_ended-expanded"><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"> The SFTP server session has just ended, either cleanly or via an</tt> </tt>
+<a name="L66"></a><tt class="py-lineno"> 66</tt> <tt class="py-line"><tt class="py-docstring"> exception. This method is meant to be overridden to perform any</tt> </tt>
+<a name="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line"><tt class="py-docstring"> necessary cleanup before this C{SFTPServerInterface} object is</tt> </tt>
+<a name="L68"></a><tt class="py-lineno"> 68</tt> <tt class="py-line"><tt class="py-docstring"> destroyed.</tt> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line"> </tt>
+<a name="SFTPServerInterface.open"></a><div id="SFTPServerInterface.open-def"><a name="L72"></a><tt class="py-lineno"> 72</tt> <a class="py-toggle" href="#" id="SFTPServerInterface.open-toggle" onclick="return toggle('SFTPServerInterface.open');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_si.SFTPServerInterface-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">path</tt><tt class="py-op">,</tt> <tt class="py-param">flags</tt><tt class="py-op">,</tt> <tt class="py-param">attr</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SFTPServerInterface.open-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPServerInterface.open-expanded"><a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"><tt class="py-docstring"> Open a file on the server and create a handle for future operations</tt> </tt>
+<a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"><tt class="py-docstring"> on that file. On success, a new object subclassed from L{SFTPHandle}</tt> </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"><tt class="py-docstring"> should be returned. This handle will be used for future operations</tt> </tt>
+<a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"><tt class="py-docstring"> on the file (read, write, etc). On failure, an error code such as</tt> </tt>
+<a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"><tt class="py-docstring"> L{SFTP_PERMISSION_DENIED} should be returned.</tt> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"><tt class="py-docstring"> C{flags} contains the requested mode for opening (read-only,</tt> </tt>
+<a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"><tt class="py-docstring"> write-append, etc) as a bitset of flags from the C{os} module:</tt> </tt>
+<a name="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"><tt class="py-docstring"> - C{os.O_RDONLY}</tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"><tt class="py-docstring"> - C{os.O_WRONLY}</tt> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"><tt class="py-docstring"> - C{os.O_RDWR}</tt> </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"><tt class="py-docstring"> - C{os.O_APPEND}</tt> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"><tt class="py-docstring"> - C{os.O_CREAT}</tt> </tt>
+<a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"><tt class="py-docstring"> - C{os.O_TRUNC}</tt> </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</tt> <tt class="py-line"><tt class="py-docstring"> - C{os.O_EXCL}</tt> </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"><tt class="py-docstring"> (One of C{os.O_RDONLY}, C{os.O_WRONLY}, or C{os.O_RDWR} will always</tt> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"><tt class="py-docstring"> be set.)</tt> </tt>
+<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"> The C{attr} object contains requested attributes of the file if it</tt> </tt>
+<a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"><tt class="py-docstring"> has to be created. Some or all attribute fields may be missing if</tt> </tt>
+<a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"><tt class="py-docstring"> the client didn't specify them.</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"> @note: The SFTP protocol defines all files to be in "binary" mode.</tt> </tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"><tt class="py-docstring"> There is no equivalent to python's "text" mode.</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"> @param path: the requested path (relative or absolute) of the file</tt> </tt>
+<a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"><tt class="py-docstring"> to be opened.</tt> </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"><tt class="py-docstring"> @type path: str</tt> </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"><tt class="py-docstring"> @param flags: flags or'd together from the C{os} module indicating the</tt> </tt>
+<a name="L103"></a><tt class="py-lineno">103</tt> <tt class="py-line"><tt class="py-docstring"> requested mode for opening the file.</tt> </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"><tt class="py-docstring"> @type flags: int</tt> </tt>
+<a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"><tt class="py-docstring"> @param attr: requested attributes of the file if it is newly created.</tt> </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"><tt class="py-docstring"> @type attr: L{SFTPAttributes}</tt> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"><tt class="py-docstring"> @return: a new L{SFTPHandle} I{or error code}.</tt> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line"><tt class="py-docstring"> @rtype L{SFTPHandle}</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-keyword">return</tt> <tt id="link-6" 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-6', 'SFTP_OP_UNSUPPORTED', 'link-6');">SFTP_OP_UNSUPPORTED</a></tt> </tt>
+</div><a name="L111"></a><tt class="py-lineno">111</tt> <tt class="py-line"> </tt>
+<a name="SFTPServerInterface.list_folder"></a><div id="SFTPServerInterface.list_folder-def"><a name="L112"></a><tt class="py-lineno">112</tt> <a class="py-toggle" href="#" id="SFTPServerInterface.list_folder-toggle" onclick="return toggle('SFTPServerInterface.list_folder');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_si.SFTPServerInterface-class.html#list_folder">list_folder</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="SFTPServerInterface.list_folder-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPServerInterface.list_folder-expanded"><a name="L113"></a><tt class="py-lineno">113</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L114"></a><tt class="py-lineno">114</tt> <tt class="py-line"><tt class="py-docstring"> Return a list of files within a given folder. The C{path} will use</tt> </tt>
+<a name="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"><tt class="py-docstring"> posix notation (C{"/"} separates folder names) and may be an absolute</tt> </tt>
+<a name="L116"></a><tt class="py-lineno">116</tt> <tt class="py-line"><tt class="py-docstring"> or relative path.</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-docstring"> The list of files is expected to be a list of L{SFTPAttributes}</tt> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"><tt class="py-docstring"> objects, which are similar in structure to the objects returned by</tt> </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt> <tt class="py-line"><tt class="py-docstring"> C{os.stat}. In addition, each object should have its C{filename}</tt> </tt>
+<a name="L121"></a><tt class="py-lineno">121</tt> <tt class="py-line"><tt class="py-docstring"> field filled in, since this is important to a directory listing and</tt> </tt>
+<a name="L122"></a><tt class="py-lineno">122</tt> <tt class="py-line"><tt class="py-docstring"> not normally present in C{os.stat} results. The method</tt> </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt> <tt class="py-line"><tt class="py-docstring"> L{SFTPAttributes.from_stat} will usually do what you want.</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"> In case of an error, you should return one of the C{SFTP_*} error</tt> </tt>
+<a name="L126"></a><tt class="py-lineno">126</tt> <tt class="py-line"><tt class="py-docstring"> codes, such as L{SFTP_PERMISSION_DENIED}.</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"> @param path: the requested path (relative or absolute) to be listed.</tt> </tt>
+<a name="L129"></a><tt class="py-lineno">129</tt> <tt class="py-line"><tt class="py-docstring"> @type path: str</tt> </tt>
+<a name="L130"></a><tt class="py-lineno">130</tt> <tt class="py-line"><tt class="py-docstring"> @return: a list of the files in the given folder, using</tt> </tt>
+<a name="L131"></a><tt class="py-lineno">131</tt> <tt class="py-line"><tt class="py-docstring"> L{SFTPAttributes} objects.</tt> </tt>
+<a name="L132"></a><tt class="py-lineno">132</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: list of L{SFTPAttributes} I{or error code}</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"> @note: You should normalize the given C{path} first (see the</tt> </tt>
+<a name="L135"></a><tt class="py-lineno">135</tt> <tt class="py-line"><tt class="py-docstring"> C{os.path} module) and check appropriate permissions before returning</tt> </tt>
+<a name="L136"></a><tt class="py-lineno">136</tt> <tt class="py-line"><tt class="py-docstring"> the list of files. Be careful of malicious clients attempting to use</tt> </tt>
+<a name="L137"></a><tt class="py-lineno">137</tt> <tt class="py-line"><tt class="py-docstring"> relative paths to escape restricted folders, if you're doing a direct</tt> </tt>
+<a name="L138"></a><tt class="py-lineno">138</tt> <tt class="py-line"><tt class="py-docstring"> translation from the SFTP server path to your local filesystem.</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-keyword">return</tt> <tt id="link-7" 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-7', 'SFTP_OP_UNSUPPORTED', 'link-6');">SFTP_OP_UNSUPPORTED</a></tt> </tt>
+</div><a name="L141"></a><tt class="py-lineno">141</tt> <tt class="py-line"> </tt>
+<a name="SFTPServerInterface.stat"></a><div id="SFTPServerInterface.stat-def"><a name="L142"></a><tt class="py-lineno">142</tt> <a class="py-toggle" href="#" id="SFTPServerInterface.stat-toggle" onclick="return toggle('SFTPServerInterface.stat');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_si.SFTPServerInterface-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="SFTPServerInterface.stat-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPServerInterface.stat-expanded"><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"> Return an L{SFTPAttributes} object for a path on the server, or an</tt> </tt>
+<a name="L145"></a><tt class="py-lineno">145</tt> <tt class="py-line"><tt class="py-docstring"> error code. If your server supports symbolic links (also known as</tt> </tt>
+<a name="L146"></a><tt class="py-lineno">146</tt> <tt class="py-line"><tt class="py-docstring"> "aliases"), you should follow them. (L{lstat} is the corresponding</tt> </tt>
+<a name="L147"></a><tt class="py-lineno">147</tt> <tt class="py-line"><tt class="py-docstring"> call that doesn't follow symlinks/aliases.)</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-docstring"> @param path: the requested path (relative or absolute) to fetch</tt> </tt>
+<a name="L150"></a><tt class="py-lineno">150</tt> <tt class="py-line"><tt class="py-docstring"> file statistics for.</tt> </tt>
+<a name="L151"></a><tt class="py-lineno">151</tt> <tt class="py-line"><tt class="py-docstring"> @type path: str</tt> </tt>
+<a name="L152"></a><tt class="py-lineno">152</tt> <tt class="py-line"><tt class="py-docstring"> @return: an attributes object for the given file, or an SFTP error</tt> </tt>
+<a name="L153"></a><tt class="py-lineno">153</tt> <tt class="py-line"><tt class="py-docstring"> code (like L{SFTP_PERMISSION_DENIED}).</tt> </tt>
+<a name="L154"></a><tt class="py-lineno">154</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: L{SFTPAttributes} I{or error code}</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-keyword">return</tt> <tt id="link-8" 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-8', 'SFTP_OP_UNSUPPORTED', 'link-6');">SFTP_OP_UNSUPPORTED</a></tt> </tt>
+</div><a name="L157"></a><tt class="py-lineno">157</tt> <tt class="py-line"> </tt>
+<a name="SFTPServerInterface.lstat"></a><div id="SFTPServerInterface.lstat-def"><a name="L158"></a><tt class="py-lineno">158</tt> <a class="py-toggle" href="#" id="SFTPServerInterface.lstat-toggle" onclick="return toggle('SFTPServerInterface.lstat');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_si.SFTPServerInterface-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="SFTPServerInterface.lstat-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPServerInterface.lstat-expanded"><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-docstring"> Return an L{SFTPAttributes} object for a path on the server, or an</tt> </tt>
+<a name="L161"></a><tt class="py-lineno">161</tt> <tt class="py-line"><tt class="py-docstring"> error code. If your server supports symbolic links (also known as</tt> </tt>
+<a name="L162"></a><tt class="py-lineno">162</tt> <tt class="py-line"><tt class="py-docstring"> "aliases"), you should I{not} follow them -- instead, you should</tt> </tt>
+<a name="L163"></a><tt class="py-lineno">163</tt> <tt class="py-line"><tt class="py-docstring"> return data on the symlink or alias itself. (L{stat} is the</tt> </tt>
+<a name="L164"></a><tt class="py-lineno">164</tt> <tt class="py-line"><tt class="py-docstring"> corresponding call that follows symlinks/aliases.)</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 path: the requested path (relative or absolute) to fetch</tt> </tt>
+<a name="L167"></a><tt class="py-lineno">167</tt> <tt class="py-line"><tt class="py-docstring"> file statistics for.</tt> </tt>
+<a name="L168"></a><tt class="py-lineno">168</tt> <tt class="py-line"><tt class="py-docstring"> @type path: str</tt> </tt>
+<a name="L169"></a><tt class="py-lineno">169</tt> <tt class="py-line"><tt class="py-docstring"> @return: an attributes object for the given file, or an SFTP error</tt> </tt>
+<a name="L170"></a><tt class="py-lineno">170</tt> <tt class="py-line"><tt class="py-docstring"> code (like L{SFTP_PERMISSION_DENIED}).</tt> </tt>
+<a name="L171"></a><tt class="py-lineno">171</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: L{SFTPAttributes} I{or error code}</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-keyword">return</tt> <tt id="link-9" 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-9', 'SFTP_OP_UNSUPPORTED', 'link-6');">SFTP_OP_UNSUPPORTED</a></tt> </tt>
+</div><a name="L174"></a><tt class="py-lineno">174</tt> <tt class="py-line"> </tt>
+<a name="SFTPServerInterface.remove"></a><div id="SFTPServerInterface.remove-def"><a name="L175"></a><tt class="py-lineno">175</tt> <a class="py-toggle" href="#" id="SFTPServerInterface.remove-toggle" onclick="return toggle('SFTPServerInterface.remove');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_si.SFTPServerInterface-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="SFTPServerInterface.remove-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPServerInterface.remove-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"> Delete a file, if possible.</tt> </tt>
+<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"> @param path: the requested path (relative or absolute) of the file</tt> </tt>
+<a name="L180"></a><tt class="py-lineno">180</tt> <tt class="py-line"><tt class="py-docstring"> to delete.</tt> </tt>
+<a name="L181"></a><tt class="py-lineno">181</tt> <tt class="py-line"><tt class="py-docstring"> @type path: str</tt> </tt>
+<a name="L182"></a><tt class="py-lineno">182</tt> <tt class="py-line"><tt class="py-docstring"> @return: an SFTP error code like L{SFTP_OK}.</tt> </tt>
+<a name="L183"></a><tt class="py-lineno">183</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: int</tt> </tt>
+<a name="L184"></a><tt class="py-lineno">184</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L185"></a><tt class="py-lineno">185</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-10" 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-10', 'SFTP_OP_UNSUPPORTED', 'link-6');">SFTP_OP_UNSUPPORTED</a></tt> </tt>
+</div><a name="L186"></a><tt class="py-lineno">186</tt> <tt class="py-line"> </tt>
+<a name="SFTPServerInterface.rename"></a><div id="SFTPServerInterface.rename-def"><a name="L187"></a><tt class="py-lineno">187</tt> <a class="py-toggle" href="#" id="SFTPServerInterface.rename-toggle" onclick="return toggle('SFTPServerInterface.rename');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_si.SFTPServerInterface-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="SFTPServerInterface.rename-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPServerInterface.rename-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"> Rename (or move) a file. The SFTP specification implies that this</tt> </tt>
+<a name="L190"></a><tt class="py-lineno">190</tt> <tt class="py-line"><tt class="py-docstring"> method can be used to move an existing file into a different folder,</tt> </tt>
+<a name="L191"></a><tt class="py-lineno">191</tt> <tt class="py-line"><tt class="py-docstring"> and since there's no other (easy) way to move files via SFTP, it's</tt> </tt>
+<a name="L192"></a><tt class="py-lineno">192</tt> <tt class="py-line"><tt class="py-docstring"> probably a good idea to implement "move" in this method too, even for</tt> </tt>
+<a name="L193"></a><tt class="py-lineno">193</tt> <tt class="py-line"><tt class="py-docstring"> files that cross disk partition boundaries, if at all possible.</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 class="py-docstring"> @note: You should return an error if a file with the same name as</tt> </tt>
+<a name="L196"></a><tt class="py-lineno">196</tt> <tt class="py-line"><tt class="py-docstring"> C{newpath} already exists. (The rename operation should be</tt> </tt>
+<a name="L197"></a><tt class="py-lineno">197</tt> <tt class="py-line"><tt class="py-docstring"> non-desctructive.)</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"> @param oldpath: the requested path (relative or absolute) of the</tt> </tt>
+<a name="L200"></a><tt class="py-lineno">200</tt> <tt class="py-line"><tt class="py-docstring"> existing file.</tt> </tt>
+<a name="L201"></a><tt class="py-lineno">201</tt> <tt class="py-line"><tt class="py-docstring"> @type oldpath: str</tt> </tt>
+<a name="L202"></a><tt class="py-lineno">202</tt> <tt class="py-line"><tt class="py-docstring"> @param newpath: the requested new path of the file.</tt> </tt>
+<a name="L203"></a><tt class="py-lineno">203</tt> <tt class="py-line"><tt class="py-docstring"> @type newpath: str</tt> </tt>
+<a name="L204"></a><tt class="py-lineno">204</tt> <tt class="py-line"><tt class="py-docstring"> @return: an SFTP error code like L{SFTP_OK}.</tt> </tt>
+<a name="L205"></a><tt class="py-lineno">205</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: int</tt> </tt>
+<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-keyword">return</tt> <tt id="link-11" 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-11', 'SFTP_OP_UNSUPPORTED', 'link-6');">SFTP_OP_UNSUPPORTED</a></tt> </tt>
+</div><a name="L208"></a><tt class="py-lineno">208</tt> <tt class="py-line"> </tt>
+<a name="SFTPServerInterface.mkdir"></a><div id="SFTPServerInterface.mkdir-def"><a name="L209"></a><tt class="py-lineno">209</tt> <a class="py-toggle" href="#" id="SFTPServerInterface.mkdir-toggle" onclick="return toggle('SFTPServerInterface.mkdir');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_si.SFTPServerInterface-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">attr</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SFTPServerInterface.mkdir-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPServerInterface.mkdir-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"> Create a new directory with the given attributes. The C{attr}</tt> </tt>
+<a name="L212"></a><tt class="py-lineno">212</tt> <tt class="py-line"><tt class="py-docstring"> object may be considered a "hint" and ignored.</tt> </tt>
+<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"> The C{attr} object will contain only those fields provided by the</tt> </tt>
+<a name="L215"></a><tt class="py-lineno">215</tt> <tt class="py-line"><tt class="py-docstring"> client in its request, so you should use C{hasattr} to check for</tt> </tt>
+<a name="L216"></a><tt class="py-lineno">216</tt> <tt class="py-line"><tt class="py-docstring"> the presense of fields before using them. In some cases, the C{attr}</tt> </tt>
+<a name="L217"></a><tt class="py-lineno">217</tt> <tt class="py-line"><tt class="py-docstring"> object may be completely empty.</tt> </tt>
+<a name="L218"></a><tt class="py-lineno">218</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L219"></a><tt class="py-lineno">219</tt> <tt class="py-line"><tt class="py-docstring"> @param path: requested path (relative or absolute) of the new</tt> </tt>
+<a name="L220"></a><tt class="py-lineno">220</tt> <tt class="py-line"><tt class="py-docstring"> folder.</tt> </tt>
+<a name="L221"></a><tt class="py-lineno">221</tt> <tt class="py-line"><tt class="py-docstring"> @type path: str</tt> </tt>
+<a name="L222"></a><tt class="py-lineno">222</tt> <tt class="py-line"><tt class="py-docstring"> @param attr: requested attributes of the new folder.</tt> </tt>
+<a name="L223"></a><tt class="py-lineno">223</tt> <tt class="py-line"><tt class="py-docstring"> @type attr: L{SFTPAttributes}</tt> </tt>
+<a name="L224"></a><tt class="py-lineno">224</tt> <tt class="py-line"><tt class="py-docstring"> @return: an SFTP error code like L{SFTP_OK}.</tt> </tt>
+<a name="L225"></a><tt class="py-lineno">225</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: int</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-keyword">return</tt> <tt id="link-12" 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-12', 'SFTP_OP_UNSUPPORTED', 'link-6');">SFTP_OP_UNSUPPORTED</a></tt> </tt>
+</div><a name="L228"></a><tt class="py-lineno">228</tt> <tt class="py-line"> </tt>
+<a name="SFTPServerInterface.rmdir"></a><div id="SFTPServerInterface.rmdir-def"><a name="L229"></a><tt class="py-lineno">229</tt> <a class="py-toggle" href="#" id="SFTPServerInterface.rmdir-toggle" onclick="return toggle('SFTPServerInterface.rmdir');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_si.SFTPServerInterface-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="SFTPServerInterface.rmdir-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPServerInterface.rmdir-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"> Remove a directory if it exists. The C{path} should refer to an</tt> </tt>
+<a name="L232"></a><tt class="py-lineno">232</tt> <tt class="py-line"><tt class="py-docstring"> existing, empty folder -- otherwise this method should return an</tt> </tt>
+<a name="L233"></a><tt class="py-lineno">233</tt> <tt class="py-line"><tt class="py-docstring"> error.</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 path: requested path (relative or absolute) of the folder</tt> </tt>
+<a name="L236"></a><tt class="py-lineno">236</tt> <tt class="py-line"><tt class="py-docstring"> to remove.</tt> </tt>
+<a name="L237"></a><tt class="py-lineno">237</tt> <tt class="py-line"><tt class="py-docstring"> @type path: str</tt> </tt>
+<a name="L238"></a><tt class="py-lineno">238</tt> <tt class="py-line"><tt class="py-docstring"> @return: an SFTP error code like L{SFTP_OK}.</tt> </tt>
+<a name="L239"></a><tt class="py-lineno">239</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: int</tt> </tt>
+<a name="L240"></a><tt class="py-lineno">240</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L241"></a><tt class="py-lineno">241</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-13" 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-13', 'SFTP_OP_UNSUPPORTED', 'link-6');">SFTP_OP_UNSUPPORTED</a></tt> </tt>
+</div><a name="L242"></a><tt class="py-lineno">242</tt> <tt class="py-line"> </tt>
+<a name="SFTPServerInterface.chattr"></a><div id="SFTPServerInterface.chattr-def"><a name="L243"></a><tt class="py-lineno">243</tt> <a class="py-toggle" href="#" id="SFTPServerInterface.chattr-toggle" onclick="return toggle('SFTPServerInterface.chattr');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_si.SFTPServerInterface-class.html#chattr">chattr</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">attr</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SFTPServerInterface.chattr-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPServerInterface.chattr-expanded"><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"> Change the attributes of a file. The C{attr} object will contain</tt> </tt>
+<a name="L246"></a><tt class="py-lineno">246</tt> <tt class="py-line"><tt class="py-docstring"> only those fields provided by the client in its request, so you</tt> </tt>
+<a name="L247"></a><tt class="py-lineno">247</tt> <tt class="py-line"><tt class="py-docstring"> should check for the presence of fields before using them.</tt> </tt>
+<a name="L248"></a><tt class="py-lineno">248</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L249"></a><tt class="py-lineno">249</tt> <tt class="py-line"><tt class="py-docstring"> @param path: requested path (relative or absolute) of the file to</tt> </tt>
+<a name="L250"></a><tt class="py-lineno">250</tt> <tt class="py-line"><tt class="py-docstring"> change.</tt> </tt>
+<a name="L251"></a><tt class="py-lineno">251</tt> <tt class="py-line"><tt class="py-docstring"> @type path: str</tt> </tt>
+<a name="L252"></a><tt class="py-lineno">252</tt> <tt class="py-line"><tt class="py-docstring"> @param attr: requested attributes to change on the file.</tt> </tt>
+<a name="L253"></a><tt class="py-lineno">253</tt> <tt class="py-line"><tt class="py-docstring"> @type attr: L{SFTPAttributes}</tt> </tt>
+<a name="L254"></a><tt class="py-lineno">254</tt> <tt class="py-line"><tt class="py-docstring"> @return: an error code like L{SFTP_OK}.</tt> </tt>
+<a name="L255"></a><tt class="py-lineno">255</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: int</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-keyword">return</tt> <tt id="link-14" 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-14', 'SFTP_OP_UNSUPPORTED', 'link-6');">SFTP_OP_UNSUPPORTED</a></tt> </tt>
+</div><a name="L258"></a><tt class="py-lineno">258</tt> <tt class="py-line"> </tt>
+<a name="SFTPServerInterface.canonicalize"></a><div id="SFTPServerInterface.canonicalize-def"><a name="L259"></a><tt class="py-lineno">259</tt> <a class="py-toggle" href="#" id="SFTPServerInterface.canonicalize-toggle" onclick="return toggle('SFTPServerInterface.canonicalize');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_si.SFTPServerInterface-class.html#canonicalize">canonicalize</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="SFTPServerInterface.canonicalize-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPServerInterface.canonicalize-expanded"><a name="L260"></a><tt class="py-lineno">260</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L261"></a><tt class="py-lineno">261</tt> <tt class="py-line"><tt class="py-docstring"> Return the canonical form of a path on the server. For example,</tt> </tt>
+<a name="L262"></a><tt class="py-lineno">262</tt> <tt class="py-line"><tt class="py-docstring"> if the server's home folder is C{/home/foo}, the path</tt> </tt>
+<a name="L263"></a><tt class="py-lineno">263</tt> <tt class="py-line"><tt class="py-docstring"> C{"../betty"} would be canonicalized to C{"/home/betty"}. Note</tt> </tt>
+<a name="L264"></a><tt class="py-lineno">264</tt> <tt class="py-line"><tt class="py-docstring"> the obvious security issues: if you're serving files only from a</tt> </tt>
+<a name="L265"></a><tt class="py-lineno">265</tt> <tt class="py-line"><tt class="py-docstring"> specific folder, you probably don't want this method to reveal path</tt> </tt>
+<a name="L266"></a><tt class="py-lineno">266</tt> <tt class="py-line"><tt class="py-docstring"> names outside that folder.</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"> You may find the python methods in C{os.path} useful, especially</tt> </tt>
+<a name="L269"></a><tt class="py-lineno">269</tt> <tt class="py-line"><tt class="py-docstring"> C{os.path.normpath} and C{os.path.realpath}.</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"> The default implementation returns C{os.path.normpath('/' + path)}.</tt> </tt>
+<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-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">isabs</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="L274"></a><tt class="py-lineno">274</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-name">path</tt><tt class="py-op">)</tt> </tt>
+<a name="L275"></a><tt class="py-lineno">275</tt> <tt class="py-line"> <tt class="py-keyword">else</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">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="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>
+</div><div id="SFTPServerInterface.readlink-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPServerInterface.readlink-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 target of a symbolic link (or shortcut) on the server.</tt> </tt>
+<a name="L285"></a><tt class="py-lineno">285</tt> <tt class="py-line"><tt class="py-docstring"> If the specified path doesn't refer to a symbolic link, an error</tt> </tt>
+<a name="L286"></a><tt class="py-lineno">286</tt> <tt class="py-line"><tt class="py-docstring"> should be returned.</tt> </tt>
+<a name="L287"></a><tt class="py-lineno">287</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L288"></a><tt class="py-lineno">288</tt> <tt class="py-line"><tt class="py-docstring"> @param path: path (relative or absolute) of the symbolic link.</tt> </tt>
+<a name="L289"></a><tt class="py-lineno">289</tt> <tt class="py-line"><tt class="py-docstring"> @type path: str</tt> </tt>
+<a name="L290"></a><tt class="py-lineno">290</tt> <tt class="py-line"><tt class="py-docstring"> @return: the target path of the symbolic link, or an error code like</tt> </tt>
+<a name="L291"></a><tt class="py-lineno">291</tt> <tt class="py-line"><tt class="py-docstring"> L{SFTP_NO_SUCH_FILE}.</tt> </tt>
+<a name="L292"></a><tt class="py-lineno">292</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: str I{or error code}</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">return</tt> <tt id="link-15" 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-15', 'SFTP_OP_UNSUPPORTED', 'link-6');">SFTP_OP_UNSUPPORTED</a></tt> </tt>
+</div><a name="L295"></a><tt class="py-lineno">295</tt> <tt class="py-line"> </tt>
+<a name="SFTPServerInterface.symlink"></a><div id="SFTPServerInterface.symlink-def"><a name="L296"></a><tt class="py-lineno">296</tt> <a class="py-toggle" href="#" id="SFTPServerInterface.symlink-toggle" onclick="return toggle('SFTPServerInterface.symlink');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.sftp_si.SFTPServerInterface-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">target_path</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="SFTPServerInterface.symlink-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="SFTPServerInterface.symlink-expanded"><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"> Create a symbolic link on the server, as new pathname C{path},</tt> </tt>
+<a name="L299"></a><tt class="py-lineno">299</tt> <tt class="py-line"><tt class="py-docstring"> with C{target_path} as the target of the link.</tt> </tt>
+<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"> @param target_path: path (relative or absolute) of the target for</tt> </tt>
+<a name="L302"></a><tt class="py-lineno">302</tt> <tt class="py-line"><tt class="py-docstring"> this new symbolic link.</tt> </tt>
+<a name="L303"></a><tt class="py-lineno">303</tt> <tt class="py-line"><tt class="py-docstring"> @type target_path: str</tt> </tt>
+<a name="L304"></a><tt class="py-lineno">304</tt> <tt class="py-line"><tt class="py-docstring"> @param path: path (relative or absolute) of the symbolic link to</tt> </tt>
+<a name="L305"></a><tt class="py-lineno">305</tt> <tt class="py-line"><tt class="py-docstring"> create.</tt> </tt>
+<a name="L306"></a><tt class="py-lineno">306</tt> <tt class="py-line"><tt class="py-docstring"> @type path: str</tt> </tt>
+<a name="L307"></a><tt class="py-lineno">307</tt> <tt class="py-line"><tt class="py-docstring"> @return: an error code like C{SFTP_OK}.</tt> </tt>
+<a name="L308"></a><tt class="py-lineno">308</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: 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-keyword">return</tt> <tt id="link-16" 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-16', 'SFTP_OP_UNSUPPORTED', 'link-6');">SFTP_OP_UNSUPPORTED</a></tt> </tt>
+</div></div><a name="L311"></a><tt class="py-lineno">311</tt> <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<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 Jul 6 18:30:33 2008
+ </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.ssh_exception-module.html b/docs/paramiko.ssh_exception-module.html
new file mode 100644
index 0000000..b679a41
--- /dev/null
+++ b/docs/paramiko.ssh_exception-module.html
@@ -0,0 +1,121 @@
+<?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.ssh_exception</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> ::
+ Module&nbsp;ssh_exception
+ </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.ssh_exception-module.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module ssh_exception</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.ssh_exception-pysrc.html">source&nbsp;code</a></span></p>
+<p>Exceptions defined by paramiko.</p>
+
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></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">Classes</span></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.ssh_exception.PartialAuthentication-class.html" class="summary-name">PartialAuthentication</a><br />
+ An internal exception thrown in the case of partial authentication.
+ </td>
+ </tr>
+</table>
+<!-- ==================== 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 Jul 6 18:30:28 2008
+ </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.ssh_exception-pysrc.html b/docs/paramiko.ssh_exception-pysrc.html
new file mode 100644
index 0000000..e140015
--- /dev/null
+++ b/docs/paramiko.ssh_exception-pysrc.html
@@ -0,0 +1,403 @@
+<?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.ssh_exception</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> ::
+ Module&nbsp;ssh_exception
+ </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.ssh_exception-pysrc.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</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="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>
+<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>
+<a name="SSHException"></a><div id="SSHException-def"><a name="L24"></a><tt class="py-lineno"> 24</tt> <a class="py-toggle" href="#" id="SSHException-toggle" onclick="return toggle('SSHException');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.ssh_exception.SSHException-class.html">SSHException</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="SSHException-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="SSHException-expanded"><a name="L25"></a><tt class="py-lineno"> 25</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L26"></a><tt class="py-lineno"> 26</tt> <tt class="py-line"><tt class="py-docstring"> Exception raised by failures in SSH2 protocol negotiation or logic errors.</tt> </tt>
+<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-keyword">pass</tt> </tt>
+</div><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>
+<a name="AuthenticationException"></a><div id="AuthenticationException-def"><a name="L31"></a><tt class="py-lineno"> 31</tt> <a class="py-toggle" href="#" id="AuthenticationException-toggle" onclick="return toggle('AuthenticationException');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.ssh_exception.AuthenticationException-class.html">AuthenticationException</a> <tt class="py-op">(</tt><tt class="py-base-class">SSHException</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="AuthenticationException-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="AuthenticationException-expanded"><a name="L32"></a><tt class="py-lineno"> 32</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"> Exception raised when authentication failed for some reason. It may be</tt> </tt>
+<a name="L34"></a><tt class="py-lineno"> 34</tt> <tt class="py-line"><tt class="py-docstring"> possible to retry with different credentials. (Other classes specify more</tt> </tt>
+<a name="L35"></a><tt class="py-lineno"> 35</tt> <tt class="py-line"><tt class="py-docstring"> specific reasons.)</tt> </tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt> <tt class="py-line"><tt class="py-docstring"> @since: 1.6</tt> </tt>
+<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-keyword">pass</tt> </tt>
+</div><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>
+<a name="PasswordRequiredException"></a><div id="PasswordRequiredException-def"><a name="L42"></a><tt class="py-lineno"> 42</tt> <a class="py-toggle" href="#" id="PasswordRequiredException-toggle" onclick="return toggle('PasswordRequiredException');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.ssh_exception.PasswordRequiredException-class.html">PasswordRequiredException</a> <tt class="py-op">(</tt><tt class="py-base-class">AuthenticationException</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="PasswordRequiredException-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="PasswordRequiredException-expanded"><a name="L43"></a><tt class="py-lineno"> 43</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"><tt class="py-docstring"> Exception raised when a password is needed to unlock a private key file.</tt> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</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-keyword">pass</tt> </tt>
+</div><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>
+<a name="BadAuthenticationType"></a><div id="BadAuthenticationType-def"><a name="L49"></a><tt class="py-lineno"> 49</tt> <a class="py-toggle" href="#" id="BadAuthenticationType-toggle" onclick="return toggle('BadAuthenticationType');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.ssh_exception.BadAuthenticationType-class.html">BadAuthenticationType</a> <tt class="py-op">(</tt><tt class="py-base-class">AuthenticationException</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="BadAuthenticationType-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="BadAuthenticationType-expanded"><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 class="py-docstring"> Exception raised when an authentication type (like password) is used, but</tt> </tt>
+<a name="L52"></a><tt class="py-lineno"> 52</tt> <tt class="py-line"><tt class="py-docstring"> the server isn't allowing that type. (It may only allow public-key, for</tt> </tt>
+<a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"><tt class="py-docstring"> example.)</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-docstring"> @ivar allowed_types: list of allowed authentication types provided by the</tt> </tt>
+<a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"><tt class="py-docstring"> server (possible values are: C{"none"}, C{"password"}, and</tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"><tt class="py-docstring"> C{"publickey"}).</tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"><tt class="py-docstring"> @type allowed_types: list</tt> </tt>
+<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"> @since: 1.1</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 id="link-0" 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-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__
+paramiko.AgentKey.__init__
+paramiko.BadAuthenticationType.__init__
+paramiko.BadHostKeyException.__init__
+paramiko.BufferedFile.__init__
+paramiko.Channel.__init__
+paramiko.ChannelException.__init__
+paramiko.DSSKey.__init__
+paramiko.HostKeys.__init__
+paramiko.Message.__init__
+paramiko.PKey.__init__
+paramiko.RSAKey.__init__
+paramiko.SFTPAttributes.__init__
+paramiko.SFTPClient.__init__
+paramiko.SFTPFile.__init__
+paramiko.SFTPHandle.__init__
+paramiko.SFTPServer.__init__
+paramiko.SFTPServerInterface.__init__
+paramiko.SSHClient.__init__
+paramiko.SSHConfig.__init__
+paramiko.SecurityOptions.__init__
+paramiko.SubsystemHandler.__init__
+paramiko.Transport.__init__
+paramiko.ber.BER.__init__
+paramiko.buffered_pipe.BufferedPipe.__init__
+paramiko.channel.ChannelStderrFile.__init__
+paramiko.compress.ZlibCompressor.__init__
+paramiko.compress.ZlibDecompressor.__init__
+paramiko.hostkeys.HostKeyEntry.__init__
+paramiko.kex_gex.KexGex.__init__
+paramiko.kex_group1.KexGroup1.__init__
+paramiko.logging22.Formatter.__init__
+paramiko.logging22.StreamHandler.__init__
+paramiko.logging22.logger.__init__
+paramiko.pipe.OrPipe.__init__
+paramiko.pipe.PosixPipe.__init__
+paramiko.pipe.WindowsPipe.__init__
+paramiko.primes.ModulusPack.__init__
+paramiko.rng.StrongLockingRandomPool.__init__
+paramiko.ssh_exception.PartialAuthentication.__init__
+paramiko.transport.ChannelMap.__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
+paramiko.ssh_exception.PartialAuthentication.allowed_types" class="py-name" href="#" onclick="return doclink('link-3', 'allowed_types', 'link-0');">allowed_types</a></tt> <tt class="py-op">=</tt> <tt class="py-name">types</tt> </tt>
+</div><a name="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line"> </tt>
+<a name="BadAuthenticationType.__str__"></a><div id="BadAuthenticationType.__str__-def"><a name="L68"></a><tt class="py-lineno"> 68</tt> <a class="py-toggle" href="#" id="BadAuthenticationType.__str__-toggle" onclick="return toggle('BadAuthenticationType.__str__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.ssh_exception.BadAuthenticationType-class.html#__str__">__str__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="BadAuthenticationType.__str__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BadAuthenticationType.__str__-expanded"><a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt id="link-4" class="py-name" targets="Class paramiko.SSHException=paramiko.SSHException-class.html"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-4', 'SSHException', 'link-4');">SSHException</a></tt><tt class="py-op">.</tt><tt id="link-5" class="py-name" targets="Method paramiko.AgentKey.__str__()=paramiko.AgentKey-class.html#__str__,Method paramiko.BadAuthenticationType.__str__()=paramiko.BadAuthenticationType-class.html#__str__,Method paramiko.DSSKey.__str__()=paramiko.DSSKey-class.html#__str__,Method paramiko.Message.__str__()=paramiko.Message-class.html#__str__,Method paramiko.PKey.__str__()=paramiko.PKey-class.html#__str__,Method paramiko.RSAKey.__str__()=paramiko.RSAKey-class.html#__str__,Method paramiko.SFTPAttributes.__str__()=paramiko.SFTPAttributes-class.html#__str__,Method paramiko.ber.BER.__str__()=paramiko.ber.BER-class.html#__str__"><a title="paramiko.AgentKey.__str__
+paramiko.BadAuthenticationType.__str__
+paramiko.DSSKey.__str__
+paramiko.Message.__str__
+paramiko.PKey.__str__
+paramiko.RSAKey.__str__
+paramiko.SFTPAttributes.__str__
+paramiko.ber.BER.__str__" class="py-name" href="#" onclick="return doclink('link-5', '__str__', 'link-5');">__str__</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-string">' (allowed_types=%r)'</tt> <tt class="py-op">%</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-6" class="py-name"><a title="paramiko.BadAuthenticationType.allowed_types
+paramiko.ssh_exception.PartialAuthentication.allowed_types" class="py-name" href="#" onclick="return doclink('link-6', 'allowed_types', 'link-0');">allowed_types</a></tt> </tt>
+</div></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="PartialAuthentication"></a><div id="PartialAuthentication-def"><a name="L72"></a><tt class="py-lineno"> 72</tt> <a class="py-toggle" href="#" id="PartialAuthentication-toggle" onclick="return toggle('PartialAuthentication');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.ssh_exception.PartialAuthentication-class.html">PartialAuthentication</a> <tt class="py-op">(</tt><tt class="py-base-class">AuthenticationException</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="PartialAuthentication-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="PartialAuthentication-expanded"><a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"><tt class="py-docstring"> An internal exception thrown in the case of partial authentication.</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 id="link-7" class="py-name"><a title="paramiko.BadAuthenticationType.allowed_types
+paramiko.ssh_exception.PartialAuthentication.allowed_types" class="py-name" href="#" onclick="return doclink('link-7', '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="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"> </tt>
+<a name="PartialAuthentication.__init__"></a><div id="PartialAuthentication.__init__-def"><a name="L78"></a><tt class="py-lineno"> 78</tt> <a class="py-toggle" href="#" id="PartialAuthentication.__init__-toggle" onclick="return toggle('PartialAuthentication.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.ssh_exception.PartialAuthentication-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">types</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="PartialAuthentication.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="PartialAuthentication.__init__-expanded"><a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line"> <tt id="link-8" class="py-name"><a title="paramiko.AuthenticationException" class="py-name" href="#" onclick="return doclink('link-8', 'AuthenticationException', 'link-1');">AuthenticationException</a></tt><tt class="py-op">.</tt><tt id="link-9" class="py-name"><a title="paramiko.Agent.__init__
+paramiko.AgentKey.__init__
+paramiko.BadAuthenticationType.__init__
+paramiko.BadHostKeyException.__init__
+paramiko.BufferedFile.__init__
+paramiko.Channel.__init__
+paramiko.ChannelException.__init__
+paramiko.DSSKey.__init__
+paramiko.HostKeys.__init__
+paramiko.Message.__init__
+paramiko.PKey.__init__
+paramiko.RSAKey.__init__
+paramiko.SFTPAttributes.__init__
+paramiko.SFTPClient.__init__
+paramiko.SFTPFile.__init__
+paramiko.SFTPHandle.__init__
+paramiko.SFTPServer.__init__
+paramiko.SFTPServerInterface.__init__
+paramiko.SSHClient.__init__
+paramiko.SSHConfig.__init__
+paramiko.SecurityOptions.__init__
+paramiko.SubsystemHandler.__init__
+paramiko.Transport.__init__
+paramiko.ber.BER.__init__
+paramiko.buffered_pipe.BufferedPipe.__init__
+paramiko.channel.ChannelStderrFile.__init__
+paramiko.compress.ZlibCompressor.__init__
+paramiko.compress.ZlibDecompressor.__init__
+paramiko.hostkeys.HostKeyEntry.__init__
+paramiko.kex_gex.KexGex.__init__
+paramiko.kex_group1.KexGroup1.__init__
+paramiko.logging22.Formatter.__init__
+paramiko.logging22.StreamHandler.__init__
+paramiko.logging22.logger.__init__
+paramiko.pipe.OrPipe.__init__
+paramiko.pipe.PosixPipe.__init__
+paramiko.pipe.WindowsPipe.__init__
+paramiko.primes.ModulusPack.__init__
+paramiko.rng.StrongLockingRandomPool.__init__
+paramiko.ssh_exception.PartialAuthentication.__init__
+paramiko.transport.ChannelMap.__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
+paramiko.ssh_exception.PartialAuthentication.allowed_types" class="py-name" href="#" onclick="return doclink('link-10', 'allowed_types', 'link-0');">allowed_types</a></tt> <tt class="py-op">=</tt> <tt class="py-name">types</tt> </tt>
+</div></div><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>
+<a name="ChannelException"></a><div id="ChannelException-def"><a name="L83"></a><tt class="py-lineno"> 83</tt> <a class="py-toggle" href="#" id="ChannelException-toggle" onclick="return toggle('ChannelException');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.ssh_exception.ChannelException-class.html">ChannelException</a> <tt class="py-op">(</tt><tt class="py-base-class">SSHException</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ChannelException-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="ChannelException-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"> Exception raised when an attempt to open a new L{Channel} fails.</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"> @ivar code: the error code returned by the server</tt> </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</tt> <tt class="py-line"><tt class="py-docstring"> @type code: int</tt> </tt>
+<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"> @since: 1.6</tt> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="ChannelException.__init__"></a><div id="ChannelException.__init__-def"><a name="L92"></a><tt class="py-lineno"> 92</tt> <a class="py-toggle" href="#" id="ChannelException.__init__-toggle" onclick="return toggle('ChannelException.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.ssh_exception.ChannelException-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">code</tt><tt class="py-op">,</tt> <tt class="py-param">text</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ChannelException.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="ChannelException.__init__-expanded"><a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"> <tt id="link-11" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-11', 'SSHException', 'link-4');">SSHException</a></tt><tt class="py-op">.</tt><tt id="link-12" class="py-name"><a title="paramiko.Agent.__init__
+paramiko.AgentKey.__init__
+paramiko.BadAuthenticationType.__init__
+paramiko.BadHostKeyException.__init__
+paramiko.BufferedFile.__init__
+paramiko.Channel.__init__
+paramiko.ChannelException.__init__
+paramiko.DSSKey.__init__
+paramiko.HostKeys.__init__
+paramiko.Message.__init__
+paramiko.PKey.__init__
+paramiko.RSAKey.__init__
+paramiko.SFTPAttributes.__init__
+paramiko.SFTPClient.__init__
+paramiko.SFTPFile.__init__
+paramiko.SFTPHandle.__init__
+paramiko.SFTPServer.__init__
+paramiko.SFTPServerInterface.__init__
+paramiko.SSHClient.__init__
+paramiko.SSHConfig.__init__
+paramiko.SecurityOptions.__init__
+paramiko.SubsystemHandler.__init__
+paramiko.Transport.__init__
+paramiko.ber.BER.__init__
+paramiko.buffered_pipe.BufferedPipe.__init__
+paramiko.channel.ChannelStderrFile.__init__
+paramiko.compress.ZlibCompressor.__init__
+paramiko.compress.ZlibDecompressor.__init__
+paramiko.hostkeys.HostKeyEntry.__init__
+paramiko.kex_gex.KexGex.__init__
+paramiko.kex_group1.KexGroup1.__init__
+paramiko.logging22.Formatter.__init__
+paramiko.logging22.StreamHandler.__init__
+paramiko.logging22.logger.__init__
+paramiko.pipe.OrPipe.__init__
+paramiko.pipe.PosixPipe.__init__
+paramiko.pipe.WindowsPipe.__init__
+paramiko.primes.ModulusPack.__init__
+paramiko.rng.StrongLockingRandomPool.__init__
+paramiko.ssh_exception.PartialAuthentication.__init__
+paramiko.transport.ChannelMap.__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>
+</div></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>
+<a name="BadHostKeyException"></a><div id="BadHostKeyException-def"><a name="L97"></a><tt class="py-lineno"> 97</tt> <a class="py-toggle" href="#" id="BadHostKeyException-toggle" onclick="return toggle('BadHostKeyException');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="paramiko.ssh_exception.BadHostKeyException-class.html">BadHostKeyException</a> <tt class="py-op">(</tt><tt class="py-base-class">SSHException</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="BadHostKeyException-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="BadHostKeyException-expanded"><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"> The host key given by the SSH server did not match what we were expecting.</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-docstring"> @ivar hostname: the hostname of the SSH server</tt> </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"><tt class="py-docstring"> @type hostname: str</tt> </tt>
+<a name="L103"></a><tt class="py-lineno">103</tt> <tt class="py-line"><tt class="py-docstring"> @ivar key: the host key presented by the server</tt> </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"><tt class="py-docstring"> @type key: L{PKey}</tt> </tt>
+<a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"><tt class="py-docstring"> @ivar expected_key: the host key expected</tt> </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"><tt class="py-docstring"> @type expected_key: L{PKey}</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"> @since: 1.6</tt> </tt>
+<a name="L109"></a><tt class="py-lineno">109</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="BadHostKeyException.__init__"></a><div id="BadHostKeyException.__init__-def"><a name="L110"></a><tt class="py-lineno">110</tt> <a class="py-toggle" href="#" id="BadHostKeyException.__init__-toggle" onclick="return toggle('BadHostKeyException.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.ssh_exception.BadHostKeyException-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">hostname</tt><tt class="py-op">,</tt> <tt class="py-param">got_key</tt><tt class="py-op">,</tt> <tt class="py-param">expected_key</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="BadHostKeyException.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="BadHostKeyException.__init__-expanded"><a name="L111"></a><tt class="py-lineno">111</tt> <tt class="py-line"> <tt id="link-13" class="py-name"><a title="paramiko.SSHException" class="py-name" href="#" onclick="return doclink('link-13', 'SSHException', 'link-4');">SSHException</a></tt><tt class="py-op">.</tt><tt id="link-14" class="py-name"><a title="paramiko.Agent.__init__
+paramiko.AgentKey.__init__
+paramiko.BadAuthenticationType.__init__
+paramiko.BadHostKeyException.__init__
+paramiko.BufferedFile.__init__
+paramiko.Channel.__init__
+paramiko.ChannelException.__init__
+paramiko.DSSKey.__init__
+paramiko.HostKeys.__init__
+paramiko.Message.__init__
+paramiko.PKey.__init__
+paramiko.RSAKey.__init__
+paramiko.SFTPAttributes.__init__
+paramiko.SFTPClient.__init__
+paramiko.SFTPFile.__init__
+paramiko.SFTPHandle.__init__
+paramiko.SFTPServer.__init__
+paramiko.SFTPServerInterface.__init__
+paramiko.SSHClient.__init__
+paramiko.SSHConfig.__init__
+paramiko.SecurityOptions.__init__
+paramiko.SubsystemHandler.__init__
+paramiko.Transport.__init__
+paramiko.ber.BER.__init__
+paramiko.buffered_pipe.BufferedPipe.__init__
+paramiko.channel.ChannelStderrFile.__init__
+paramiko.compress.ZlibCompressor.__init__
+paramiko.compress.ZlibDecompressor.__init__
+paramiko.hostkeys.HostKeyEntry.__init__
+paramiko.kex_gex.KexGex.__init__
+paramiko.kex_group1.KexGroup1.__init__
+paramiko.logging22.Formatter.__init__
+paramiko.logging22.StreamHandler.__init__
+paramiko.logging22.logger.__init__
+paramiko.pipe.OrPipe.__init__
+paramiko.pipe.PosixPipe.__init__
+paramiko.pipe.WindowsPipe.__init__
+paramiko.primes.ModulusPack.__init__
+paramiko.rng.StrongLockingRandomPool.__init__
+paramiko.ssh_exception.PartialAuthentication.__init__
+paramiko.transport.ChannelMap.__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>
+<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 class="py-name">key</tt> <tt class="py-op">=</tt> <tt class="py-name">got_key</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 class="py-name">expected_key</tt> <tt class="py-op">=</tt> <tt class="py-name">expected_key</tt> </tt>
+</div></div><a name="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<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 Jul 6 18:30:36 2008
+ </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.ssh_exception.PartialAuthentication-class.html b/docs/paramiko.ssh_exception.PartialAuthentication-class.html
new file mode 100644
index 0000000..5f7d526
--- /dev/null
+++ b/docs/paramiko.ssh_exception.PartialAuthentication-class.html
@@ -0,0 +1,241 @@
+<?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.ssh_exception.PartialAuthentication</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.ssh_exception-module.html" onclick="show_private();">Module&nbsp;ssh_exception</a> ::
+ Class&nbsp;PartialAuthentication
+ </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.ssh_exception.PartialAuthentication-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class PartialAuthentication</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.ssh_exception-pysrc.html#PartialAuthentication">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+ object --+
+ |
+exceptions.BaseException --+
+ |
+ exceptions.Exception --+
+ |
+ <a href="paramiko.SSHException-class.html">SSHException</a> --+
+ |
+ <a href="paramiko.AuthenticationException-class.html">AuthenticationException</a> --+
+ |
+ <strong class="uidshort">PartialAuthentication</strong>
+</pre>
+
+<hr />
+<p>An internal exception thrown in the case of partial
+ authentication.</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.ssh_exception.PartialAuthentication-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">types</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.ssh_exception-pysrc.html#PartialAuthentication.__init__">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>exceptions.Exception</code></b>:
+ <code>__new__</code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>exceptions.BaseException</code></b>:
+ <code>__delattr__</code>,
+ <code>__getattribute__</code>,
+ <code>__getitem__</code>,
+ <code>__reduce__</code>,
+ <code>__repr__</code>,
+ <code>__setattr__</code>,
+ <code>__setstate__</code>,
+ <code>__str__</code>
+ </p>
+ <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+ <code>__hash__</code>,
+ <code>__reduce_ex__</code>
+ </p>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS VARIABLES ==================== -->
+<a name="section-ClassVariables"></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 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="allowed_types"></a><span class="summary-name">allowed_types</span> = <code title="[]"><code class="variable-group">[</code><code class="variable-group">]</code></code>
+ </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>exceptions.BaseException</code></b>:
+ <code>args</code>,
+ <code>message</code>
+ </p>
+ <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">types</span>)</span>
+ <br /><em class="fname">(Constructor)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.ssh_exception-pysrc.html#PartialAuthentication.__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 Jul 6 18:30:31 2008
+ </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.transport-module.html b/docs/paramiko.transport-module.html
new file mode 100644
index 0000000..9c93b3c
--- /dev/null
+++ b/docs/paramiko.transport-module.html
@@ -0,0 +1,541 @@
+<?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.transport</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> ::
+ Module&nbsp;transport
+ </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.transport-module.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module transport</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.transport-pysrc.html">source&nbsp;code</a></span></p>
+<p><a href="paramiko.Transport-class.html" class="link">Transport</a>
+ handles the core SSH2 protocol.</p>
+
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></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">Classes</span></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.transport.ChannelMap-class.html" class="summary-name">ChannelMap</a>
+ </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="AUTH_FAILED"></a><span class="summary-name">AUTH_FAILED</span> = <code title="2">2</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_PARTIALLY_SUCCESSFUL"></a><span class="summary-name">AUTH_PARTIALLY_SUCCESSFUL</span> = <code title="1">1</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_SUCCESSFUL"></a><span class="summary-name">AUTH_SUCCESSFUL</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 href="paramiko.transport-module.html#CONNECTION_FAILED_CODE" class="summary-name">CONNECTION_FAILED_CODE</a> = <code title="{1: 'Administratively prohibited',
+ 2: 'Connect failed',
+ 3: 'Unknown channel type',
+ 4: 'Resource shortage'}"><code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Administratively prohibited</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-op">:</code><code class="variable-ellipsis">...</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="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="DEBUG"></a><span class="summary-name">DEBUG</span> = <code title="10">10</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="DISCONNECT_AUTH_CANCELLED_BY_USER"></a><span class="summary-name">DISCONNECT_AUTH_CANCELLED_BY_USER</span> = <code title="13">13</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="DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE"></a><span class="summary-name">DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE</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="DISCONNECT_SERVICE_NOT_AVAILABLE"></a><span class="summary-name">DISCONNECT_SERVICE_NOT_AVAILABLE</span> = <code title="7">7</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="ERROR"></a><span class="summary-name">ERROR</span> = <code title="40">40</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="INFO"></a><span class="summary-name">INFO</span> = <code title="20">20</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="MSG_CHANNEL_CLOSE"></a><span class="summary-name">MSG_CHANNEL_CLOSE</span> = <code title="97">97</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="MSG_CHANNEL_DATA"></a><span class="summary-name">MSG_CHANNEL_DATA</span> = <code title="94">94</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="MSG_CHANNEL_EOF"></a><span class="summary-name">MSG_CHANNEL_EOF</span> = <code title="96">96</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="MSG_CHANNEL_EXTENDED_DATA"></a><span class="summary-name">MSG_CHANNEL_EXTENDED_DATA</span> = <code title="95">95</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="MSG_CHANNEL_FAILURE"></a><span class="summary-name">MSG_CHANNEL_FAILURE</span> = <code title="100">100</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="MSG_CHANNEL_OPEN"></a><span class="summary-name">MSG_CHANNEL_OPEN</span> = <code title="90">90</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="MSG_CHANNEL_OPEN_FAILURE"></a><span class="summary-name">MSG_CHANNEL_OPEN_FAILURE</span> = <code title="92">92</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="MSG_CHANNEL_OPEN_SUCCESS"></a><span class="summary-name">MSG_CHANNEL_OPEN_SUCCESS</span> = <code title="91">91</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="MSG_CHANNEL_REQUEST"></a><span class="summary-name">MSG_CHANNEL_REQUEST</span> = <code title="98">98</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="MSG_CHANNEL_SUCCESS"></a><span class="summary-name">MSG_CHANNEL_SUCCESS</span> = <code title="99">99</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="MSG_CHANNEL_WINDOW_ADJUST"></a><span class="summary-name">MSG_CHANNEL_WINDOW_ADJUST</span> = <code title="93">93</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="MSG_DEBUG"></a><span class="summary-name">MSG_DEBUG</span> = <code title="4">4</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="MSG_DISCONNECT"></a><span class="summary-name">MSG_DISCONNECT</span> = <code title="1">1</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="MSG_GLOBAL_REQUEST"></a><span class="summary-name">MSG_GLOBAL_REQUEST</span> = <code title="80">80</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="MSG_IGNORE"></a><span class="summary-name">MSG_IGNORE</span> = <code title="2">2</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="MSG_KEXINIT"></a><span class="summary-name">MSG_KEXINIT</span> = <code title="20">20</code>
+ </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.transport-module.html#MSG_NAMES" class="summary-name">MSG_NAMES</a> = <code title="{1: 'disconnect',
+ 2: 'ignore',
+ 3: 'unimplemented',
+ 4: 'debug',
+ 5: 'service-request',
+ 6: 'service-accept',
+ 20: 'kexinit',
+ 21: 'newkeys',
+..."><code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">disconnect</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">ignore</code><code class="variable-quote">'</code><code class="variable-op">, </code>3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">unimplemented</code><code class="variable-quote">'</code><code class="variable-op">,</code><code class="variable-ellipsis">...</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="MSG_NEWKEYS"></a><span class="summary-name">MSG_NEWKEYS</span> = <code title="21">21</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="MSG_REQUEST_FAILURE"></a><span class="summary-name">MSG_REQUEST_FAILURE</span> = <code title="82">82</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="MSG_REQUEST_SUCCESS"></a><span class="summary-name">MSG_REQUEST_SUCCESS</span> = <code title="81">81</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="MSG_SERVICE_ACCEPT"></a><span class="summary-name">MSG_SERVICE_ACCEPT</span> = <code title="6">6</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="MSG_SERVICE_REQUEST"></a><span class="summary-name">MSG_SERVICE_REQUEST</span> = <code title="5">5</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="MSG_UNIMPLEMENTED"></a><span class="summary-name">MSG_UNIMPLEMENTED</span> = <code title="3">3</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="MSG_USERAUTH_BANNER"></a><span class="summary-name">MSG_USERAUTH_BANNER</span> = <code title="53">53</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="MSG_USERAUTH_FAILURE"></a><span class="summary-name">MSG_USERAUTH_FAILURE</span> = <code title="51">51</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="MSG_USERAUTH_INFO_REQUEST"></a><span class="summary-name">MSG_USERAUTH_INFO_REQUEST</span> = <code title="60">60</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="MSG_USERAUTH_INFO_RESPONSE"></a><span class="summary-name">MSG_USERAUTH_INFO_RESPONSE</span> = <code title="61">61</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="MSG_USERAUTH_PK_OK"></a><span class="summary-name">MSG_USERAUTH_PK_OK</span> = <code title="60">60</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="MSG_USERAUTH_REQUEST"></a><span class="summary-name">MSG_USERAUTH_REQUEST</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="MSG_USERAUTH_SUCCESS"></a><span class="summary-name">MSG_USERAUTH_SUCCESS</span> = <code title="52">52</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="OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED"></a><span class="summary-name">OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED</span> = <code title="1">1</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="OPEN_FAILED_CONNECT_FAILED"></a><span class="summary-name">OPEN_FAILED_CONNECT_FAILED</span> = <code title="2">2</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="OPEN_FAILED_RESOURCE_SHORTAGE"></a><span class="summary-name">OPEN_FAILED_RESOURCE_SHORTAGE</span> = <code title="4">4</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="OPEN_FAILED_UNKNOWN_CHANNEL_TYPE"></a><span class="summary-name">OPEN_FAILED_UNKNOWN_CHANNEL_TYPE</span> = <code title="3">3</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="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="PY22"></a><span class="summary-name">PY22</span> = <code title="False">False</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="WARNING"></a><span class="summary-name">WARNING</span> = <code title="30">30</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>
+</table>
+<!-- ==================== VARIABLES DETAILS ==================== -->
+<a name="section-VariablesDetails"></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">Variables Details</span></td>
+</tr>
+</table>
+<a name="CONNECTION_FAILED_CODE"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">CONNECTION_FAILED_CODE</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Administratively prohibited</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Connect failed</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Unknown channel type</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Resource shortage</code><code class="variable-quote">'</code><code class="variable-group">}</code>
+</pre></td></tr></table>
+</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="MSG_NAMES"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">MSG_NAMES</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">disconnect</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">ignore</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">unimplemented</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">debug</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 5<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">service-request</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 6<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">service-accept</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 20<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">kexinit</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 21<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">newkeys</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+ </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 Jul 6 18:30:28 2008
+ </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.transport-pysrc.html b/docs/paramiko.transport-pysrc.html
new file mode 100644
index 0000000..f0d6fb1
--- /dev/null
+++ b/docs/paramiko.transport-pysrc.html
@@ -0,0 +1,4154 @@
+<?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.transport</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> ::
+ Module&nbsp;transport
+ </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.transport-pysrc.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</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="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>
+<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">import</tt> <tt class="py-name">os</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">socket</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">string</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">struct</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">threading</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">time</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">weakref</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-keyword">import</tt> <tt id="link-1" class="py-name" targets="Module paramiko.util=paramiko.util-module.html"><a title="paramiko.util" class="py-name" href="#" onclick="return doclink('link-1', 'util', 'link-1');">util</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-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.auth_handler=paramiko.auth_handler-module.html"><a title="paramiko.auth_handler" class="py-name" href="#" onclick="return doclink('link-3', 'auth_handler', 'link-3');">auth_handler</a></tt> <tt class="py-keyword">import</tt> <tt class="py-name">AuthHandler</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-4" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-4', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-5" class="py-name" targets="Module paramiko.channel=paramiko.channel-module.html"><a title="paramiko.channel" class="py-name" href="#" onclick="return doclink('link-5', 'channel', 'link-5');">channel</a></tt> <tt class="py-keyword">import</tt> <tt id="link-6" class="py-name" targets="Class paramiko.Channel=paramiko.Channel-class.html"><a title="paramiko.Channel" class="py-name" href="#" onclick="return doclink('link-6', 'Channel', 'link-6');">Channel</a></tt> </tt>
+<a name="L35"></a><tt class="py-lineno"> 35</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-7" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-7', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-8" class="py-name" targets="Module paramiko.common=paramiko.common-module.html"><a title="paramiko.common" class="py-name" href="#" onclick="return doclink('link-8', 'common', 'link-8');">common</a></tt> <tt class="py-keyword">import</tt> <tt class="py-op">*</tt> </tt>
+<a name="L36"></a><tt class="py-lineno"> 36</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-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-10" class="py-name" targets="Module paramiko.compress=paramiko.compress-module.html"><a title="paramiko.compress" class="py-name" href="#" onclick="return doclink('link-10', 'compress', 'link-10');">compress</a></tt> <tt class="py-keyword">import</tt> <tt id="link-11" class="py-name" targets="Class paramiko.compress.ZlibCompressor=paramiko.compress.ZlibCompressor-class.html"><a title="paramiko.compress.ZlibCompressor" class="py-name" href="#" onclick="return doclink('link-11', 'ZlibCompressor', 'link-11');">ZlibCompressor</a></tt><tt class="py-op">,</tt> <tt id="link-12" class="py-name" targets="Class paramiko.compress.ZlibDecompressor=paramiko.compress.ZlibDecompressor-class.html"><a title="paramiko.compress.ZlibDecompressor" class="py-name" href="#" onclick="return doclink('link-12', 'ZlibDecompressor', 'link-12');">ZlibDecompressor</a></tt> </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-13" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-13', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-14" class="py-name" targets="Module paramiko.dsskey=paramiko.dsskey-module.html"><a title="paramiko.dsskey" class="py-name" href="#" onclick="return doclink('link-14', 'dsskey', 'link-14');">dsskey</a></tt> <tt class="py-keyword">import</tt> <tt id="link-15" class="py-name" targets="Class paramiko.DSSKey=paramiko.DSSKey-class.html"><a title="paramiko.DSSKey" class="py-name" href="#" onclick="return doclink('link-15', 'DSSKey', 'link-15');">DSSKey</a></tt> </tt>
+<a name="L38"></a><tt class="py-lineno"> 38</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-16" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-16', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-17" class="py-name" targets="Module paramiko.kex_gex=paramiko.kex_gex-module.html"><a title="paramiko.kex_gex" class="py-name" href="#" onclick="return doclink('link-17', 'kex_gex', 'link-17');">kex_gex</a></tt> <tt class="py-keyword">import</tt> <tt id="link-18" class="py-name" targets="Class paramiko.kex_gex.KexGex=paramiko.kex_gex.KexGex-class.html"><a title="paramiko.kex_gex.KexGex" class="py-name" href="#" onclick="return doclink('link-18', 'KexGex', 'link-18');">KexGex</a></tt> </tt>
+<a name="L39"></a><tt class="py-lineno"> 39</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-19" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-19', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-20" class="py-name" targets="Module paramiko.kex_group1=paramiko.kex_group1-module.html"><a title="paramiko.kex_group1" class="py-name" href="#" onclick="return doclink('link-20', 'kex_group1', 'link-20');">kex_group1</a></tt> <tt class="py-keyword">import</tt> <tt id="link-21" class="py-name" targets="Class paramiko.kex_group1.KexGroup1=paramiko.kex_group1.KexGroup1-class.html"><a title="paramiko.kex_group1.KexGroup1" class="py-name" href="#" onclick="return doclink('link-21', 'KexGroup1', 'link-21');">KexGroup1</a></tt> </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-22" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-22', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-23" class="py-name" targets="Module paramiko.message=paramiko.message-module.html"><a title="paramiko.message" class="py-name" href="#" onclick="return doclink('link-23', 'message', 'link-23');">message</a></tt> <tt class="py-keyword">import</tt> <tt id="link-24" class="py-name" targets="Class paramiko.Message=paramiko.Message-class.html"><a title="paramiko.Message" class="py-name" href="#" onclick="return doclink('link-24', 'Message', 'link-24');">Message</a></tt> </tt>
+<a name="L41"></a><tt class="py-lineno"> 41</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-25" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-25', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-26" class="py-name" targets="Module paramiko.packet=paramiko.packet-module.html"><a title="paramiko.packet" class="py-name" href="#" onclick="return doclink('link-26', 'packet', 'link-26');">packet</a></tt> <tt class="py-keyword">import</tt> <tt class="py-name">Packetizer</tt><tt class="py-op">,</tt> <tt id="link-27" class="py-name" targets="Class paramiko.packet.NeedRekeyException=paramiko.packet.NeedRekeyException-class.html"><a title="paramiko.packet.NeedRekeyException" class="py-name" href="#" onclick="return doclink('link-27', 'NeedRekeyException', 'link-27');">NeedRekeyException</a></tt> </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-28" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-28', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-29" class="py-name" targets="Module paramiko.primes=paramiko.primes-module.html"><a title="paramiko.primes" class="py-name" href="#" onclick="return doclink('link-29', 'primes', 'link-29');">primes</a></tt> <tt class="py-keyword">import</tt> <tt id="link-30" class="py-name" targets="Class paramiko.primes.ModulusPack=paramiko.primes.ModulusPack-class.html"><a title="paramiko.primes.ModulusPack" class="py-name" href="#" onclick="return doclink('link-30', 'ModulusPack', 'link-30');">ModulusPack</a></tt> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-31" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-31', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-32" class="py-name" targets="Module paramiko.rsakey=paramiko.rsakey-module.html"><a title="paramiko.rsakey" class="py-name" href="#" onclick="return doclink('link-32', 'rsakey', 'link-32');">rsakey</a></tt> <tt class="py-keyword">import</tt> <tt id="link-33" class="py-name" targets="Class paramiko.RSAKey=paramiko.RSAKey-class.html"><a title="paramiko.RSAKey" class="py-name" href="#" onclick="return doclink('link-33', 'RSAKey', 'link-33');">RSAKey</a></tt> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-34" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-34', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-35" class="py-name" targets="Module paramiko.server=paramiko.server-module.html"><a title="paramiko.server" class="py-name" href="#" onclick="return doclink('link-35', 'server', 'link-35');">server</a></tt> <tt class="py-keyword">import</tt> <tt id="link-36" class="py-name" targets="Class paramiko.ServerInterface=paramiko.ServerInterface-class.html"><a title="paramiko.ServerInterface" class="py-name" href="#" onclick="return doclink('link-36', 'ServerInterface', 'link-36');">ServerInterface</a></tt> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-37" class="py-name"><a title="paramiko" class="py-name" href="#" onclick="return doclink('link-37', 'paramiko', 'link-0');">paramiko</a></tt><tt class="py-op">.</tt><tt id="link-38" class="py-name" targets="Module paramiko.sftp_client=paramiko.sftp_client-module.html"><a title="paramiko.sftp_client" class="py-name" href="#" onclick="return doclink('link-38', 'sftp_client', 'link-38');">sftp_client</a></tt> <tt class="py-keyword">import</tt> <tt id="link-39" class="py-name" targets="Class paramiko.SFTPClient=paramiko.SFTPClient-class.html"><a title="paramiko.SFTPClient" class="py-name" href="#" onclick="return doclink('link-39', 'SFTPClient', 'link-39');">SFTPClient</a></tt> </tt>
+<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="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="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__
+paramiko.AgentKey.__init__
+paramiko.BadAuthenticationType.__init__
+paramiko.BadHostKeyException.__init__
+paramiko.BufferedFile.__init__
+paramiko.Channel.__init__
+paramiko.ChannelException.__init__
+paramiko.DSSKey.__init__
+paramiko.HostKeys.__init__
+paramiko.Message.__init__
+paramiko.PKey.__init__
+paramiko.RSAKey.__init__
+paramiko.SFTPAttributes.__init__
+paramiko.SFTPClient.__init__
+paramiko.SFTPFile.__init__
+paramiko.SFTPHandle.__init__
+paramiko.SFTPServer.__init__
+paramiko.SFTPServerInterface.__init__
+paramiko.SSHClient.__init__
+paramiko.SSHConfig.__init__
+paramiko.SecurityOptions.__init__
+paramiko.SubsystemHandler.__init__
+paramiko.Transport.__init__
+paramiko.ber.BER.__init__
+paramiko.buffered_pipe.BufferedPipe.__init__
+paramiko.channel.ChannelStderrFile.__init__
+paramiko.compress.ZlibCompressor.__init__
+paramiko.compress.ZlibDecompressor.__init__
+paramiko.hostkeys.HostKeyEntry.__init__
+paramiko.kex_gex.KexGex.__init__
+paramiko.kex_group1.KexGroup1.__init__
+paramiko.logging22.Formatter.__init__
+paramiko.logging22.StreamHandler.__init__
+paramiko.logging22.logger.__init__
+paramiko.pipe.OrPipe.__init__
+paramiko.pipe.PosixPipe.__init__
+paramiko.pipe.WindowsPipe.__init__
+paramiko.primes.ModulusPack.__init__
+paramiko.rng.StrongLockingRandomPool.__init__
+paramiko.ssh_exception.PartialAuthentication.__init__
+paramiko.transport.ChannelMap.__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.channel.randpool
+paramiko.client.randpool
+paramiko.common.randpool
+paramiko.dsskey.randpool
+paramiko.hostkeys.randpool
+paramiko.kex_gex.randpool
+paramiko.kex_group1.randpool
+paramiko.packet.randpool
+paramiko.pkey.randpool
+paramiko.rsakey.randpool
+paramiko.server.randpool
+paramiko.sftp.randpool
+paramiko.sftp_attr.randpool
+paramiko.sftp_client.randpool
+paramiko.sftp_file.randpool
+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.channel.randpool
+paramiko.client.randpool
+paramiko.common.randpool
+paramiko.dsskey.randpool
+paramiko.hostkeys.randpool
+paramiko.kex_gex.randpool
+paramiko.kex_group1.randpool
+paramiko.packet.randpool
+paramiko.pkey.randpool
+paramiko.rsakey.randpool
+paramiko.server.randpool
+paramiko.sftp.randpool
+paramiko.sftp_attr.randpool
+paramiko.sftp_client.randpool
+paramiko.sftp_file.randpool
+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>
+<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="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
+paramiko.BufferedFile.close
+paramiko.Channel.close
+paramiko.SFTPClient.close
+paramiko.SFTPFile.close
+paramiko.SFTPHandle.close
+paramiko.SSHClient.close
+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.BufferedFile.close
+paramiko.Channel.close
+paramiko.SFTPClient.close
+paramiko.SFTPFile.close
+paramiko.SFTPHandle.close
+paramiko.SSHClient.close
+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>
+<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="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
+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.channel.randpool
+paramiko.client.randpool
+paramiko.common.randpool
+paramiko.dsskey.randpool
+paramiko.hostkeys.randpool
+paramiko.kex_gex.randpool
+paramiko.kex_group1.randpool
+paramiko.packet.randpool
+paramiko.pkey.randpool
+paramiko.rsakey.randpool
+paramiko.server.randpool
+paramiko.sftp.randpool
+paramiko.sftp_attr.randpool
+paramiko.sftp_client.randpool
+paramiko.sftp_file.randpool
+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.BufferedFile.close
+paramiko.Channel.close
+paramiko.SFTPClient.close
+paramiko.SFTPFile.close
+paramiko.SFTPHandle.close
+paramiko.SSHClient.close
+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>
+</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="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
+paramiko.channel.MSG_CHANNEL_OPEN
+paramiko.client.MSG_CHANNEL_OPEN
+paramiko.common.MSG_CHANNEL_OPEN
+paramiko.dsskey.MSG_CHANNEL_OPEN
+paramiko.hostkeys.MSG_CHANNEL_OPEN
+paramiko.kex_gex.MSG_CHANNEL_OPEN
+paramiko.kex_group1.MSG_CHANNEL_OPEN
+paramiko.packet.MSG_CHANNEL_OPEN
+paramiko.pkey.MSG_CHANNEL_OPEN
+paramiko.rsakey.MSG_CHANNEL_OPEN
+paramiko.server.MSG_CHANNEL_OPEN
+paramiko.sftp.MSG_CHANNEL_OPEN
+paramiko.sftp_attr.MSG_CHANNEL_OPEN
+paramiko.sftp_client.MSG_CHANNEL_OPEN
+paramiko.sftp_file.MSG_CHANNEL_OPEN
+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.channel.MSG_IGNORE
+paramiko.client.MSG_IGNORE
+paramiko.common.MSG_IGNORE
+paramiko.dsskey.MSG_IGNORE
+paramiko.hostkeys.MSG_IGNORE
+paramiko.kex_gex.MSG_IGNORE
+paramiko.kex_group1.MSG_IGNORE
+paramiko.packet.MSG_IGNORE
+paramiko.pkey.MSG_IGNORE
+paramiko.rsakey.MSG_IGNORE
+paramiko.server.MSG_IGNORE
+paramiko.sftp.MSG_IGNORE
+paramiko.sftp_attr.MSG_IGNORE
+paramiko.sftp_client.MSG_IGNORE
+paramiko.sftp_file.MSG_IGNORE
+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.channel.randpool
+paramiko.client.randpool
+paramiko.common.randpool
+paramiko.dsskey.randpool
+paramiko.hostkeys.randpool
+paramiko.kex_gex.randpool
+paramiko.kex_group1.randpool
+paramiko.packet.randpool
+paramiko.pkey.randpool
+paramiko.rsakey.randpool
+paramiko.server.randpool
+paramiko.sftp.randpool
+paramiko.sftp_attr.randpool
+paramiko.sftp_client.randpool
+paramiko.sftp_file.randpool
+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.channel.randpool
+paramiko.client.randpool
+paramiko.common.randpool
+paramiko.dsskey.randpool
+paramiko.hostkeys.randpool
+paramiko.kex_gex.randpool
+paramiko.kex_group1.randpool
+paramiko.packet.randpool
+paramiko.pkey.randpool
+paramiko.rsakey.randpool
+paramiko.server.randpool
+paramiko.sftp.randpool
+paramiko.sftp_attr.randpool
+paramiko.sftp_client.randpool
+paramiko.sftp_file.randpool
+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.channel.randpool
+paramiko.client.randpool
+paramiko.common.randpool
+paramiko.dsskey.randpool
+paramiko.hostkeys.randpool
+paramiko.kex_gex.randpool
+paramiko.kex_group1.randpool
+paramiko.packet.randpool
+paramiko.pkey.randpool
+paramiko.rsakey.randpool
+paramiko.server.randpool
+paramiko.sftp.randpool
+paramiko.sftp_attr.randpool
+paramiko.sftp_client.randpool
+paramiko.sftp_file.randpool
+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.channel.MSG_GLOBAL_REQUEST
+paramiko.client.MSG_GLOBAL_REQUEST
+paramiko.common.MSG_GLOBAL_REQUEST
+paramiko.dsskey.MSG_GLOBAL_REQUEST
+paramiko.hostkeys.MSG_GLOBAL_REQUEST
+paramiko.kex_gex.MSG_GLOBAL_REQUEST
+paramiko.kex_group1.MSG_GLOBAL_REQUEST
+paramiko.packet.MSG_GLOBAL_REQUEST
+paramiko.pkey.MSG_GLOBAL_REQUEST
+paramiko.rsakey.MSG_GLOBAL_REQUEST
+paramiko.server.MSG_GLOBAL_REQUEST
+paramiko.sftp.MSG_GLOBAL_REQUEST
+paramiko.sftp_attr.MSG_GLOBAL_REQUEST
+paramiko.sftp_client.MSG_GLOBAL_REQUEST
+paramiko.sftp_file.MSG_GLOBAL_REQUEST
+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.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-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.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.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.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.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-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.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-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.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.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-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.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.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-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.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.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-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.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-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>
+<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
+paramiko.BufferedFile.close
+paramiko.Channel.close
+paramiko.SFTPClient.close
+paramiko.SFTPFile.close
+paramiko.SFTPHandle.close
+paramiko.SSHClient.close
+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.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-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.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.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-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.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-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.channel.MSG_KEXINIT
+paramiko.client.MSG_KEXINIT
+paramiko.common.MSG_KEXINIT
+paramiko.dsskey.MSG_KEXINIT
+paramiko.hostkeys.MSG_KEXINIT
+paramiko.kex_gex.MSG_KEXINIT
+paramiko.kex_group1.MSG_KEXINIT
+paramiko.packet.MSG_KEXINIT
+paramiko.pkey.MSG_KEXINIT
+paramiko.rsakey.MSG_KEXINIT
+paramiko.server.MSG_KEXINIT
+paramiko.sftp.MSG_KEXINIT
+paramiko.sftp_attr.MSG_KEXINIT
+paramiko.sftp_client.MSG_KEXINIT
+paramiko.sftp_file.MSG_KEXINIT
+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.channel.MSG_IGNORE
+paramiko.client.MSG_IGNORE
+paramiko.common.MSG_IGNORE
+paramiko.dsskey.MSG_IGNORE
+paramiko.hostkeys.MSG_IGNORE
+paramiko.kex_gex.MSG_IGNORE
+paramiko.kex_group1.MSG_IGNORE
+paramiko.packet.MSG_IGNORE
+paramiko.pkey.MSG_IGNORE
+paramiko.rsakey.MSG_IGNORE
+paramiko.server.MSG_IGNORE
+paramiko.sftp.MSG_IGNORE
+paramiko.sftp_attr.MSG_IGNORE
+paramiko.sftp_client.MSG_IGNORE
+paramiko.sftp_file.MSG_IGNORE
+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.channel.MSG_DISCONNECT
+paramiko.client.MSG_DISCONNECT
+paramiko.common.MSG_DISCONNECT
+paramiko.dsskey.MSG_DISCONNECT
+paramiko.hostkeys.MSG_DISCONNECT
+paramiko.kex_gex.MSG_DISCONNECT
+paramiko.kex_group1.MSG_DISCONNECT
+paramiko.packet.MSG_DISCONNECT
+paramiko.pkey.MSG_DISCONNECT
+paramiko.rsakey.MSG_DISCONNECT
+paramiko.server.MSG_DISCONNECT
+paramiko.sftp.MSG_DISCONNECT
+paramiko.sftp_attr.MSG_DISCONNECT
+paramiko.sftp_client.MSG_DISCONNECT
+paramiko.sftp_file.MSG_DISCONNECT
+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.BufferedFile.close
+paramiko.Channel.close
+paramiko.SFTPClient.close
+paramiko.SFTPFile.close
+paramiko.SFTPHandle.close
+paramiko.SSHClient.close
+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.channel.MSG_DEBUG
+paramiko.client.MSG_DEBUG
+paramiko.common.MSG_DEBUG
+paramiko.dsskey.MSG_DEBUG
+paramiko.hostkeys.MSG_DEBUG
+paramiko.kex_gex.MSG_DEBUG
+paramiko.kex_group1.MSG_DEBUG
+paramiko.packet.MSG_DEBUG
+paramiko.pkey.MSG_DEBUG
+paramiko.rsakey.MSG_DEBUG
+paramiko.server.MSG_DEBUG
+paramiko.sftp.MSG_DEBUG
+paramiko.sftp_attr.MSG_DEBUG
+paramiko.sftp_client.MSG_DEBUG
+paramiko.sftp_file.MSG_DEBUG
+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.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-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.channel.ERROR
+paramiko.client.ERROR
+paramiko.common.ERROR
+paramiko.dsskey.ERROR
+paramiko.hostkeys.ERROR
+paramiko.kex_gex.ERROR
+paramiko.kex_group1.ERROR
+paramiko.logging22.ERROR
+paramiko.packet.ERROR
+paramiko.pkey.ERROR
+paramiko.rsakey.ERROR
+paramiko.server.ERROR
+paramiko.sftp.ERROR
+paramiko.sftp_attr.ERROR
+paramiko.sftp_client.ERROR
+paramiko.sftp_file.ERROR
+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.BufferedFile.close
+paramiko.Channel.close
+paramiko.SFTPClient.close
+paramiko.SFTPFile.close
+paramiko.SFTPHandle.close
+paramiko.SSHClient.close
+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.channel.WARNING
+paramiko.client.WARNING
+paramiko.common.WARNING
+paramiko.dsskey.WARNING
+paramiko.hostkeys.WARNING
+paramiko.kex_gex.WARNING
+paramiko.kex_group1.WARNING
+paramiko.logging22.WARNING
+paramiko.packet.WARNING
+paramiko.pkey.WARNING
+paramiko.rsakey.WARNING
+paramiko.server.WARNING
+paramiko.sftp.WARNING
+paramiko.sftp_attr.WARNING
+paramiko.sftp_client.WARNING
+paramiko.sftp_file.WARNING
+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.channel.MSG_UNIMPLEMENTED
+paramiko.client.MSG_UNIMPLEMENTED
+paramiko.common.MSG_UNIMPLEMENTED
+paramiko.dsskey.MSG_UNIMPLEMENTED
+paramiko.hostkeys.MSG_UNIMPLEMENTED
+paramiko.kex_gex.MSG_UNIMPLEMENTED
+paramiko.kex_group1.MSG_UNIMPLEMENTED
+paramiko.packet.MSG_UNIMPLEMENTED
+paramiko.pkey.MSG_UNIMPLEMENTED
+paramiko.rsakey.MSG_UNIMPLEMENTED
+paramiko.server.MSG_UNIMPLEMENTED
+paramiko.sftp.MSG_UNIMPLEMENTED
+paramiko.sftp_attr.MSG_UNIMPLEMENTED
+paramiko.sftp_client.MSG_UNIMPLEMENTED
+paramiko.sftp_file.MSG_UNIMPLEMENTED
+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.channel.ERROR
+paramiko.client.ERROR
+paramiko.common.ERROR
+paramiko.dsskey.ERROR
+paramiko.hostkeys.ERROR
+paramiko.kex_gex.ERROR
+paramiko.kex_group1.ERROR
+paramiko.logging22.ERROR
+paramiko.packet.ERROR
+paramiko.pkey.ERROR
+paramiko.rsakey.ERROR
+paramiko.server.ERROR
+paramiko.sftp.ERROR
+paramiko.sftp_attr.ERROR
+paramiko.sftp_client.ERROR
+paramiko.sftp_file.ERROR
+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.channel.ERROR
+paramiko.client.ERROR
+paramiko.common.ERROR
+paramiko.dsskey.ERROR
+paramiko.hostkeys.ERROR
+paramiko.kex_gex.ERROR
+paramiko.kex_group1.ERROR
+paramiko.logging22.ERROR
+paramiko.packet.ERROR
+paramiko.pkey.ERROR
+paramiko.rsakey.ERROR
+paramiko.server.ERROR
+paramiko.sftp.ERROR
+paramiko.sftp_attr.ERROR
+paramiko.sftp_client.ERROR
+paramiko.sftp_file.ERROR
+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.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-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.channel.ERROR
+paramiko.client.ERROR
+paramiko.common.ERROR
+paramiko.dsskey.ERROR
+paramiko.hostkeys.ERROR
+paramiko.kex_gex.ERROR
+paramiko.kex_group1.ERROR
+paramiko.logging22.ERROR
+paramiko.packet.ERROR
+paramiko.pkey.ERROR
+paramiko.rsakey.ERROR
+paramiko.server.ERROR
+paramiko.sftp.ERROR
+paramiko.sftp_attr.ERROR
+paramiko.sftp_client.ERROR
+paramiko.sftp_file.ERROR
+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.channel.ERROR
+paramiko.client.ERROR
+paramiko.common.ERROR
+paramiko.dsskey.ERROR
+paramiko.hostkeys.ERROR
+paramiko.kex_gex.ERROR
+paramiko.kex_group1.ERROR
+paramiko.logging22.ERROR
+paramiko.packet.ERROR
+paramiko.pkey.ERROR
+paramiko.rsakey.ERROR
+paramiko.server.ERROR
+paramiko.sftp.ERROR
+paramiko.sftp_attr.ERROR
+paramiko.sftp_client.ERROR
+paramiko.sftp_file.ERROR
+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.channel.ERROR
+paramiko.client.ERROR
+paramiko.common.ERROR
+paramiko.dsskey.ERROR
+paramiko.hostkeys.ERROR
+paramiko.kex_gex.ERROR
+paramiko.kex_group1.ERROR
+paramiko.logging22.ERROR
+paramiko.packet.ERROR
+paramiko.pkey.ERROR
+paramiko.rsakey.ERROR
+paramiko.server.ERROR
+paramiko.sftp.ERROR
+paramiko.sftp_attr.ERROR
+paramiko.sftp_client.ERROR
+paramiko.sftp_file.ERROR
+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.BufferedFile.close
+paramiko.Channel.close
+paramiko.SFTPClient.close
+paramiko.SFTPFile.close
+paramiko.SFTPHandle.close
+paramiko.SSHClient.close
+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.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.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.BufferedFile.close
+paramiko.Channel.close
+paramiko.SFTPClient.close
+paramiko.SFTPFile.close
+paramiko.SFTPHandle.close
+paramiko.SSHClient.close
+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.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.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-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.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-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.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.channel.randpool
+paramiko.client.randpool
+paramiko.common.randpool
+paramiko.dsskey.randpool
+paramiko.hostkeys.randpool
+paramiko.kex_gex.randpool
+paramiko.kex_group1.randpool
+paramiko.packet.randpool
+paramiko.pkey.randpool
+paramiko.rsakey.randpool
+paramiko.server.randpool
+paramiko.sftp.randpool
+paramiko.sftp_attr.randpool
+paramiko.sftp_client.randpool
+paramiko.sftp_file.randpool
+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.channel.MSG_KEXINIT
+paramiko.client.MSG_KEXINIT
+paramiko.common.MSG_KEXINIT
+paramiko.dsskey.MSG_KEXINIT
+paramiko.hostkeys.MSG_KEXINIT
+paramiko.kex_gex.MSG_KEXINIT
+paramiko.kex_group1.MSG_KEXINIT
+paramiko.packet.MSG_KEXINIT
+paramiko.pkey.MSG_KEXINIT
+paramiko.rsakey.MSG_KEXINIT
+paramiko.server.MSG_KEXINIT
+paramiko.sftp.MSG_KEXINIT
+paramiko.sftp_attr.MSG_KEXINIT
+paramiko.sftp_client.MSG_KEXINIT
+paramiko.sftp_file.MSG_KEXINIT
+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.channel.randpool
+paramiko.client.randpool
+paramiko.common.randpool
+paramiko.dsskey.randpool
+paramiko.hostkeys.randpool
+paramiko.kex_gex.randpool
+paramiko.kex_group1.randpool
+paramiko.packet.randpool
+paramiko.pkey.randpool
+paramiko.rsakey.randpool
+paramiko.server.randpool
+paramiko.sftp.randpool
+paramiko.sftp_attr.randpool
+paramiko.sftp_client.randpool
+paramiko.sftp_file.randpool
+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.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-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.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-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.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-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.channel.MSG_KEXINIT
+paramiko.client.MSG_KEXINIT
+paramiko.common.MSG_KEXINIT
+paramiko.dsskey.MSG_KEXINIT
+paramiko.hostkeys.MSG_KEXINIT
+paramiko.kex_gex.MSG_KEXINIT
+paramiko.kex_group1.MSG_KEXINIT
+paramiko.packet.MSG_KEXINIT
+paramiko.pkey.MSG_KEXINIT
+paramiko.rsakey.MSG_KEXINIT
+paramiko.server.MSG_KEXINIT
+paramiko.sftp.MSG_KEXINIT
+paramiko.sftp_attr.MSG_KEXINIT
+paramiko.sftp_client.MSG_KEXINIT
+paramiko.sftp_file.MSG_KEXINIT
+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.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-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.channel.MSG_NEWKEYS
+paramiko.client.MSG_NEWKEYS
+paramiko.common.MSG_NEWKEYS
+paramiko.dsskey.MSG_NEWKEYS
+paramiko.hostkeys.MSG_NEWKEYS
+paramiko.kex_gex.MSG_NEWKEYS
+paramiko.kex_group1.MSG_NEWKEYS
+paramiko.packet.MSG_NEWKEYS
+paramiko.pkey.MSG_NEWKEYS
+paramiko.rsakey.MSG_NEWKEYS
+paramiko.server.MSG_NEWKEYS
+paramiko.sftp.MSG_NEWKEYS
+paramiko.sftp_attr.MSG_NEWKEYS
+paramiko.sftp_client.MSG_NEWKEYS
+paramiko.sftp_file.MSG_NEWKEYS
+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.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-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.channel.MSG_NEWKEYS
+paramiko.client.MSG_NEWKEYS
+paramiko.common.MSG_NEWKEYS
+paramiko.dsskey.MSG_NEWKEYS
+paramiko.hostkeys.MSG_NEWKEYS
+paramiko.kex_gex.MSG_NEWKEYS
+paramiko.kex_group1.MSG_NEWKEYS
+paramiko.packet.MSG_NEWKEYS
+paramiko.pkey.MSG_NEWKEYS
+paramiko.rsakey.MSG_NEWKEYS
+paramiko.server.MSG_NEWKEYS
+paramiko.sftp.MSG_NEWKEYS
+paramiko.sftp_attr.MSG_NEWKEYS
+paramiko.sftp_client.MSG_NEWKEYS
+paramiko.sftp_file.MSG_NEWKEYS
+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.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-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.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-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.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-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.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.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.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-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.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-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.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-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.channel.MSG_REQUEST_SUCCESS
+paramiko.client.MSG_REQUEST_SUCCESS
+paramiko.common.MSG_REQUEST_SUCCESS
+paramiko.dsskey.MSG_REQUEST_SUCCESS
+paramiko.hostkeys.MSG_REQUEST_SUCCESS
+paramiko.kex_gex.MSG_REQUEST_SUCCESS
+paramiko.kex_group1.MSG_REQUEST_SUCCESS
+paramiko.packet.MSG_REQUEST_SUCCESS
+paramiko.pkey.MSG_REQUEST_SUCCESS
+paramiko.rsakey.MSG_REQUEST_SUCCESS
+paramiko.server.MSG_REQUEST_SUCCESS
+paramiko.sftp.MSG_REQUEST_SUCCESS
+paramiko.sftp_attr.MSG_REQUEST_SUCCESS
+paramiko.sftp_client.MSG_REQUEST_SUCCESS
+paramiko.sftp_file.MSG_REQUEST_SUCCESS
+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.channel.MSG_REQUEST_FAILURE
+paramiko.client.MSG_REQUEST_FAILURE
+paramiko.common.MSG_REQUEST_FAILURE
+paramiko.dsskey.MSG_REQUEST_FAILURE
+paramiko.hostkeys.MSG_REQUEST_FAILURE
+paramiko.kex_gex.MSG_REQUEST_FAILURE
+paramiko.kex_group1.MSG_REQUEST_FAILURE
+paramiko.packet.MSG_REQUEST_FAILURE
+paramiko.pkey.MSG_REQUEST_FAILURE
+paramiko.rsakey.MSG_REQUEST_FAILURE
+paramiko.server.MSG_REQUEST_FAILURE
+paramiko.sftp.MSG_REQUEST_FAILURE
+paramiko.sftp_attr.MSG_REQUEST_FAILURE
+paramiko.sftp_client.MSG_REQUEST_FAILURE
+paramiko.sftp_file.MSG_REQUEST_FAILURE
+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.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-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.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.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-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.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.channel.WARNING
+paramiko.client.WARNING
+paramiko.common.WARNING
+paramiko.dsskey.WARNING
+paramiko.hostkeys.WARNING
+paramiko.kex_gex.WARNING
+paramiko.kex_group1.WARNING
+paramiko.logging22.WARNING
+paramiko.packet.WARNING
+paramiko.pkey.WARNING
+paramiko.rsakey.WARNING
+paramiko.server.WARNING
+paramiko.sftp.WARNING
+paramiko.sftp_attr.WARNING
+paramiko.sftp_client.WARNING
+paramiko.sftp_file.WARNING
+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.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-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.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.channel.CONNECTION_FAILED_CODE
+paramiko.client.CONNECTION_FAILED_CODE
+paramiko.common.CONNECTION_FAILED_CODE
+paramiko.dsskey.CONNECTION_FAILED_CODE
+paramiko.hostkeys.CONNECTION_FAILED_CODE
+paramiko.kex_gex.CONNECTION_FAILED_CODE
+paramiko.kex_group1.CONNECTION_FAILED_CODE
+paramiko.packet.CONNECTION_FAILED_CODE
+paramiko.pkey.CONNECTION_FAILED_CODE
+paramiko.rsakey.CONNECTION_FAILED_CODE
+paramiko.server.CONNECTION_FAILED_CODE
+paramiko.sftp.CONNECTION_FAILED_CODE
+paramiko.sftp_attr.CONNECTION_FAILED_CODE
+paramiko.sftp_client.CONNECTION_FAILED_CODE
+paramiko.sftp_file.CONNECTION_FAILED_CODE
+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.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-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.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.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-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.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-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.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-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.channel.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.client.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.common.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.dsskey.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.hostkeys.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.kex_gex.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.kex_group1.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.packet.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.pkey.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.rsakey.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.server.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.sftp.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.sftp_attr.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.sftp_client.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+paramiko.sftp_file.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+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.channel.OPEN_SUCCEEDED
+paramiko.client.OPEN_SUCCEEDED
+paramiko.common.OPEN_SUCCEEDED
+paramiko.dsskey.OPEN_SUCCEEDED
+paramiko.hostkeys.OPEN_SUCCEEDED
+paramiko.kex_gex.OPEN_SUCCEEDED
+paramiko.kex_group1.OPEN_SUCCEEDED
+paramiko.packet.OPEN_SUCCEEDED
+paramiko.pkey.OPEN_SUCCEEDED
+paramiko.rsakey.OPEN_SUCCEEDED
+paramiko.server.OPEN_SUCCEEDED
+paramiko.sftp.OPEN_SUCCEEDED
+paramiko.sftp_attr.OPEN_SUCCEEDED
+paramiko.sftp_client.OPEN_SUCCEEDED
+paramiko.sftp_file.OPEN_SUCCEEDED
+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.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-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.channel.MSG_CHANNEL_OPEN_FAILURE
+paramiko.client.MSG_CHANNEL_OPEN_FAILURE
+paramiko.common.MSG_CHANNEL_OPEN_FAILURE
+paramiko.dsskey.MSG_CHANNEL_OPEN_FAILURE
+paramiko.hostkeys.MSG_CHANNEL_OPEN_FAILURE
+paramiko.kex_gex.MSG_CHANNEL_OPEN_FAILURE
+paramiko.kex_group1.MSG_CHANNEL_OPEN_FAILURE
+paramiko.packet.MSG_CHANNEL_OPEN_FAILURE
+paramiko.pkey.MSG_CHANNEL_OPEN_FAILURE
+paramiko.rsakey.MSG_CHANNEL_OPEN_FAILURE
+paramiko.server.MSG_CHANNEL_OPEN_FAILURE
+paramiko.sftp.MSG_CHANNEL_OPEN_FAILURE
+paramiko.sftp_attr.MSG_CHANNEL_OPEN_FAILURE
+paramiko.sftp_client.MSG_CHANNEL_OPEN_FAILURE
+paramiko.sftp_file.MSG_CHANNEL_OPEN_FAILURE
+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.channel.MSG_CHANNEL_OPEN_SUCCESS
+paramiko.client.MSG_CHANNEL_OPEN_SUCCESS
+paramiko.common.MSG_CHANNEL_OPEN_SUCCESS
+paramiko.dsskey.MSG_CHANNEL_OPEN_SUCCESS
+paramiko.hostkeys.MSG_CHANNEL_OPEN_SUCCESS
+paramiko.kex_gex.MSG_CHANNEL_OPEN_SUCCESS
+paramiko.kex_group1.MSG_CHANNEL_OPEN_SUCCESS
+paramiko.packet.MSG_CHANNEL_OPEN_SUCCESS
+paramiko.pkey.MSG_CHANNEL_OPEN_SUCCESS
+paramiko.rsakey.MSG_CHANNEL_OPEN_SUCCESS
+paramiko.server.MSG_CHANNEL_OPEN_SUCCESS
+paramiko.sftp.MSG_CHANNEL_OPEN_SUCCESS
+paramiko.sftp_attr.MSG_CHANNEL_OPEN_SUCCESS
+paramiko.sftp_client.MSG_CHANNEL_OPEN_SUCCESS
+paramiko.sftp_file.MSG_CHANNEL_OPEN_SUCCESS
+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.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-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.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-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.channel.MSG_NEWKEYS
+paramiko.client.MSG_NEWKEYS
+paramiko.common.MSG_NEWKEYS
+paramiko.dsskey.MSG_NEWKEYS
+paramiko.hostkeys.MSG_NEWKEYS
+paramiko.kex_gex.MSG_NEWKEYS
+paramiko.kex_group1.MSG_NEWKEYS
+paramiko.packet.MSG_NEWKEYS
+paramiko.pkey.MSG_NEWKEYS
+paramiko.rsakey.MSG_NEWKEYS
+paramiko.server.MSG_NEWKEYS
+paramiko.sftp.MSG_NEWKEYS
+paramiko.sftp_attr.MSG_NEWKEYS
+paramiko.sftp_client.MSG_NEWKEYS
+paramiko.sftp_file.MSG_NEWKEYS
+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.channel.MSG_GLOBAL_REQUEST
+paramiko.client.MSG_GLOBAL_REQUEST
+paramiko.common.MSG_GLOBAL_REQUEST
+paramiko.dsskey.MSG_GLOBAL_REQUEST
+paramiko.hostkeys.MSG_GLOBAL_REQUEST
+paramiko.kex_gex.MSG_GLOBAL_REQUEST
+paramiko.kex_group1.MSG_GLOBAL_REQUEST
+paramiko.packet.MSG_GLOBAL_REQUEST
+paramiko.pkey.MSG_GLOBAL_REQUEST
+paramiko.rsakey.MSG_GLOBAL_REQUEST
+paramiko.server.MSG_GLOBAL_REQUEST
+paramiko.sftp.MSG_GLOBAL_REQUEST
+paramiko.sftp_attr.MSG_GLOBAL_REQUEST
+paramiko.sftp_client.MSG_GLOBAL_REQUEST
+paramiko.sftp_file.MSG_GLOBAL_REQUEST
+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.channel.MSG_REQUEST_SUCCESS
+paramiko.client.MSG_REQUEST_SUCCESS
+paramiko.common.MSG_REQUEST_SUCCESS
+paramiko.dsskey.MSG_REQUEST_SUCCESS
+paramiko.hostkeys.MSG_REQUEST_SUCCESS
+paramiko.kex_gex.MSG_REQUEST_SUCCESS
+paramiko.kex_group1.MSG_REQUEST_SUCCESS
+paramiko.packet.MSG_REQUEST_SUCCESS
+paramiko.pkey.MSG_REQUEST_SUCCESS
+paramiko.rsakey.MSG_REQUEST_SUCCESS
+paramiko.server.MSG_REQUEST_SUCCESS
+paramiko.sftp.MSG_REQUEST_SUCCESS
+paramiko.sftp_attr.MSG_REQUEST_SUCCESS
+paramiko.sftp_client.MSG_REQUEST_SUCCESS
+paramiko.sftp_file.MSG_REQUEST_SUCCESS
+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.channel.MSG_REQUEST_FAILURE
+paramiko.client.MSG_REQUEST_FAILURE
+paramiko.common.MSG_REQUEST_FAILURE
+paramiko.dsskey.MSG_REQUEST_FAILURE
+paramiko.hostkeys.MSG_REQUEST_FAILURE
+paramiko.kex_gex.MSG_REQUEST_FAILURE
+paramiko.kex_group1.MSG_REQUEST_FAILURE
+paramiko.packet.MSG_REQUEST_FAILURE
+paramiko.pkey.MSG_REQUEST_FAILURE
+paramiko.rsakey.MSG_REQUEST_FAILURE
+paramiko.server.MSG_REQUEST_FAILURE
+paramiko.sftp.MSG_REQUEST_FAILURE
+paramiko.sftp_attr.MSG_REQUEST_FAILURE
+paramiko.sftp_client.MSG_REQUEST_FAILURE
+paramiko.sftp_file.MSG_REQUEST_FAILURE
+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.channel.MSG_CHANNEL_OPEN_SUCCESS
+paramiko.client.MSG_CHANNEL_OPEN_SUCCESS
+paramiko.common.MSG_CHANNEL_OPEN_SUCCESS
+paramiko.dsskey.MSG_CHANNEL_OPEN_SUCCESS
+paramiko.hostkeys.MSG_CHANNEL_OPEN_SUCCESS
+paramiko.kex_gex.MSG_CHANNEL_OPEN_SUCCESS
+paramiko.kex_group1.MSG_CHANNEL_OPEN_SUCCESS
+paramiko.packet.MSG_CHANNEL_OPEN_SUCCESS
+paramiko.pkey.MSG_CHANNEL_OPEN_SUCCESS
+paramiko.rsakey.MSG_CHANNEL_OPEN_SUCCESS
+paramiko.server.MSG_CHANNEL_OPEN_SUCCESS
+paramiko.sftp.MSG_CHANNEL_OPEN_SUCCESS
+paramiko.sftp_attr.MSG_CHANNEL_OPEN_SUCCESS
+paramiko.sftp_client.MSG_CHANNEL_OPEN_SUCCESS
+paramiko.sftp_file.MSG_CHANNEL_OPEN_SUCCESS
+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.channel.MSG_CHANNEL_OPEN_FAILURE
+paramiko.client.MSG_CHANNEL_OPEN_FAILURE
+paramiko.common.MSG_CHANNEL_OPEN_FAILURE
+paramiko.dsskey.MSG_CHANNEL_OPEN_FAILURE
+paramiko.hostkeys.MSG_CHANNEL_OPEN_FAILURE
+paramiko.kex_gex.MSG_CHANNEL_OPEN_FAILURE
+paramiko.kex_group1.MSG_CHANNEL_OPEN_FAILURE
+paramiko.packet.MSG_CHANNEL_OPEN_FAILURE
+paramiko.pkey.MSG_CHANNEL_OPEN_FAILURE
+paramiko.rsakey.MSG_CHANNEL_OPEN_FAILURE
+paramiko.server.MSG_CHANNEL_OPEN_FAILURE
+paramiko.sftp.MSG_CHANNEL_OPEN_FAILURE
+paramiko.sftp_attr.MSG_CHANNEL_OPEN_FAILURE
+paramiko.sftp_client.MSG_CHANNEL_OPEN_FAILURE
+paramiko.sftp_file.MSG_CHANNEL_OPEN_FAILURE
+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.channel.MSG_CHANNEL_OPEN
+paramiko.client.MSG_CHANNEL_OPEN
+paramiko.common.MSG_CHANNEL_OPEN
+paramiko.dsskey.MSG_CHANNEL_OPEN
+paramiko.hostkeys.MSG_CHANNEL_OPEN
+paramiko.kex_gex.MSG_CHANNEL_OPEN
+paramiko.kex_group1.MSG_CHANNEL_OPEN
+paramiko.packet.MSG_CHANNEL_OPEN
+paramiko.pkey.MSG_CHANNEL_OPEN
+paramiko.rsakey.MSG_CHANNEL_OPEN
+paramiko.server.MSG_CHANNEL_OPEN
+paramiko.sftp.MSG_CHANNEL_OPEN
+paramiko.sftp_attr.MSG_CHANNEL_OPEN
+paramiko.sftp_client.MSG_CHANNEL_OPEN
+paramiko.sftp_file.MSG_CHANNEL_OPEN
+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.channel.MSG_KEXINIT
+paramiko.client.MSG_KEXINIT
+paramiko.common.MSG_KEXINIT
+paramiko.dsskey.MSG_KEXINIT
+paramiko.hostkeys.MSG_KEXINIT
+paramiko.kex_gex.MSG_KEXINIT
+paramiko.kex_group1.MSG_KEXINIT
+paramiko.packet.MSG_KEXINIT
+paramiko.pkey.MSG_KEXINIT
+paramiko.rsakey.MSG_KEXINIT
+paramiko.server.MSG_KEXINIT
+paramiko.sftp.MSG_KEXINIT
+paramiko.sftp_attr.MSG_KEXINIT
+paramiko.sftp_client.MSG_KEXINIT
+paramiko.sftp_file.MSG_KEXINIT
+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.channel.MSG_CHANNEL_SUCCESS
+paramiko.client.MSG_CHANNEL_SUCCESS
+paramiko.common.MSG_CHANNEL_SUCCESS
+paramiko.dsskey.MSG_CHANNEL_SUCCESS
+paramiko.hostkeys.MSG_CHANNEL_SUCCESS
+paramiko.kex_gex.MSG_CHANNEL_SUCCESS
+paramiko.kex_group1.MSG_CHANNEL_SUCCESS
+paramiko.packet.MSG_CHANNEL_SUCCESS
+paramiko.pkey.MSG_CHANNEL_SUCCESS
+paramiko.rsakey.MSG_CHANNEL_SUCCESS
+paramiko.server.MSG_CHANNEL_SUCCESS
+paramiko.sftp.MSG_CHANNEL_SUCCESS
+paramiko.sftp_attr.MSG_CHANNEL_SUCCESS
+paramiko.sftp_client.MSG_CHANNEL_SUCCESS
+paramiko.sftp_file.MSG_CHANNEL_SUCCESS
+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.channel.MSG_CHANNEL_FAILURE
+paramiko.client.MSG_CHANNEL_FAILURE
+paramiko.common.MSG_CHANNEL_FAILURE
+paramiko.dsskey.MSG_CHANNEL_FAILURE
+paramiko.hostkeys.MSG_CHANNEL_FAILURE
+paramiko.kex_gex.MSG_CHANNEL_FAILURE
+paramiko.kex_group1.MSG_CHANNEL_FAILURE
+paramiko.packet.MSG_CHANNEL_FAILURE
+paramiko.pkey.MSG_CHANNEL_FAILURE
+paramiko.rsakey.MSG_CHANNEL_FAILURE
+paramiko.server.MSG_CHANNEL_FAILURE
+paramiko.sftp.MSG_CHANNEL_FAILURE
+paramiko.sftp_attr.MSG_CHANNEL_FAILURE
+paramiko.sftp_client.MSG_CHANNEL_FAILURE
+paramiko.sftp_file.MSG_CHANNEL_FAILURE
+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.channel.MSG_CHANNEL_DATA
+paramiko.client.MSG_CHANNEL_DATA
+paramiko.common.MSG_CHANNEL_DATA
+paramiko.dsskey.MSG_CHANNEL_DATA
+paramiko.hostkeys.MSG_CHANNEL_DATA
+paramiko.kex_gex.MSG_CHANNEL_DATA
+paramiko.kex_group1.MSG_CHANNEL_DATA
+paramiko.packet.MSG_CHANNEL_DATA
+paramiko.pkey.MSG_CHANNEL_DATA
+paramiko.rsakey.MSG_CHANNEL_DATA
+paramiko.server.MSG_CHANNEL_DATA
+paramiko.sftp.MSG_CHANNEL_DATA
+paramiko.sftp_attr.MSG_CHANNEL_DATA
+paramiko.sftp_client.MSG_CHANNEL_DATA
+paramiko.sftp_file.MSG_CHANNEL_DATA
+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.channel.MSG_CHANNEL_EXTENDED_DATA
+paramiko.client.MSG_CHANNEL_EXTENDED_DATA
+paramiko.common.MSG_CHANNEL_EXTENDED_DATA
+paramiko.dsskey.MSG_CHANNEL_EXTENDED_DATA
+paramiko.hostkeys.MSG_CHANNEL_EXTENDED_DATA
+paramiko.kex_gex.MSG_CHANNEL_EXTENDED_DATA
+paramiko.kex_group1.MSG_CHANNEL_EXTENDED_DATA
+paramiko.packet.MSG_CHANNEL_EXTENDED_DATA
+paramiko.pkey.MSG_CHANNEL_EXTENDED_DATA
+paramiko.rsakey.MSG_CHANNEL_EXTENDED_DATA
+paramiko.server.MSG_CHANNEL_EXTENDED_DATA
+paramiko.sftp.MSG_CHANNEL_EXTENDED_DATA
+paramiko.sftp_attr.MSG_CHANNEL_EXTENDED_DATA
+paramiko.sftp_client.MSG_CHANNEL_EXTENDED_DATA
+paramiko.sftp_file.MSG_CHANNEL_EXTENDED_DATA
+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.channel.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.client.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.common.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.dsskey.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.hostkeys.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.kex_gex.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.kex_group1.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.packet.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.pkey.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.rsakey.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.server.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.sftp.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.sftp_attr.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.sftp_client.MSG_CHANNEL_WINDOW_ADJUST
+paramiko.sftp_file.MSG_CHANNEL_WINDOW_ADJUST
+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.channel.MSG_CHANNEL_REQUEST
+paramiko.client.MSG_CHANNEL_REQUEST
+paramiko.common.MSG_CHANNEL_REQUEST
+paramiko.dsskey.MSG_CHANNEL_REQUEST
+paramiko.hostkeys.MSG_CHANNEL_REQUEST
+paramiko.kex_gex.MSG_CHANNEL_REQUEST
+paramiko.kex_group1.MSG_CHANNEL_REQUEST
+paramiko.packet.MSG_CHANNEL_REQUEST
+paramiko.pkey.MSG_CHANNEL_REQUEST
+paramiko.rsakey.MSG_CHANNEL_REQUEST
+paramiko.server.MSG_CHANNEL_REQUEST
+paramiko.sftp.MSG_CHANNEL_REQUEST
+paramiko.sftp_attr.MSG_CHANNEL_REQUEST
+paramiko.sftp_client.MSG_CHANNEL_REQUEST
+paramiko.sftp_file.MSG_CHANNEL_REQUEST
+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.channel.MSG_CHANNEL_EOF
+paramiko.client.MSG_CHANNEL_EOF
+paramiko.common.MSG_CHANNEL_EOF
+paramiko.dsskey.MSG_CHANNEL_EOF
+paramiko.hostkeys.MSG_CHANNEL_EOF
+paramiko.kex_gex.MSG_CHANNEL_EOF
+paramiko.kex_group1.MSG_CHANNEL_EOF
+paramiko.packet.MSG_CHANNEL_EOF
+paramiko.pkey.MSG_CHANNEL_EOF
+paramiko.rsakey.MSG_CHANNEL_EOF
+paramiko.server.MSG_CHANNEL_EOF
+paramiko.sftp.MSG_CHANNEL_EOF
+paramiko.sftp_attr.MSG_CHANNEL_EOF
+paramiko.sftp_client.MSG_CHANNEL_EOF
+paramiko.sftp_file.MSG_CHANNEL_EOF
+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.channel.MSG_CHANNEL_CLOSE
+paramiko.client.MSG_CHANNEL_CLOSE
+paramiko.common.MSG_CHANNEL_CLOSE
+paramiko.dsskey.MSG_CHANNEL_CLOSE
+paramiko.hostkeys.MSG_CHANNEL_CLOSE
+paramiko.kex_gex.MSG_CHANNEL_CLOSE
+paramiko.kex_group1.MSG_CHANNEL_CLOSE
+paramiko.packet.MSG_CHANNEL_CLOSE
+paramiko.pkey.MSG_CHANNEL_CLOSE
+paramiko.rsakey.MSG_CHANNEL_CLOSE
+paramiko.server.MSG_CHANNEL_CLOSE
+paramiko.sftp.MSG_CHANNEL_CLOSE
+paramiko.sftp_attr.MSG_CHANNEL_CLOSE
+paramiko.sftp_client.MSG_CHANNEL_CLOSE
+paramiko.sftp_file.MSG_CHANNEL_CLOSE
+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">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<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 Jul 6 18:30:33 2008
+ </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.transport.ChannelMap-class.html b/docs/paramiko.transport.ChannelMap-class.html
new file mode 100644
index 0000000..c00478a
--- /dev/null
+++ b/docs/paramiko.transport.ChannelMap-class.html
@@ -0,0 +1,286 @@
+<?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.transport.ChannelMap</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.transport-module.html" onclick="show_private();">Module&nbsp;transport</a> ::
+ Class&nbsp;ChannelMap
+ </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.transport.ChannelMap-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class ChannelMap</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.transport-pysrc.html#ChannelMap">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+object --+
+ |
+ <strong class="uidshort">ChannelMap</strong>
+</pre>
+
+<hr />
+<!-- ==================== 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.transport.ChannelMap-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</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.transport-pysrc.html#ChannelMap.__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="put"></a><span class="summary-sig-name">put</span>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">chanid</span>,
+ <span class="summary-sig-arg">chan</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.transport-pysrc.html#ChannelMap.put">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="get"></a><span class="summary-sig-name">get</span>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">chanid</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.transport-pysrc.html#ChannelMap.get">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="delete"></a><span class="summary-sig-name">delete</span>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">chanid</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.transport-pysrc.html#ChannelMap.delete">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="values"></a><span class="summary-sig-name">values</span>(<span class="summary-sig-arg">self</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.transport-pysrc.html#ChannelMap.values">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="__len__"></a><span class="summary-sig-name">__len__</span>(<span class="summary-sig-arg">self</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.transport-pysrc.html#ChannelMap.__len__">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>__getattribute__</code>,
+ <code>__hash__</code>,
+ <code>__new__</code>,
+ <code>__reduce__</code>,
+ <code>__reduce_ex__</code>,
+ <code>__repr__</code>,
+ <code>__setattr__</code>,
+ <code>__str__</code>
+ </p>
+ </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>
+ <br /><em class="fname">(Constructor)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.transport-pysrc.html#ChannelMap.__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 Jul 6 18:30:31 2008
+ </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-module.html b/docs/paramiko.util-module.html
new file mode 100644
index 0000000..297ca6d
--- /dev/null
+++ b/docs/paramiko.util-module.html
@@ -0,0 +1,950 @@
+<?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</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> ::
+ Module&nbsp;util
+ </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-module.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module util</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.util-pysrc.html">source&nbsp;code</a></span></p>
+<p>Useful functions used by the rest of paramiko.</p>
+
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></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">Classes</span></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.enumerate-class.html" class="summary-name">enumerate</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.PFilter-class.html" class="summary-name">PFilter</a>
+ </td>
+ </tr>
+</table>
+<!-- ==================== FUNCTIONS ==================== -->
+<a name="section-Functions"></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">Functions</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="inflate_long"></a><span class="summary-sig-name">inflate_long</span>(<span class="summary-sig-arg">s</span>,
+ <span class="summary-sig-arg">always_positive</span>=<span class="summary-sig-default">False</span>)</span><br />
+ turns a normalized byte string into a long-int (adapted from
+ Crypto.Util.number)</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.util-pysrc.html#inflate_long">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="deflate_long"></a><span class="summary-sig-name">deflate_long</span>(<span class="summary-sig-arg">n</span>,
+ <span class="summary-sig-arg">add_sign_padding</span>=<span class="summary-sig-default">True</span>)</span><br />
+ turns a long-int into a normalized byte string (adapted from
+ Crypto.Util.number)</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.util-pysrc.html#deflate_long">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="format_binary_weird"></a><span class="summary-sig-name">format_binary_weird</span>(<span class="summary-sig-arg">data</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.util-pysrc.html#format_binary_weird">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="format_binary"></a><span class="summary-sig-name">format_binary</span>(<span class="summary-sig-arg">data</span>,
+ <span class="summary-sig-arg">prefix</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string"></code><code class="variable-quote">'</code></span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.util-pysrc.html#format_binary">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="format_binary_line"></a><span class="summary-sig-name">format_binary_line</span>(<span class="summary-sig-arg">data</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.util-pysrc.html#format_binary_line">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="hexify"></a><span class="summary-sig-name">hexify</span>(<span class="summary-sig-arg">s</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.util-pysrc.html#hexify">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="unhexify"></a><span class="summary-sig-name">unhexify</span>(<span class="summary-sig-arg">s</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.util-pysrc.html#unhexify">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="safe_string"></a><span class="summary-sig-name">safe_string</span>(<span class="summary-sig-arg">s</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.util-pysrc.html#safe_string">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="bit_length"></a><span class="summary-sig-name">bit_length</span>(<span class="summary-sig-arg">n</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.util-pysrc.html#bit_length">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="tb_strings"></a><span class="summary-sig-name">tb_strings</span>()</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.util-pysrc.html#tb_strings">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">string</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.util-module.html#generate_key_bytes" class="summary-sig-name">generate_key_bytes</a>(<span class="summary-sig-arg">hashclass</span>,
+ <span class="summary-sig-arg">salt</span>,
+ <span class="summary-sig-arg">key</span>,
+ <span class="summary-sig-arg">nbytes</span>)</span><br />
+ Given a password, passphrase, or other human-source key, scramble it
+ through a secure hash into some keyworthy bytes.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.util-pysrc.html#generate_key_bytes">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">dict(hostname, dict(keytype, <a href="paramiko.PKey-class.html"
+ class="link">PKey</a>))</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="paramiko.util-module.html#load_host_keys" class="summary-sig-name">load_host_keys</a>(<span class="summary-sig-arg">filename</span>)</span><br />
+ Read a file of known SSH host keys, in the format used by openssh,
+ and return a compound dict of <code>hostname -&gt; keytype
+ -&gt;</code> <a href="paramiko.PKey-class.html"
+ class="link">PKey</a>.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.util-pysrc.html#load_host_keys">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="parse_ssh_config"></a><span class="summary-sig-name">parse_ssh_config</span>(<span class="summary-sig-arg">file_obj</span>)</span><br />
+ Provided only as a backward-compatible wrapper around <a
+ href="paramiko.SSHConfig-class.html" class="link">SSHConfig</a>.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.util-pysrc.html#parse_ssh_config">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="lookup_ssh_host_config"></a><span class="summary-sig-name">lookup_ssh_host_config</span>(<span class="summary-sig-arg">hostname</span>,
+ <span class="summary-sig-arg">config</span>)</span><br />
+ Provided only as a backward-compatible wrapper around <a
+ href="paramiko.SSHConfig-class.html" class="link">SSHConfig</a>.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.util-pysrc.html#lookup_ssh_host_config">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="mod_inverse"></a><span class="summary-sig-name">mod_inverse</span>(<span class="summary-sig-arg">x</span>,
+ <span class="summary-sig-arg">m</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.util-pysrc.html#mod_inverse">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="get_thread_id"></a><span class="summary-sig-name">get_thread_id</span>()</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.util-pysrc.html#get_thread_id">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="log_to_file"></a><span class="summary-sig-name">log_to_file</span>(<span class="summary-sig-arg">filename</span>,
+ <span class="summary-sig-arg">level</span>=<span class="summary-sig-default">10</span>)</span><br />
+ send paramiko logs to a logfile, if they're not already going
+ somewhere</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.util-pysrc.html#log_to_file">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="get_logger"></a><span class="summary-sig-name">get_logger</span>(<span class="summary-sig-arg">name</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.util-pysrc.html#get_logger">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </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="AUTH_FAILED"></a><span class="summary-name">AUTH_FAILED</span> = <code title="2">2</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_PARTIALLY_SUCCESSFUL"></a><span class="summary-name">AUTH_PARTIALLY_SUCCESSFUL</span> = <code title="1">1</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_SUCCESSFUL"></a><span class="summary-name">AUTH_SUCCESSFUL</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 href="paramiko.util-module.html#CONNECTION_FAILED_CODE" class="summary-name">CONNECTION_FAILED_CODE</a> = <code title="{1: 'Administratively prohibited',
+ 2: 'Connect failed',
+ 3: 'Unknown channel type',
+ 4: 'Resource shortage'}"><code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Administratively prohibited</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-op">:</code><code class="variable-ellipsis">...</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="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="DEBUG"></a><span class="summary-name">DEBUG</span> = <code title="10">10</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="DISCONNECT_AUTH_CANCELLED_BY_USER"></a><span class="summary-name">DISCONNECT_AUTH_CANCELLED_BY_USER</span> = <code title="13">13</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="DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE"></a><span class="summary-name">DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE</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="DISCONNECT_SERVICE_NOT_AVAILABLE"></a><span class="summary-name">DISCONNECT_SERVICE_NOT_AVAILABLE</span> = <code title="7">7</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="ERROR"></a><span class="summary-name">ERROR</span> = <code title="40">40</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="INFO"></a><span class="summary-name">INFO</span> = <code title="20">20</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="MSG_CHANNEL_CLOSE"></a><span class="summary-name">MSG_CHANNEL_CLOSE</span> = <code title="97">97</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="MSG_CHANNEL_DATA"></a><span class="summary-name">MSG_CHANNEL_DATA</span> = <code title="94">94</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="MSG_CHANNEL_EOF"></a><span class="summary-name">MSG_CHANNEL_EOF</span> = <code title="96">96</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="MSG_CHANNEL_EXTENDED_DATA"></a><span class="summary-name">MSG_CHANNEL_EXTENDED_DATA</span> = <code title="95">95</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="MSG_CHANNEL_FAILURE"></a><span class="summary-name">MSG_CHANNEL_FAILURE</span> = <code title="100">100</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="MSG_CHANNEL_OPEN"></a><span class="summary-name">MSG_CHANNEL_OPEN</span> = <code title="90">90</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="MSG_CHANNEL_OPEN_FAILURE"></a><span class="summary-name">MSG_CHANNEL_OPEN_FAILURE</span> = <code title="92">92</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="MSG_CHANNEL_OPEN_SUCCESS"></a><span class="summary-name">MSG_CHANNEL_OPEN_SUCCESS</span> = <code title="91">91</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="MSG_CHANNEL_REQUEST"></a><span class="summary-name">MSG_CHANNEL_REQUEST</span> = <code title="98">98</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="MSG_CHANNEL_SUCCESS"></a><span class="summary-name">MSG_CHANNEL_SUCCESS</span> = <code title="99">99</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="MSG_CHANNEL_WINDOW_ADJUST"></a><span class="summary-name">MSG_CHANNEL_WINDOW_ADJUST</span> = <code title="93">93</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="MSG_DEBUG"></a><span class="summary-name">MSG_DEBUG</span> = <code title="4">4</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="MSG_DISCONNECT"></a><span class="summary-name">MSG_DISCONNECT</span> = <code title="1">1</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="MSG_GLOBAL_REQUEST"></a><span class="summary-name">MSG_GLOBAL_REQUEST</span> = <code title="80">80</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="MSG_IGNORE"></a><span class="summary-name">MSG_IGNORE</span> = <code title="2">2</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="MSG_KEXINIT"></a><span class="summary-name">MSG_KEXINIT</span> = <code title="20">20</code>
+ </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-module.html#MSG_NAMES" class="summary-name">MSG_NAMES</a> = <code title="{1: 'disconnect',
+ 2: 'ignore',
+ 3: 'unimplemented',
+ 4: 'debug',
+ 5: 'service-request',
+ 6: 'service-accept',
+ 20: 'kexinit',
+ 21: 'newkeys',
+..."><code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">disconnect</code><code class="variable-quote">'</code><code class="variable-op">, </code>2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">ignore</code><code class="variable-quote">'</code><code class="variable-op">, </code>3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">unimplemented</code><code class="variable-quote">'</code><code class="variable-op">,</code><code class="variable-ellipsis">...</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="MSG_NEWKEYS"></a><span class="summary-name">MSG_NEWKEYS</span> = <code title="21">21</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="MSG_REQUEST_FAILURE"></a><span class="summary-name">MSG_REQUEST_FAILURE</span> = <code title="82">82</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="MSG_REQUEST_SUCCESS"></a><span class="summary-name">MSG_REQUEST_SUCCESS</span> = <code title="81">81</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="MSG_SERVICE_ACCEPT"></a><span class="summary-name">MSG_SERVICE_ACCEPT</span> = <code title="6">6</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="MSG_SERVICE_REQUEST"></a><span class="summary-name">MSG_SERVICE_REQUEST</span> = <code title="5">5</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="MSG_UNIMPLEMENTED"></a><span class="summary-name">MSG_UNIMPLEMENTED</span> = <code title="3">3</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="MSG_USERAUTH_BANNER"></a><span class="summary-name">MSG_USERAUTH_BANNER</span> = <code title="53">53</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="MSG_USERAUTH_FAILURE"></a><span class="summary-name">MSG_USERAUTH_FAILURE</span> = <code title="51">51</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="MSG_USERAUTH_INFO_REQUEST"></a><span class="summary-name">MSG_USERAUTH_INFO_REQUEST</span> = <code title="60">60</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="MSG_USERAUTH_INFO_RESPONSE"></a><span class="summary-name">MSG_USERAUTH_INFO_RESPONSE</span> = <code title="61">61</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="MSG_USERAUTH_PK_OK"></a><span class="summary-name">MSG_USERAUTH_PK_OK</span> = <code title="60">60</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="MSG_USERAUTH_REQUEST"></a><span class="summary-name">MSG_USERAUTH_REQUEST</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="MSG_USERAUTH_SUCCESS"></a><span class="summary-name">MSG_USERAUTH_SUCCESS</span> = <code title="52">52</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="OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED"></a><span class="summary-name">OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED</span> = <code title="1">1</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="OPEN_FAILED_CONNECT_FAILED"></a><span class="summary-name">OPEN_FAILED_CONNECT_FAILED</span> = <code title="2">2</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="OPEN_FAILED_RESOURCE_SHORTAGE"></a><span class="summary-name">OPEN_FAILED_RESOURCE_SHORTAGE</span> = <code title="4">4</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="OPEN_FAILED_UNKNOWN_CHANNEL_TYPE"></a><span class="summary-name">OPEN_FAILED_UNKNOWN_CHANNEL_TYPE</span> = <code title="3">3</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="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="PY22"></a><span class="summary-name">PY22</span> = <code title="False">False</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="WARNING"></a><span class="summary-name">WARNING</span> = <code title="30">30</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>
+</table>
+<!-- ==================== FUNCTION DETAILS ==================== -->
+<a name="section-FunctionDetails"></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">Function Details</span></td>
+</tr>
+</table>
+<a name="generate_key_bytes"></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">generate_key_bytes</span>(<span class="sig-arg">hashclass</span>,
+ <span class="sig-arg">salt</span>,
+ <span class="sig-arg">key</span>,
+ <span class="sig-arg">nbytes</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.util-pysrc.html#generate_key_bytes">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Given a password, passphrase, or other human-source key, scramble it
+ through a secure hash into some keyworthy bytes. This specific algorithm
+ is used for encrypting/decrypting private key files.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>hashclass</code></strong> (<code class="link">Crypto.Hash</code>) - class from <code class="link">Crypto.Hash</code> that can be used
+ as a secure hashing function (like <code>MD5</code> or
+ <code>SHA</code>).</li>
+ <li><strong class="pname"><code>salt</code></strong> (string) - data to salt the hash with.</li>
+ <li><strong class="pname"><code>key</code></strong> (string) - human-entered password or passphrase.</li>
+ <li><strong class="pname"><code>nbytes</code></strong> (int) - number of bytes to generate.</li>
+ </ul></dd>
+ <dt>Returns: string</dt>
+ <dd>key data</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="load_host_keys"></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">load_host_keys</span>(<span class="sig-arg">filename</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.util-pysrc.html#load_host_keys">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Read a file of known SSH host keys, in the format used by openssh, and
+ return a compound dict of <code>hostname -&gt; keytype -&gt;</code> <a
+ href="paramiko.PKey-class.html" class="link">PKey</a>. The hostname may
+ be an IP address or DNS name. The keytype will be either
+ <code>&quot;ssh-rsa&quot;</code> or <code>&quot;ssh-dss&quot;</code>.</p>
+ <p>This type of file unfortunately doesn't exist on Windows, but on
+ posix, it will usually be stored in
+ <code>os.path.expanduser(&quot;~/.ssh/known_hosts&quot;)</code>.</p>
+ <p>Since 1.5.3, this is just a wrapper around <a
+ href="paramiko.HostKeys-class.html" class="link">HostKeys</a>.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>filename</code></strong> (str) - name of the file to read host keys from</li>
+ </ul></dd>
+ <dt>Returns: dict(hostname, dict(keytype, <a href="paramiko.PKey-class.html"
+ class="link">PKey</a>))</dt>
+ <dd>dict of host keys, indexed by hostname and then keytype</dd>
+ </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== VARIABLES DETAILS ==================== -->
+<a name="section-VariablesDetails"></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">Variables Details</span></td>
+</tr>
+</table>
+<a name="CONNECTION_FAILED_CODE"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">CONNECTION_FAILED_CODE</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Administratively prohibited</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Connect failed</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Unknown channel type</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">Resource shortage</code><code class="variable-quote">'</code><code class="variable-group">}</code>
+</pre></td></tr></table>
+</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="MSG_NAMES"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">MSG_NAMES</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code>1<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">disconnect</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 2<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">ignore</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 3<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">unimplemented</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 4<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">debug</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 5<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">service-request</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 6<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">service-accept</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 20<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">kexinit</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ 21<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">newkeys</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+ </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 Jul 6 18:30:28 2008
+ </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-pysrc.html b/docs/paramiko.util-pysrc.html
new file mode 100644
index 0000000..a7bdc07
--- /dev/null
+++ b/docs/paramiko.util-pysrc.html
@@ -0,0 +1,400 @@
+<?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</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> ::
+ Module&nbsp;util
+ </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-pysrc.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</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="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="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>
+</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
+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-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">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<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 Jul 6 18:30:34 2008
+ </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
new file mode 100644
index 0000000..c68bd23
--- /dev/null
+++ b/docs/paramiko.util.PFilter-class.html
@@ -0,0 +1,168 @@
+<?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.PFilter</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;PFilter
+ </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.PFilter-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class PFilter</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.util-pysrc.html#PFilter">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+object --+
+ |
+ <strong class="uidshort">PFilter</strong>
+</pre>
+
+<hr />
+<!-- ==================== 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 name="filter"></a><span class="summary-sig-name">filter</span>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">record</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.util-pysrc.html#PFilter.filter">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>__getattribute__</code>,
+ <code>__hash__</code>,
+ <code>__init__</code>,
+ <code>__new__</code>,
+ <code>__reduce__</code>,
+ <code>__reduce_ex__</code>,
+ <code>__repr__</code>,
+ <code>__setattr__</code>,
+ <code>__str__</code>
+ </p>
+ </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>
+<!-- ==================== 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 Jul 6 18:30:31 2008
+ </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.enumerate-class.html b/docs/paramiko.util.enumerate-class.html
new file mode 100644
index 0000000..9553b31
--- /dev/null
+++ b/docs/paramiko.util.enumerate-class.html
@@ -0,0 +1,145 @@
+<?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.enumerate</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;enumerate
+ </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.enumerate-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class enumerate</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.util-pysrc.html#enumerate">source&nbsp;code</a></span></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 name="__init__"></a><span class="summary-sig-name">__init__</span>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">sequence</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.util-pysrc.html#enumerate.__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="__iter__"></a><span class="summary-sig-name">__iter__</span>(<span class="summary-sig-arg">self</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.util-pysrc.html#enumerate.__iter__">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+</table>
+<!-- ==================== 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 Jul 6 18:30:31 2008
+ </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.win_pageant-module.html b/docs/paramiko.win_pageant-module.html
new file mode 100644
index 0000000..cc3bbf0
--- /dev/null
+++ b/docs/paramiko.win_pageant-module.html
@@ -0,0 +1,197 @@
+<?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.win_pageant</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> ::
+ Module&nbsp;win_pageant
+ </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.win_pageant-module.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module win_pageant</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.win_pageant-pysrc.html">source&nbsp;code</a></span></p>
+<p>Functions for communicating with Pageant, the basic windows ssh agent
+ program.</p>
+
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></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">Classes</span></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.win_pageant.PageantConnection-class.html" class="summary-name">PageantConnection</a><br />
+ Mock &quot;connection&quot; to an agent which roughly approximates
+ the behavior of a unix local-domain socket (as used by Agent).
+ </td>
+ </tr>
+</table>
+<!-- ==================== FUNCTIONS ==================== -->
+<a name="section-Functions"></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">Functions</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.win_pageant-module.html#can_talk_to_agent" class="summary-sig-name">can_talk_to_agent</a>()</span><br />
+ Check to see if there is a &quot;Pageant&quot; agent we can talk to.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.win_pageant-pysrc.html#can_talk_to_agent">source&nbsp;code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </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="win32con_WM_COPYDATA"></a><span class="summary-name">win32con_WM_COPYDATA</span> = <code title="74">74</code>
+ </td>
+ </tr>
+</table>
+<!-- ==================== FUNCTION DETAILS ==================== -->
+<a name="section-FunctionDetails"></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">Function Details</span></td>
+</tr>
+</table>
+<a name="can_talk_to_agent"></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">can_talk_to_agent</span>()</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.win_pageant-pysrc.html#can_talk_to_agent">source&nbsp;code</a></span>&nbsp;
+ </td>
+ </tr></table>
+
+ <p>Check to see if there is a &quot;Pageant&quot; agent we can talk
+ to.</p>
+ <p>This checks both if we have the required libraries (win32all or
+ ctypes) and if there is a Pageant currently running.</p>
+ <dl class="fields">
+ </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 Jul 6 18:30:28 2008
+ </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.win_pageant-pysrc.html b/docs/paramiko.win_pageant-pysrc.html
new file mode 100644
index 0000000..6b062ee
--- /dev/null
+++ b/docs/paramiko.win_pageant-pysrc.html
@@ -0,0 +1,288 @@
+<?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.win_pageant</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> ::
+ Module&nbsp;win_pageant
+ </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.win_pageant-pysrc.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<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="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>
+<a name="L23"></a><tt class="py-lineno"> 23</tt> <tt class="py-line"> </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">os</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">struct</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">tempfile</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">mmap</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">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="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="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>
+<a name="L40"></a><tt class="py-lineno"> 40</tt> <tt class="py-line"> <tt class="py-keyword">import</tt> <tt class="py-name">ctypes</tt> </tt>
+<a name="L41"></a><tt class="py-lineno"> 41</tt> <tt class="py-line"> <tt id="link-3" class="py-name"><a title="paramiko.win_pageant._has_ctypes" class="py-name" href="#" onclick="return doclink('link-3', '_has_ctypes', 'link-1');">_has_ctypes</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</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="L43"></a><tt class="py-lineno"> 43</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"> </tt>
+<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 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="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>
+</div><div id="_get_pageant_window_object-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_get_pageant_window_object-expanded"><a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt id="link-7" class="py-name"><a title="paramiko.win_pageant._has_win32all" class="py-name" href="#" onclick="return doclink('link-7', '_has_win32all', 'link-0');">_has_win32all</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">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">hwnd</tt> <tt class="py-op">=</tt> <tt class="py-name">win32gui</tt><tt class="py-op">.</tt><tt class="py-name">FindWindow</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="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">hwnd</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">win32gui</tt><tt class="py-op">.</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>
+<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="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>
+<a name="can_talk_to_agent"></a><div id="can_talk_to_agent-def"><a name="L66"></a><tt class="py-lineno"> 66</tt> <a class="py-toggle" href="#" id="can_talk_to_agent-toggle" onclick="return toggle('can_talk_to_agent');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.win_pageant-module.html#can_talk_to_agent">can_talk_to_agent</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="can_talk_to_agent-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="can_talk_to_agent-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"> Check to see if there is a "Pageant" agent we can talk to.</tt> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line"><tt class="py-docstring"> This checks both if we have the required libraries (win32all or ctypes)</tt> </tt>
+<a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line"><tt class="py-docstring"> and if there is a Pageant currently running.</tt> </tt>
+<a name="L72"></a><tt class="py-lineno"> 72</tt> <tt class="py-line"><tt class="py-docstring"> """</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-op">(</tt><tt id="link-10" class="py-name"><a title="paramiko.win_pageant._has_win32all" class="py-name" href="#" onclick="return doclink('link-10', '_has_win32all', 'link-0');">_has_win32all</a></tt> <tt class="py-keyword">or</tt> <tt id="link-11" class="py-name"><a title="paramiko.win_pageant._has_ctypes" class="py-name" href="#" onclick="return doclink('link-11', '_has_ctypes', 'link-1');">_has_ctypes</a></tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-name">_get_pageant_window_object</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-keyword">return</tt> <tt class="py-name">True</tt> </tt>
+<a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
+</div><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>
+<a name="_query_pageant"></a><div id="_query_pageant-def"><a name="L78"></a><tt class="py-lineno"> 78</tt> <a class="py-toggle" href="#" id="_query_pageant-toggle" onclick="return toggle('_query_pageant');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.win_pageant-module.html#_query_pageant">_query_pageant</a><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="_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="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="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
+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
+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="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="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="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>
+<a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line"> <tt class="py-name">response</tt> <tt class="py-op">=</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">SendMessageA</tt><tt class="py-op">(</tt><tt class="py-name">hwnd</tt><tt class="py-op">,</tt> <tt id="link-22" class="py-name"><a title="paramiko.win_pageant.win32con_WM_COPYDATA" class="py-name" href="#" onclick="return doclink('link-22', 'win32con_WM_COPYDATA', 'link-6');">win32con_WM_COPYDATA</a></tt><tt class="py-op">,</tt> <tt class="py-name">_size</tt><tt class="py-op">,</tt> <tt class="py-name">_addr</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">else</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">response</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<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-keyword">if</tt> <tt class="py-name">response</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</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">datalen</tt> <tt class="py-op">=</tt> <tt class="py-name">pymap</tt><tt class="py-op">.</tt><tt id="link-23" 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-23', 'read', 'link-23');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">4</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">retlen</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">datalen</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="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">datalen</tt> <tt class="py-op">+</tt> <tt class="py-name">pymap</tt><tt class="py-op">.</tt><tt id="link-24" class="py-name"><a title="paramiko.BufferedFile.read
+paramiko.SFTPHandle.read
+paramiko.buffered_pipe.BufferedPipe.read" class="py-name" href="#" onclick="return doclink('link-24', 'read', 'link-23');">read</a></tt><tt class="py-op">(</tt><tt class="py-name">retlen</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-name">None</tt> </tt>
+<a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"> <tt class="py-keyword">finally</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">pymap</tt><tt class="py-op">.</tt><tt id="link-25" 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
+paramiko.SFTPFile.close
+paramiko.SFTPHandle.close
+paramiko.SSHClient.close
+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-25', 'close', 'link-25');">close</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">f</tt><tt class="py-op">.</tt><tt id="link-26" class="py-name"><a title="paramiko.Agent.close
+paramiko.BufferedFile.close
+paramiko.Channel.close
+paramiko.SFTPClient.close
+paramiko.SFTPFile.close
+paramiko.SFTPHandle.close
+paramiko.SSHClient.close
+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-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>
+</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>
+</div><div id="PageantConnection-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="PageantConnection-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"> Mock "connection" to an agent which roughly approximates the behavior of</tt> </tt>
+<a name="L127"></a><tt class="py-lineno">127</tt> <tt class="py-line"><tt class="py-docstring"> a unix local-domain socket (as used by Agent). Requests are sent to the</tt> </tt>
+<a name="L128"></a><tt class="py-lineno">128</tt> <tt class="py-line"><tt class="py-docstring"> pageant daemon via special Windows magick, and responses are buffered back</tt> </tt>
+<a name="L129"></a><tt class="py-lineno">129</tt> <tt class="py-line"><tt class="py-docstring"> for subsequent reads.</tt> </tt>
+<a name="L130"></a><tt class="py-lineno">130</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L131"></a><tt class="py-lineno">131</tt> <tt class="py-line"> </tt>
+<a name="PageantConnection.__init__"></a><div id="PageantConnection.__init__-def"><a name="L132"></a><tt class="py-lineno">132</tt> <a class="py-toggle" href="#" id="PageantConnection.__init__-toggle" onclick="return toggle('PageantConnection.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.win_pageant.PageantConnection-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="PageantConnection.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="PageantConnection.__init__-expanded"><a name="L133"></a><tt class="py-lineno">133</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">None</tt> </tt>
+</div><a name="L134"></a><tt class="py-lineno">134</tt> <tt class="py-line"> </tt>
+<a name="PageantConnection.send"></a><div id="PageantConnection.send-def"><a name="L135"></a><tt class="py-lineno">135</tt> <a class="py-toggle" href="#" id="PageantConnection.send-toggle" onclick="return toggle('PageantConnection.send');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.win_pageant.PageantConnection-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">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="PageantConnection.send-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="PageantConnection.send-expanded"><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">_response</tt> <tt class="py-op">=</tt> <tt class="py-name">_query_pageant</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L137"></a><tt class="py-lineno">137</tt> <tt class="py-line"> </tt>
+<a name="PageantConnection.recv"></a><div id="PageantConnection.recv-def"><a name="L138"></a><tt class="py-lineno">138</tt> <a class="py-toggle" href="#" id="PageantConnection.recv-toggle" onclick="return toggle('PageantConnection.recv');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.win_pageant.PageantConnection-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">n</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="PageantConnection.recv-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="PageantConnection.recv-expanded"><a name="L139"></a><tt class="py-lineno">139</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</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="L140"></a><tt class="py-lineno">140</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-string">''</tt> </tt>
+<a name="L141"></a><tt class="py-lineno">141</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 class="py-name">_response</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="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">_response</tt> <tt class="py-op">=</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">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-keyword">if</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-string">''</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">self</tt><tt class="py-op">.</tt><tt class="py-name">_response</tt> <tt class="py-op">=</tt> <tt class="py-name">None</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">ret</tt> </tt>
+</div><a name="L146"></a><tt class="py-lineno">146</tt> <tt class="py-line"> </tt>
+<a name="PageantConnection.close"></a><div id="PageantConnection.close-def"><a name="L147"></a><tt class="py-lineno">147</tt> <a class="py-toggle" href="#" id="PageantConnection.close-toggle" onclick="return toggle('PageantConnection.close');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="paramiko.win_pageant.PageantConnection-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="PageantConnection.close-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="PageantConnection.close-expanded"><a name="L148"></a><tt class="py-lineno">148</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+</div></div><a name="L149"></a><tt class="py-lineno">149</tt> <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<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 Jul 6 18:30:35 2008
+ </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.win_pageant.PageantConnection-class.html b/docs/paramiko.win_pageant.PageantConnection-class.html
new file mode 100644
index 0000000..40eb0af
--- /dev/null
+++ b/docs/paramiko.win_pageant.PageantConnection-class.html
@@ -0,0 +1,257 @@
+<?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.win_pageant.PageantConnection</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.win_pageant-module.html">Module&nbsp;win_pageant</a> ::
+ Class&nbsp;PageantConnection
+ </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.win_pageant.PageantConnection-class.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class PageantConnection</h1><p class="nomargin-top"><span class="codelink"><a href="paramiko.win_pageant-pysrc.html#PageantConnection">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+object --+
+ |
+ <strong class="uidshort">PageantConnection</strong>
+</pre>
+
+<hr />
+<p>Mock &quot;connection&quot; to an agent which roughly approximates the
+ behavior of a unix local-domain socket (as used by Agent). Requests are
+ sent to the pageant daemon via special Windows magick, and responses are
+ buffered back for subsequent reads.</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.win_pageant.PageantConnection-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</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.win_pageant-pysrc.html#PageantConnection.__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="send"></a><span class="summary-sig-name">send</span>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">data</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.win_pageant-pysrc.html#PageantConnection.send">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="recv"></a><span class="summary-sig-name">recv</span>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">n</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.win_pageant-pysrc.html#PageantConnection.recv">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="close"></a><span class="summary-sig-name">close</span>(<span class="summary-sig-arg">self</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="paramiko.win_pageant-pysrc.html#PageantConnection.close">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>__getattribute__</code>,
+ <code>__hash__</code>,
+ <code>__new__</code>,
+ <code>__reduce__</code>,
+ <code>__reduce_ex__</code>,
+ <code>__repr__</code>,
+ <code>__setattr__</code>,
+ <code>__str__</code>
+ </p>
+ </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>
+ <br /><em class="fname">(Constructor)</em>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="paramiko.win_pageant-pysrc.html#PageantConnection.__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 Jul 6 18:30:31 2008
+ </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/private/__builtin__.object-class.html b/docs/private/__builtin__.object-class.html
deleted file mode 100644
index 1ac54de..0000000
--- a/docs/private/__builtin__.object-class.html
+++ /dev/null
@@ -1,286 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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>__builtin__.object</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- Module&nbsp;__builtin__ ::
- Class&nbsp;object
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/__builtin__.object-class.html">hide&nbsp;private</a>]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="__builtin__.object-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type object</h2>
-
-<dl><dt><b>Known Subclasses:</b></dt>
-<dd>
- <a href="paramiko.BufferedFile-class.html"><code>BufferedFile</code></a>,
- <a href="paramiko.Channel-class.html"><code>Channel</code></a>,
- <a href="paramiko.server.InteractiveQuery-class.html"><code>InteractiveQuery</code></a>,
- <a href="paramiko.Message-class.html"><code>Message</code></a>,
- <a href="paramiko.util.PFilter-class.html"><code>PFilter</code></a>,
- <a href="paramiko.SecurityOptions-class.html"><code>SecurityOptions</code></a>,
- <a href="paramiko.SFTPAttributes-class.html"><code>SFTPAttributes</code></a>,
- <a href="paramiko.SFTPHandle-class.html"><code>SFTPHandle</code></a>,
- <a href="__builtin__.type-class.html"><code>type</code></a>,
- <a href="../private/threading._Verbose-class.html"><code>_Verbose</code></a>,
- <a href="../private/paramiko.AuthHandler-class.html"><code>AuthHandler</code></a>,
- <a href="../private/paramiko.BaseSFTP-class.html"><code>BaseSFTP</code></a>,
- <a href="../private/paramiko.ber.BER-class.html"><code>BER</code></a>,
- <a href="../private/paramiko.logging22.Formatter-class.html"><code>Formatter</code></a>,
- <a href="../private/paramiko.kex_gex.KexGex-class.html"><code>KexGex</code></a>,
- <a href="../private/paramiko.kex_group1.KexGroup1-class.html"><code>KexGroup1</code></a>,
- <a href="../private/paramiko.logging22.logger-class.html"><code>logger</code></a>,
- <a href="../private/paramiko.primes.ModulusPack-class.html"><code>ModulusPack</code></a>,
- <a href="../private/paramiko.Packetizer-class.html"><code>Packetizer</code></a>,
- <a href="../private/paramiko.PKey-class.html"><code>PKey</code></a>,
- <a href="../private/paramiko.pipe.PosixPipe-class.html"><code>PosixPipe</code></a>,
- <a href="../private/paramiko.ServerInterface-class.html"><code>ServerInterface</code></a>,
- <a href="../private/paramiko.SFTPServerInterface-class.html"><code>SFTPServerInterface</code></a>,
- <a href="../private/paramiko.logging22.StreamHandler-class.html"><code>StreamHandler</code></a>,
- <a href="../private/paramiko.pipe.WindowsPipe-class.html"><code>WindowsPipe</code></a>,
- <a href="../private/paramiko.compress.ZlibCompressor-class.html"><code>ZlibCompressor</code></a>,
- <a href="../private/paramiko.compress.ZlibDecompressor-class.html"><code>ZlibDecompressor</code></a></dd></dl>
-
-<hr/>
-
-The most base type
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__init__(...) initializes x; see x.__class__.__doc__ for
-signature</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__repr__() &lt;==&gt; repr(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__str__() &lt;==&gt; str(x)</td></tr>
-</table><br />
-
-
-<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Class Variable Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>type</code></font></td>
- <td><a name="__class__"></a><b><code>__class__</code></b> = <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
-</table><br />
-
-
-<!-- =========== START OF METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Method Details</th></tr>
-</table>
-
-<a name="__init__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-vararg">...</span>)</span>
- <br /><i>(Constructor)</i>
- </h3>
- x.__init__(...) initializes x; see x.__class__.__doc__ for
- signature
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-
-<a name="__delattr__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__delattr__</span>(<span class="sig-vararg">...</span>)</span>
- </h3>
- x.__delattr__('name') &lt;==&gt; del x.name
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-
-<a name="__getattribute__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__getattribute__</span>(<span class="sig-vararg">...</span>)</span>
- </h3>
- x.__getattribute__('name') &lt;==&gt; x.name
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-
-<a name="__hash__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__hash__</span>(<span class=sig-arg>x</span>)</span>
- <br /><i>(Hashing function)</i>
- </h3>
- x.__hash__() &lt;==&gt; hash(x)
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
-<pre class="literalblock">
-hash(x)
-</pre>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="__new__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__new__</span>(<span class=sig-arg>T</span>,
- <span class=sig-arg>S</span>,
- <span class="sig-vararg">...</span>)</span>
- </h3>
- T.__new__(S, ...) -&gt; a new object with type S, a subtype of T
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
-<pre class="literalblock">
-a new object with type S, a subtype of T
-</pre>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="__reduce__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__reduce__</span>(<span class="sig-vararg">...</span>)</span>
- </h3>
- helper for pickle
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-
-<a name="__reduce_ex__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__reduce_ex__</span>(<span class="sig-vararg">...</span>)</span>
- </h3>
- helper for pickle
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-
-<a name="__repr__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__repr__</span>(<span class=sig-arg>x</span>)</span>
- <br /><i>(Representation operator)</i>
- </h3>
- x.__repr__() &lt;==&gt; repr(x)
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
-<pre class="literalblock">
-repr(x)
-</pre>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="__setattr__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__setattr__</span>(<span class="sig-vararg">...</span>)</span>
- </h3>
- x.__setattr__('name', value) &lt;==&gt; x.name = value
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-
-<a name="__str__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__str__</span>(<span class=sig-arg>x</span>)</span>
- <br /><i>(Informal representation operator)</i>
- </h3>
- x.__str__() &lt;==&gt; str(x)
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
-<pre class="literalblock">
-str(x)
-</pre>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:46 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/__builtin__.type-class.html b/docs/private/__builtin__.type-class.html
deleted file mode 100644
index 0f1957a..0000000
--- a/docs/private/__builtin__.type-class.html
+++ /dev/null
@@ -1,504 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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>__builtin__.type</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- Module&nbsp;__builtin__ ::
- Class&nbsp;type
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/__builtin__.type-class.html">hide&nbsp;private</a>]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="__builtin__.type-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type type</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
- <b>type</b>
-</pre><br />
-
-<hr/>
-
-type(object) -&gt; the object's type type(name, bases, dict) -&gt; a
-new type
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.type-class.html#__call__" class="summary-sig-name"><code>__call__</code></a>(<span class=summary-sig-arg>x</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__call__(...) &lt;==&gt; x(...)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.type-class.html#__cmp__" class="summary-sig-name"><code>__cmp__</code></a>(<span class=summary-sig-arg>x</span>,
- <span class=summary-sig-arg>y</span>)</span></code>
-<br />
-x.__cmp__(y) &lt;==&gt; cmp(x,y)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.type-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.type-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.type-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.type-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.type-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__repr__() &lt;==&gt; repr(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.type-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">list of immediate subclasses</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.type-class.html#__subclasses__" class="summary-sig-name"><code>__subclasses__</code></a>()</span></code>
-<br />
-__subclasses__() -&gt; list of immediate subclasses</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">list</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.type-class.html#mro" class="summary-sig-name"><code>mro</code></a>()</span></code>
-<br />
-return a type's method resolution order</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__init__(...) initializes x; see x.__class__.__doc__ for
-signature</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__str__() &lt;==&gt; str(x)</td></tr>
-</table><br />
-
-
-<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Class Variable Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>type</code></font></td>
- <td><a name="__base__"></a><b><code>__base__</code></b> = <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>tuple</code></font></td>
-<td><b><a href="__builtin__.type-class.html#__bases__"><code>__bases__</code></a></b> = <span title="(&lt;type 'object'&gt;,)"><code>(&lt;type&nbsp;'object'&gt;,) </code>
-</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="__builtin__.type-class.html#__basicsize__"><code>__basicsize__</code></a></b> = <span title="420">420&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="__builtin__.type-class.html#__dictoffset__"><code>__dictoffset__</code></a></b> = <span title="132">132&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="__builtin__.type-class.html#__flags__"><code>__flags__</code></a></b> = <span title="21995">21995&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="__builtin__.type-class.html#__itemsize__"><code>__itemsize__</code></a></b> = <span title="20">20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>tuple</code></font></td>
-<td><b><a href="__builtin__.type-class.html#__mro__"><code>__mro__</code></a></b> = <span title="(&lt;type 'type'&gt;, &lt;type 'object'&gt;)"><code>(&lt;type&nbsp;'type'&gt;,&nbsp;&lt;type&nbsp;'object'&gt;) </code>
-</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
-<td><b><a href="__builtin__.type-class.html#__name__"><code>__name__</code></a></b> = <span title="'type'"><code><span class="variable-quote">'</span>type<span class="variable-quote">'</span> </code>
-</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="__builtin__.type-class.html#__weakrefoffset__"><code>__weakrefoffset__</code></a></b> = <span title="184">184&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-</table><br />
-
-
-<!-- =========== START OF METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Method Details</th></tr>
-</table>
-
-<a name="__call__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__call__</span>(<span class=sig-arg>x</span>,
- <span class="sig-vararg">...</span>)</span>
- <br /><i>(Call operator)</i>
- </h3>
- x.__call__(...) &lt;==&gt; x(...)
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
-<pre class="literalblock">
-x(...)
-</pre>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="__cmp__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__cmp__</span>(<span class=sig-arg>x</span>,
- <span class=sig-arg>y</span>)</span>
- <br /><i>(Comparison operator)</i>
- </h3>
- x.__cmp__(y) &lt;==&gt; cmp(x,y)
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
-<pre class="literalblock">
-cmp(x,y)
-</pre>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="__delattr__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__delattr__</span>(<span class="sig-vararg">...</span>)</span>
- </h3>
- x.__delattr__('name') &lt;==&gt; del x.name
- <dl><dt></dt><dd>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="__builtin__.object-class.html#__delattr__"><code>__builtin__.object.__delattr__</code></a></dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="__getattribute__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__getattribute__</span>(<span class="sig-vararg">...</span>)</span>
- </h3>
- x.__getattribute__('name') &lt;==&gt; x.name
- <dl><dt></dt><dd>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="__builtin__.object-class.html#__getattribute__"><code>__builtin__.object.__getattribute__</code></a></dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="__hash__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__hash__</span>(<span class=sig-arg>x</span>)</span>
- <br /><i>(Hashing function)</i>
- </h3>
- x.__hash__() &lt;==&gt; hash(x)
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
-<pre class="literalblock">
-hash(x)
-</pre>
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="__builtin__.object-class.html#__hash__"><code>__builtin__.object.__hash__</code></a></dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="__new__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__new__</span>(<span class=sig-arg>T</span>,
- <span class=sig-arg>S</span>,
- <span class="sig-vararg">...</span>)</span>
- </h3>
- T.__new__(S, ...) -&gt; a new object with type S, a subtype of T
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
-<pre class="literalblock">
-a new object with type S, a subtype of T
-</pre>
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="__builtin__.object-class.html#__new__"><code>__builtin__.object.__new__</code></a></dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="__repr__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__repr__</span>(<span class=sig-arg>x</span>)</span>
- <br /><i>(Representation operator)</i>
- </h3>
- x.__repr__() &lt;==&gt; repr(x)
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
-<pre class="literalblock">
-repr(x)
-</pre>
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="__builtin__.object-class.html#__repr__"><code>__builtin__.object.__repr__</code></a></dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="__setattr__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__setattr__</span>(<span class="sig-vararg">...</span>)</span>
- </h3>
- x.__setattr__('name', value) &lt;==&gt; x.name = value
- <dl><dt></dt><dd>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="__builtin__.object-class.html#__setattr__"><code>__builtin__.object.__setattr__</code></a></dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="__subclasses__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__subclasses__</span>()</span>
- </h3>
- __subclasses__() -&gt; list of immediate subclasses
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
-list of immediate subclasses </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="mro"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">mro</span>()</span>
- </h3>
- return a type's method resolution order
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
-list </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF CLASS VARIABLE DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Class Variable Details</th></tr>
-</table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="__bases__"></a>
-<h3>__bases__</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>tuple</code>
-
- </dd>
-<span title="(&lt;type 'object'&gt;,)"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-(&lt;type 'object'&gt;,) </pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="__basicsize__"></a>
-<h3>__basicsize__</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="420"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-420&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="__dictoffset__"></a>
-<h3>__dictoffset__</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="132"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-132&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="__flags__"></a>
-<h3>__flags__</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="21995"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-21995&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="__itemsize__"></a>
-<h3>__itemsize__</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="20"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="__mro__"></a>
-<h3>__mro__</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>tuple</code>
-
- </dd>
-<span title="(&lt;type 'type'&gt;, &lt;type 'object'&gt;)"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-(&lt;type 'type'&gt;, &lt;type 'object'&gt;) </pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="__name__"></a>
-<h3>__name__</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>str</code>
-
- </dd>
-<span title="'type'"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-<span class="variable-quote">'</span>type<span class="variable-quote">'</span> </pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="__weakrefoffset__"></a>
-<h3>__weakrefoffset__</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="184"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-184&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/epydoc.css b/docs/private/epydoc.css
deleted file mode 100644
index 46080bd..0000000
--- a/docs/private/epydoc.css
+++ /dev/null
@@ -1,100 +0,0 @@
-
-/* Body color */
-body { background: #ffffff; color: #000000; }
-
-/* Tables */
-table.summary, table.details, table.index
- { background: #e8f0f8; color: #000000; }
-tr.summary, tr.details, tr.index
- { background: #70b0f0; color: #000000;
- text-align: left; font-size: 120%; }
-tr.group { background: #c0e0f8; color: #000000;
- text-align: left; font-size: 120%;
- font-style: italic; }
-
-/* Documentation page titles */
-h2.module { margin-top: 0.2em; }
-h2.class { margin-top: 0.2em; }
-
-/* Headings */
-h1.heading { font-size: +140%; font-style: italic;
- font-weight: bold; }
-h2.heading { font-size: +125%; font-style: italic;
- font-weight: bold; }
-h3.heading { font-size: +110%; font-style: italic;
- font-weight: normal; }
-
-/* Base tree */
-pre.base-tree { font-size: 80%; margin: 0; }
-
-/* Details Sections */
-table.func-details { background: #e8f0f8; color: #000000;
- border: 2px groove #c0d0d0;
- padding: 0 1em 0 1em; margin: 0.4em 0 0 0; }
-h3.func-detail { background: transparent; color: #000000;
- margin: 0 0 1em 0; }
-
-table.var-details { background: #e8f0f8; color: #000000;
- border: 2px groove #c0d0d0;
- padding: 0 1em 0 1em; margin: 0.4em 0 0 0; }
-h3.var-details { background: transparent; color: #000000;
- margin: 0 0 1em 0; }
-
-/* Function signatures */
-.sig { background: transparent; color: #000000;
- font-weight: bold; }
-.sig-name { background: transparent; color: #006080; }
-.sig-arg, .sig-kwarg, .sig-vararg
- { background: transparent; color: #008060; }
-.sig-default { background: transparent; color: #602000; }
-.summary-sig { background: transparent; color: #000000; }
-.summary-sig-name { background: transparent; color: #204080; }
-.summary-sig-arg, .summary-sig-kwarg, .summary-sig-vararg
- { background: transparent; color: #008060; }
-
-/* Doctest blocks */
-.py-src { background: transparent; color: #000000; }
-.py-prompt { background: transparent; color: #005050;
- font-weight: bold;}
-.py-string { background: transparent; color: #006030; }
-.py-comment { background: transparent; color: #003060; }
-.py-keyword { background: transparent; color: #600000; }
-.py-output { background: transparent; color: #404040; }
-pre.doctestblock { background: #f4faff; color: #000000;
- padding: .5em; margin: 1em;
- border: 1px solid #708890; }
-table pre.doctestblock
- { background: #dce4ec; color: #000000;
- padding: .5em; margin: 1em;
- border: 1px solid #708890; }
-
-/* Variable values */
-pre.variable { background: #dce4ec; color: #000000;
- padding: .5em; margin: 0;
- border: 1px solid #708890; }
-.variable-linewrap { background: transparent; color: #604000; }
-.variable-ellipsis { background: transparent; color: #604000; }
-.variable-quote { background: transparent; color: #604000; }
-.re { background: transparent; color: #000000; }
-.re-char { background: transparent; color: #006030; }
-.re-op { background: transparent; color: #600000; }
-.re-group { background: transparent; color: #003060; }
-.re-ref { background: transparent; color: #404040; }
-
-/* Navigation bar */
-table.navbar { background: #a0c0ff; color: #0000ff;
- border: 2px groove #c0d0d0; }
-th.navbar { background: #a0c0ff; color: #0000ff; }
-th.navselect { background: #70b0ff; color: #000000; }
-.nomargin { margin: 0; }
-
-/* Links */
-a:link { background: transparent; color: #0000ff; }
-a:visited { background: transparent; color: #204080; }
-a.navbar:link { background: transparent; color: #0000ff;
- text-decoration: none; }
-a.navbar:visited { background: transparent; color: #204080;
- text-decoration: none; }
-
-/* Lists */
-ul { margin-top: 0; }
diff --git a/docs/private/exceptions.Exception-class.html b/docs/private/exceptions.Exception-class.html
deleted file mode 100644
index 4b99d99..0000000
--- a/docs/private/exceptions.Exception-class.html
+++ /dev/null
@@ -1,87 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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>exceptions.Exception</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- Module&nbsp;exceptions ::
- Class&nbsp;Exception
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/exceptions.Exception-class.html">hide&nbsp;private</a>]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="exceptions.Exception-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Class Exception</h2>
-
-<dl><dt><b>Known Subclasses:</b></dt>
-<dd>
- <a href="paramiko.SFTPError-class.html"><code>SFTPError</code></a>,
- <a href="paramiko.SSHException-class.html"><code>SSHException</code></a>,
- <a href="../private/paramiko.ber.BERException-class.html"><code>BERException</code></a>,
- <a href="../private/paramiko.packet.NeedRekeyException-class.html"><code>NeedRekeyException</code></a></dd></dl>
-
-<hr/>
-
-Common base class for all exceptions.
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__init__"></a><span class="summary-sig"><span class="summary-sig-name">__init__</span>(<span class="summary-sig-vararg">...</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__getitem__"></a><span class="summary-sig"><span class="summary-sig-name">__getitem__</span>(<span class="summary-sig-vararg">...</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__str__"></a><span class="summary-sig"><span class="summary-sig-name">__str__</span>(<span class="summary-sig-vararg">...</span>)</span></code>
-</td></tr>
-</table><br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/frames.html b/docs/private/frames.html
deleted file mode 100644
index 77678a0..0000000
--- a/docs/private/frames.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
-<html>
-<head>
- <title> API Documentation </title>
-</head>
-<frameset cols="20%,80%">
- <frameset rows="30%,70%">
- <frame src="toc.html" name="moduleListFrame">
- <frame src="toc-everything.html" name="moduleFrame">
- </frameset>
- <frame src="paramiko-module.html" name="mainFrame">
-</frameset>
-</html>
diff --git a/docs/private/index.html b/docs/private/index.html
deleted file mode 100644
index 77678a0..0000000
--- a/docs/private/index.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
-<html>
-<head>
- <title> API Documentation </title>
-</head>
-<frameset cols="20%,80%">
- <frameset rows="30%,70%">
- <frame src="toc.html" name="moduleListFrame">
- <frame src="toc-everything.html" name="moduleFrame">
- </frameset>
- <frame src="paramiko-module.html" name="mainFrame">
-</frameset>
-</html>
diff --git a/docs/private/indices.html b/docs/private/indices.html
deleted file mode 100644
index 752a39a..0000000
--- a/docs/private/indices.html
+++ /dev/null
@@ -1,1635 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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>Index</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th bgcolor="#70b0f0" class="navselect">&nbsp;&nbsp;&nbsp;Index&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/indices.html">hide&nbsp;private</a>]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="indices.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-<br />
-
-<!-- =========== START OF IDENTIFIER INDEX =========== -->
-<table class="index" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="index">
- <th colspan="2">Identifier Index</th></tr>
- <tr><td width="15%"><a href="../private/paramiko-module.html#__author__"><code>__author__</code></a></td>
- <td>Variable in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.object-class.html"><code>object</code></a></td>
- <td>Class in module <code>__builtin__</code></td></tr>
- <tr><td width="15%"><a href="__builtin__.type-class.html#__bases__"><code>__bases__</code></a></td>
- <td>Variable in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.type-class.html#__basicsize__"><code>__basicsize__</code></a></td>
- <td>Variable in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
- <tr><td width="15%"><a href="../private/threading.Thread-class.html#__bootstrap"><code>__bootstrap</code></a></td>
- <td>Method in class <a href="threading.Thread-class.html"><code>threading.Thread</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.type-class.html#__call__"><code>__call__</code></a></td>
- <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.compress.ZlibCompressor-class.html#__call__"><code>__call__</code></a></td>
- <td>Method in class <a href="../private/paramiko.compress.ZlibCompressor-class.html"><code>paramiko.compress.ZlibCompressor</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.compress.ZlibDecompressor-class.html#__call__"><code>__call__</code></a></td>
- <td>Method in class <a href="../private/paramiko.compress.ZlibDecompressor-class.html"><code>paramiko.compress.ZlibDecompressor</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.type-class.html"><code>type</code></a></td>
- <td>Class in module <code>__builtin__</code></td></tr>
- <tr><td width="15%"><a href="__builtin__.type-class.html#__cmp__"><code>__cmp__</code></a></td>
- <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.PKey-class.html#__cmp__"><code>__cmp__</code></a></td>
- <td>Method in class <a href="../private/paramiko.PKey-class.html"><code>paramiko.PKey</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko-module.html#__date__"><code>__date__</code></a></td>
- <td>Variable in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BufferedFile-class.html#__del__"><code>__del__</code></a></td>
- <td>Method in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#__del__"><code>__del__</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Packetizer-class.html#__del__"><code>__del__</code></a></td>
- <td>Method in class <a href="../private/paramiko.Packetizer-class.html"><code>paramiko.Packetizer</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPClient-class.html#__del__"><code>__del__</code></a></td>
- <td>Method in class <a href="paramiko.SFTPClient-class.html"><code>paramiko.SFTPClient</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPFile-class.html#__del__"><code>__del__</code></a></td>
- <td>Method in class <a href="paramiko.SFTPFile-class.html"><code>paramiko.SFTPFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#__del__"><code>__del__</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.object-class.html#__delattr__"><code>__delattr__</code></a></td>
- <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.type-class.html#__delattr__"><code>__delattr__</code></a></td>
- <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
- <tr><td width="15%"><a href="../private/threading.Thread-class.html#__delete"><code>__delete</code></a></td>
- <td>Method in class <a href="threading.Thread-class.html"><code>threading.Thread</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.type-class.html#__dictoffset__"><code>__dictoffset__</code></a></td>
- <td>Variable in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.type-class.html#__flags__"><code>__flags__</code></a></td>
- <td>Variable in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.object-class.html#__getattribute__"><code>__getattribute__</code></a></td>
- <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.type-class.html#__getattribute__"><code>__getattribute__</code></a></td>
- <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
- <tr><td width="15%"><a href="exceptions.Exception-class.html#__getitem__"><code>__getitem__</code></a></td>
- <td>Method in class <a href="exceptions.Exception-class.html"><code>exceptions.Exception</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.object-class.html#__hash__"><code>__hash__</code></a></td>
- <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.type-class.html#__hash__"><code>__hash__</code></a></td>
- <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.DSSKey-class.html#__hash__"><code>__hash__</code></a></td>
- <td>Method in class <a href="paramiko.DSSKey-class.html"><code>paramiko.DSSKey</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.RSAKey-class.html#__hash__"><code>__hash__</code></a></td>
- <td>Method in class <a href="paramiko.RSAKey-class.html"><code>paramiko.RSAKey</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.object-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>
- <tr><td width="15%"><a href="exceptions.Exception-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="exceptions.Exception-class.html"><code>exceptions.Exception</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Agent-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="paramiko.Agent-class.html"><code>paramiko.Agent</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.AgentKey-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="paramiko.AgentKey-class.html"><code>paramiko.AgentKey</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.AuthHandler-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="../private/paramiko.AuthHandler-class.html"><code>paramiko.AuthHandler</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BadAuthenticationType-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="paramiko.BadAuthenticationType-class.html"><code>paramiko.BadAuthenticationType</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.BaseSFTP-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="../private/paramiko.BaseSFTP-class.html"><code>paramiko.BaseSFTP</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BufferedFile-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.ChannelFile-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="../private/paramiko.ChannelFile-class.html"><code>paramiko.ChannelFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.DSSKey-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="paramiko.DSSKey-class.html"><code>paramiko.DSSKey</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Message-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="paramiko.Message-class.html"><code>paramiko.Message</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.PKey-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="../private/paramiko.PKey-class.html"><code>paramiko.PKey</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Packetizer-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="../private/paramiko.Packetizer-class.html"><code>paramiko.Packetizer</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.RSAKey-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="paramiko.RSAKey-class.html"><code>paramiko.RSAKey</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPAttributes-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="paramiko.SFTPAttributes-class.html"><code>paramiko.SFTPAttributes</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPClient-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="paramiko.SFTPClient-class.html"><code>paramiko.SFTPClient</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPFile-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="paramiko.SFTPFile-class.html"><code>paramiko.SFTPFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPHandle-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="paramiko.SFTPHandle-class.html"><code>paramiko.SFTPHandle</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPServer-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="paramiko.SFTPServer-class.html"><code>paramiko.SFTPServer</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SFTPServerInterface-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="../private/paramiko.SFTPServerInterface-class.html"><code>paramiko.SFTPServerInterface</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SecurityOptions-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="paramiko.SecurityOptions-class.html"><code>paramiko.SecurityOptions</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SubsystemHandler-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="paramiko.SubsystemHandler-class.html"><code>paramiko.SubsystemHandler</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.ber.BER-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="../private/paramiko.ber.BER-class.html"><code>paramiko.ber.BER</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.channel.ChannelStderrFile-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="../private/paramiko.channel.ChannelStderrFile-class.html"><code>paramiko.channel.ChannelStderrFile</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.compress.ZlibCompressor-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="../private/paramiko.compress.ZlibCompressor-class.html"><code>paramiko.compress.ZlibCompressor</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.compress.ZlibDecompressor-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="../private/paramiko.compress.ZlibDecompressor-class.html"><code>paramiko.compress.ZlibDecompressor</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.kex_gex.KexGex-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="../private/paramiko.kex_gex.KexGex-class.html"><code>paramiko.kex_gex.KexGex</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.kex_group1.KexGroup1-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="../private/paramiko.kex_group1.KexGroup1-class.html"><code>paramiko.kex_group1.KexGroup1</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.logging22.Formatter-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="../private/paramiko.logging22.Formatter-class.html"><code>paramiko.logging22.Formatter</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.logging22.StreamHandler-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="../private/paramiko.logging22.StreamHandler-class.html"><code>paramiko.logging22.StreamHandler</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.logging22.logger-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="../private/paramiko.logging22.logger-class.html"><code>paramiko.logging22.logger</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.pipe.PosixPipe-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="../private/paramiko.pipe.PosixPipe-class.html"><code>paramiko.pipe.PosixPipe</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.pipe.WindowsPipe-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="../private/paramiko.pipe.WindowsPipe-class.html"><code>paramiko.pipe.WindowsPipe</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.primes.ModulusPack-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="../private/paramiko.primes.ModulusPack-class.html"><code>paramiko.primes.ModulusPack</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.server.InteractiveQuery-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="paramiko.server.InteractiveQuery-class.html"><code>paramiko.server.InteractiveQuery</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.ssh_exception.PartialAuthentication-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="../private/paramiko.ssh_exception.PartialAuthentication-class.html"><code>paramiko.ssh_exception.PartialAuthentication</code></a></td></tr>
- <tr><td width="15%"><a href="threading.Thread-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="threading.Thread-class.html"><code>threading.Thread</code></a></td></tr>
- <tr><td width="15%"><a href="../private/threading._Verbose-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="../private/threading._Verbose-class.html"><code>threading._Verbose</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.type-class.html#__itemsize__"><code>__itemsize__</code></a></td>
- <td>Variable in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BufferedFile-class.html#__iter__"><code>__iter__</code></a></td>
- <td>Method in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko-module.html#__license__"><code>__license__</code></a></td>
- <td>Variable in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.type-class.html#__mro__"><code>__mro__</code></a></td>
- <td>Variable in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.type-class.html#__name__"><code>__name__</code></a></td>
- <td>Variable in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.object-class.html#__new__"><code>__new__</code></a></td>
- <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.type-class.html#__new__"><code>__new__</code></a></td>
- <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.object-class.html#__reduce__"><code>__reduce__</code></a></td>
- <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.object-class.html#__reduce_ex__"><code>__reduce_ex__</code></a></td>
- <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.object-class.html#__repr__"><code>__repr__</code></a></td>
- <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.type-class.html#__repr__"><code>__repr__</code></a></td>
- <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#__repr__"><code>__repr__</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.ChannelFile-class.html#__repr__"><code>__repr__</code></a></td>
- <td>Method in class <a href="../private/paramiko.ChannelFile-class.html"><code>paramiko.ChannelFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Message-class.html#__repr__"><code>__repr__</code></a></td>
- <td>Method in class <a href="paramiko.Message-class.html"><code>paramiko.Message</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPAttributes-class.html#__repr__"><code>__repr__</code></a></td>
- <td>Method in class <a href="paramiko.SFTPAttributes-class.html"><code>paramiko.SFTPAttributes</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SecurityOptions-class.html#__repr__"><code>__repr__</code></a></td>
- <td>Method in class <a href="paramiko.SecurityOptions-class.html"><code>paramiko.SecurityOptions</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#__repr__"><code>__repr__</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.ber.BER-class.html#__repr__"><code>__repr__</code></a></td>
- <td>Method in class <a href="../private/paramiko.ber.BER-class.html"><code>paramiko.ber.BER</code></a></td></tr>
- <tr><td width="15%"><a href="threading.Thread-class.html#__repr__"><code>__repr__</code></a></td>
- <td>Method in class <a href="threading.Thread-class.html"><code>threading.Thread</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.object-class.html#__setattr__"><code>__setattr__</code></a></td>
- <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.type-class.html#__setattr__"><code>__setattr__</code></a></td>
- <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SecurityOptions-class.html#__slots__"><code>__slots__</code></a></td>
- <td>Variable in class <a href="paramiko.SecurityOptions-class.html"><code>paramiko.SecurityOptions</code></a></td></tr>
- <tr><td width="15%"><a href="../private/threading.Thread-class.html#__stop"><code>__stop</code></a></td>
- <td>Method in class <a href="threading.Thread-class.html"><code>threading.Thread</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.object-class.html#__str__"><code>__str__</code></a></td>
- <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>
- <tr><td width="15%"><a href="exceptions.Exception-class.html#__str__"><code>__str__</code></a></td>
- <td>Method in class <a href="exceptions.Exception-class.html"><code>exceptions.Exception</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.AgentKey-class.html#__str__"><code>__str__</code></a></td>
- <td>Method in class <a href="paramiko.AgentKey-class.html"><code>paramiko.AgentKey</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BadAuthenticationType-class.html#__str__"><code>__str__</code></a></td>
- <td>Method in class <a href="paramiko.BadAuthenticationType-class.html"><code>paramiko.BadAuthenticationType</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.DSSKey-class.html#__str__"><code>__str__</code></a></td>
- <td>Method in class <a href="paramiko.DSSKey-class.html"><code>paramiko.DSSKey</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Message-class.html#__str__"><code>__str__</code></a></td>
- <td>Method in class <a href="paramiko.Message-class.html"><code>paramiko.Message</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.PKey-class.html#__str__"><code>__str__</code></a></td>
- <td>Method in class <a href="../private/paramiko.PKey-class.html"><code>paramiko.PKey</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.RSAKey-class.html#__str__"><code>__str__</code></a></td>
- <td>Method in class <a href="paramiko.RSAKey-class.html"><code>paramiko.RSAKey</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPAttributes-class.html#__str__"><code>__str__</code></a></td>
- <td>Method in class <a href="paramiko.SFTPAttributes-class.html"><code>paramiko.SFTPAttributes</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.ber.BER-class.html#__str__"><code>__str__</code></a></td>
- <td>Method in class <a href="../private/paramiko.ber.BER-class.html"><code>paramiko.ber.BER</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.type-class.html#__subclasses__"><code>__subclasses__</code></a></td>
- <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko-module.html#__version__"><code>__version__</code></a></td>
- <td>Variable in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko-module.html#__version_info__"><code>__version_info__</code></a></td>
- <td>Variable in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.type-class.html#__weakrefoffset__"><code>__weakrefoffset__</code></a></td>
- <td>Variable in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Transport-class.html#_activate_inbound"><code>_activate_inbound</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Transport-class.html#_activate_outbound"><code>_activate_outbound</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.transport-module.html#_active_threads"><code>_active_threads</code></a></td>
- <td>Variable in module <a href="paramiko.transport-module.html"><code>paramiko.transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Message-class.html#_add"><code>_add</code></a></td>
- <td>Method in class <a href="paramiko.Message-class.html"><code>paramiko.Message</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SFTPClient-class.html#_adjust_cwd"><code>_adjust_cwd</code></a></td>
- <td>Method in class <a href="paramiko.SFTPClient-class.html"><code>paramiko.SFTPClient</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SFTPClient-class.html#_async_request"><code>_async_request</code></a></td>
- <td>Method in class <a href="paramiko.SFTPClient-class.html"><code>paramiko.SFTPClient</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SFTPFile-class.html#_async_response"><code>_async_response</code></a></td>
- <td>Method in class <a href="paramiko.SFTPFile-class.html"><code>paramiko.SFTPFile</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Transport-class.html#_auth_trigger"><code>_auth_trigger</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Packetizer-class.html#_build_packet"><code>_build_packet</code></a></td>
- <td>Method in class <a href="../private/paramiko.Packetizer-class.html"><code>paramiko.Packetizer</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Transport-class.html#_channel_handler_table"><code>_channel_handler_table</code></a></td>
- <td>Variable in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Channel-class.html#_check_add_window"><code>_check_add_window</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Transport-class.html#_check_banner"><code>_check_banner</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SFTPFile-class.html#_check_exception"><code>_check_exception</code></a></td>
- <td>Method in class <a href="paramiko.SFTPFile-class.html"><code>paramiko.SFTPFile</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SFTPServer-class.html#_check_file"><code>_check_file</code></a></td>
- <td>Method in class <a href="paramiko.SFTPServer-class.html"><code>paramiko.SFTPServer</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Packetizer-class.html#_check_keepalive"><code>_check_keepalive</code></a></td>
- <td>Method in class <a href="../private/paramiko.Packetizer-class.html"><code>paramiko.Packetizer</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Transport-class.html#_cipher_info"><code>_cipher_info</code></a></td>
- <td>Variable in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.PKey-class.html#_CIPHER_TABLE"><code>_CIPHER_TABLE</code></a></td>
- <td>Variable in class <a href="../private/paramiko.PKey-class.html"><code>paramiko.PKey</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.PKey-class.html#_CIPHER_TABLE"><code>_CIPHER_TABLE</code></a></td>
- <td>Variable in class <a href="../private/paramiko.PKey-class.html"><code>paramiko.PKey</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.PKey-class.html#_CIPHER_TABLE"><code>_CIPHER_TABLE</code></a></td>
- <td>Variable in class <a href="../private/paramiko.PKey-class.html"><code>paramiko.PKey</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.PKey-class.html#_CIPHER_TABLE"><code>_CIPHER_TABLE</code></a></td>
- <td>Variable in class <a href="../private/paramiko.PKey-class.html"><code>paramiko.PKey</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Transport-class.html#_CLIENT_ID"><code>_CLIENT_ID</code></a></td>
- <td>Variable in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Channel-class.html#_close_internal"><code>_close_internal</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Transport-class.html#_compression_info"><code>_compression_info</code></a></td>
- <td>Variable in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Transport-class.html#_compute_key"><code>_compute_key</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SFTPServer-class.html#_convert_pflags"><code>_convert_pflags</code></a></td>
- <td>Method in class <a href="paramiko.SFTPServer-class.html"><code>paramiko.SFTPServer</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SFTPClient-class.html#_convert_status"><code>_convert_status</code></a></td>
- <td>Method in class <a href="paramiko.SFTPClient-class.html"><code>paramiko.SFTPClient</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SFTPAttributes-class.html#_debug_str"><code>_debug_str</code></a></td>
- <td>Method in class <a href="paramiko.SFTPAttributes-class.html"><code>paramiko.SFTPAttributes</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.BufferedFile-class.html#_DEFAULT_BUFSIZE"><code>_DEFAULT_BUFSIZE</code></a></td>
- <td>Variable in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.BufferedFile-class.html#_DEFAULT_BUFSIZE"><code>_DEFAULT_BUFSIZE</code></a></td>
- <td>Variable in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.BufferedFile-class.html#_DEFAULT_BUFSIZE"><code>_DEFAULT_BUFSIZE</code></a></td>
- <td>Variable in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.BufferedFile-class.html#_DEFAULT_BUFSIZE"><code>_DEFAULT_BUFSIZE</code></a></td>
- <td>Variable in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.AuthHandler-class.html#_disconnect_no_more_auth"><code>_disconnect_no_more_auth</code></a></td>
- <td>Method in class <a href="../private/paramiko.AuthHandler-class.html"><code>paramiko.AuthHandler</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.AuthHandler-class.html#_disconnect_service_not_available"><code>_disconnect_service_not_available</code></a></td>
- <td>Method in class <a href="../private/paramiko.AuthHandler-class.html"><code>paramiko.AuthHandler</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Transport-class.html#_expect_packet"><code>_expect_packet</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Channel-class.html#_feed"><code>_feed</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Channel-class.html#_feed_extended"><code>_feed_extended</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SFTPClient-class.html#_finish_responses"><code>_finish_responses</code></a></td>
- <td>Method in class <a href="paramiko.SFTPClient-class.html"><code>paramiko.SFTPClient</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.file-module.html#_FLAG_APPEND"><code>_FLAG_APPEND</code></a></td>
- <td>Variable in module <a href="paramiko.file-module.html"><code>paramiko.file</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.file-module.html#_FLAG_BINARY"><code>_FLAG_BINARY</code></a></td>
- <td>Variable in module <a href="paramiko.file-module.html"><code>paramiko.file</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.file-module.html#_FLAG_BUFFERED"><code>_FLAG_BUFFERED</code></a></td>
- <td>Variable in module <a href="paramiko.file-module.html"><code>paramiko.file</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.file-module.html#_FLAG_LINE_BUFFERED"><code>_FLAG_LINE_BUFFERED</code></a></td>
- <td>Variable in module <a href="paramiko.file-module.html"><code>paramiko.file</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.file-module.html#_FLAG_READ"><code>_FLAG_READ</code></a></td>
- <td>Variable in module <a href="paramiko.file-module.html"><code>paramiko.file</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.file-module.html#_FLAG_UNIVERSAL_NEWLINE"><code>_FLAG_UNIVERSAL_NEWLINE</code></a></td>
- <td>Variable in module <a href="paramiko.file-module.html"><code>paramiko.file</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.file-module.html#_FLAG_WRITE"><code>_FLAG_WRITE</code></a></td>
- <td>Variable in module <a href="paramiko.file-module.html"><code>paramiko.file</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SFTPAttributes-class.html#_from_msg"><code>_from_msg</code></a></td>
- <td>Method in class <a href="paramiko.SFTPAttributes-class.html"><code>paramiko.SFTPAttributes</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.DSSKey-class.html#_from_private_key_file"><code>_from_private_key_file</code></a></td>
- <td>Method in class <a href="paramiko.DSSKey-class.html"><code>paramiko.DSSKey</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.RSAKey-class.html#_from_private_key_file"><code>_from_private_key_file</code></a></td>
- <td>Method in class <a href="paramiko.RSAKey-class.html"><code>paramiko.RSAKey</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.util-module.html#_g_thread_counter"><code>_g_thread_counter</code></a></td>
- <td>Variable in module <a href="paramiko.util-module.html"><code>paramiko.util</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.util-module.html#_g_thread_ids"><code>_g_thread_ids</code></a></td>
- <td>Variable in module <a href="paramiko.util-module.html"><code>paramiko.util</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.util-module.html#_g_thread_lock"><code>_g_thread_lock</code></a></td>
- <td>Variable in module <a href="paramiko.util-module.html"><code>paramiko.util</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.primes-module.html#_generate_prime"><code>_generate_prime</code></a></td>
- <td>Function in module <a href="../private/paramiko.primes-module.html"><code>paramiko.primes</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.kex_gex.KexGex-class.html#_generate_x"><code>_generate_x</code></a></td>
- <td>Method in class <a href="../private/paramiko.kex_gex.KexGex-class.html"><code>paramiko.kex_gex.KexGex</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.kex_group1.KexGroup1-class.html#_generate_x"><code>_generate_x</code></a></td>
- <td>Method in class <a href="../private/paramiko.kex_group1.KexGroup1-class.html"><code>paramiko.kex_group1.KexGroup1</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Transport-class.html#_get_cipher"><code>_get_cipher</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SecurityOptions-class.html#_get_ciphers"><code>_get_ciphers</code></a></td>
- <td>Method in class <a href="paramiko.SecurityOptions-class.html"><code>paramiko.SecurityOptions</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SecurityOptions-class.html#_get_compression"><code>_get_compression</code></a></td>
- <td>Method in class <a href="paramiko.SecurityOptions-class.html"><code>paramiko.SecurityOptions</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SecurityOptions-class.html#_get_digests"><code>_get_digests</code></a></td>
- <td>Method in class <a href="paramiko.SecurityOptions-class.html"><code>paramiko.SecurityOptions</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SecurityOptions-class.html#_get_kex"><code>_get_kex</code></a></td>
- <td>Method in class <a href="paramiko.SecurityOptions-class.html"><code>paramiko.SecurityOptions</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SecurityOptions-class.html#_get_key_types"><code>_get_key_types</code></a></td>
- <td>Method in class <a href="paramiko.SecurityOptions-class.html"><code>paramiko.SecurityOptions</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Transport-class.html#_get_modulus_pack"><code>_get_modulus_pack</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SFTPHandle-class.html#_get_name"><code>_get_name</code></a></td>
- <td>Method in class <a href="paramiko.SFTPHandle-class.html"><code>paramiko.SFTPHandle</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SFTPHandle-class.html#_get_next_files"><code>_get_next_files</code></a></td>
- <td>Method in class <a href="paramiko.SFTPHandle-class.html"><code>paramiko.SFTPHandle</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.AuthHandler-class.html#_get_session_blob"><code>_get_session_blob</code></a></td>
- <td>Method in class <a href="../private/paramiko.AuthHandler-class.html"><code>paramiko.AuthHandler</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.BufferedFile-class.html#_get_size"><code>_get_size</code></a></td>
- <td>Method in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SFTPFile-class.html#_get_size"><code>_get_size</code></a></td>
- <td>Method in class <a href="paramiko.SFTPFile-class.html"><code>paramiko.SFTPFile</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Transport-class.html#_get_subsystem_handler"><code>_get_subsystem_handler</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Channel-class.html#_handle_close"><code>_handle_close</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Channel-class.html#_handle_eof"><code>_handle_eof</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Channel-class.html#_handle_request"><code>_handle_request</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.AuthHandler-class.html#_handler_table"><code>_handler_table</code></a></td>
- <td>Variable in class <a href="../private/paramiko.AuthHandler-class.html"><code>paramiko.AuthHandler</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Transport-class.html#_handler_table"><code>_handler_table</code></a></td>
- <td>Variable in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.sftp_server-module.html#_hash_class"><code>_hash_class</code></a></td>
- <td>Variable in module <a href="paramiko.sftp_server-module.html"><code>paramiko.sftp_server</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.AuthHandler-class.html#_interactive_query"><code>_interactive_query</code></a></td>
- <td>Method in class <a href="../private/paramiko.AuthHandler-class.html"><code>paramiko.AuthHandler</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.transport-module.html#_join_lingering_threads"><code>_join_lingering_threads</code></a></td>
- <td>Function in module <a href="paramiko.transport-module.html"><code>paramiko.transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Transport-class.html#_kex_info"><code>_kex_info</code></a></td>
- <td>Variable in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Transport-class.html#_key_info"><code>_key_info</code></a></td>
- <td>Variable in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.BaseSFTP-class.html#_log"><code>_log</code></a></td>
- <td>Method in class <a href="../private/paramiko.BaseSFTP-class.html"><code>paramiko.BaseSFTP</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Channel-class.html#_log"><code>_log</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Packetizer-class.html#_log"><code>_log</code></a></td>
- <td>Method in class <a href="../private/paramiko.Packetizer-class.html"><code>paramiko.Packetizer</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Transport-class.html#_log"><code>_log</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.logging22-module.html#_logger"><code>_logger</code></a></td>
- <td>Variable in module <a href="../private/paramiko.logging22-module.html"><code>paramiko.logging22</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Transport-class.html#_mac_info"><code>_mac_info</code></a></td>
- <td>Variable in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Transport-class.html#_modulus_pack"><code>_modulus_pack</code></a></td>
- <td>Variable in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.kex_gex-module.html#_MSG_KEXDH_GEX_GROUP"><code>_MSG_KEXDH_GEX_GROUP</code></a></td>
- <td>Variable in module <a href="../private/paramiko.kex_gex-module.html"><code>paramiko.kex_gex</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.kex_gex-module.html#_MSG_KEXDH_GEX_INIT"><code>_MSG_KEXDH_GEX_INIT</code></a></td>
- <td>Variable in module <a href="../private/paramiko.kex_gex-module.html"><code>paramiko.kex_gex</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.kex_gex-module.html#_MSG_KEXDH_GEX_REPLY"><code>_MSG_KEXDH_GEX_REPLY</code></a></td>
- <td>Variable in module <a href="../private/paramiko.kex_gex-module.html"><code>paramiko.kex_gex</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.kex_gex-module.html#_MSG_KEXDH_GEX_REQUEST"><code>_MSG_KEXDH_GEX_REQUEST</code></a></td>
- <td>Variable in module <a href="../private/paramiko.kex_gex-module.html"><code>paramiko.kex_gex</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.kex_group1-module.html#_MSG_KEXDH_INIT"><code>_MSG_KEXDH_INIT</code></a></td>
- <td>Variable in module <a href="../private/paramiko.kex_group1-module.html"><code>paramiko.kex_group1</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.kex_group1-module.html#_MSG_KEXDH_REPLY"><code>_MSG_KEXDH_REPLY</code></a></td>
- <td>Variable in module <a href="../private/paramiko.kex_group1-module.html"><code>paramiko.kex_group1</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Transport-class.html#_negotiate_keys"><code>_negotiate_keys</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/threading._Verbose-class.html#_note"><code>_note</code></a></td>
- <td>Method in class <a href="../private/threading._Verbose-class.html"><code>threading._Verbose</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SFTPServer-class.html#_open_folder"><code>_open_folder</code></a></td>
- <td>Method in class <a href="paramiko.SFTPServer-class.html"><code>paramiko.SFTPServer</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SFTPAttributes-class.html#_pack"><code>_pack</code></a></td>
- <td>Method in class <a href="paramiko.SFTPAttributes-class.html"><code>paramiko.SFTPAttributes</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Transport-class.html#_parse_channel_open"><code>_parse_channel_open</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Transport-class.html#_parse_channel_open_failure"><code>_parse_channel_open_failure</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Transport-class.html#_parse_channel_open_success"><code>_parse_channel_open_success</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Transport-class.html#_parse_debug"><code>_parse_debug</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Transport-class.html#_parse_disconnect"><code>_parse_disconnect</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Transport-class.html#_parse_global_request"><code>_parse_global_request</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Transport-class.html#_parse_kex_init"><code>_parse_kex_init</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.kex_gex.KexGex-class.html#_parse_kexdh_gex_group"><code>_parse_kexdh_gex_group</code></a></td>
- <td>Method in class <a href="../private/paramiko.kex_gex.KexGex-class.html"><code>paramiko.kex_gex.KexGex</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.kex_gex.KexGex-class.html#_parse_kexdh_gex_init"><code>_parse_kexdh_gex_init</code></a></td>
- <td>Method in class <a href="../private/paramiko.kex_gex.KexGex-class.html"><code>paramiko.kex_gex.KexGex</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.kex_gex.KexGex-class.html#_parse_kexdh_gex_reply"><code>_parse_kexdh_gex_reply</code></a></td>
- <td>Method in class <a href="../private/paramiko.kex_gex.KexGex-class.html"><code>paramiko.kex_gex.KexGex</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.kex_gex.KexGex-class.html#_parse_kexdh_gex_request"><code>_parse_kexdh_gex_request</code></a></td>
- <td>Method in class <a href="../private/paramiko.kex_gex.KexGex-class.html"><code>paramiko.kex_gex.KexGex</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.kex_group1.KexGroup1-class.html#_parse_kexdh_init"><code>_parse_kexdh_init</code></a></td>
- <td>Method in class <a href="../private/paramiko.kex_group1.KexGroup1-class.html"><code>paramiko.kex_group1.KexGroup1</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.kex_group1.KexGroup1-class.html#_parse_kexdh_reply"><code>_parse_kexdh_reply</code></a></td>
- <td>Method in class <a href="../private/paramiko.kex_group1.KexGroup1-class.html"><code>paramiko.kex_group1.KexGroup1</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.primes.ModulusPack-class.html#_parse_modulus"><code>_parse_modulus</code></a></td>
- <td>Method in class <a href="../private/paramiko.primes.ModulusPack-class.html"><code>paramiko.primes.ModulusPack</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Transport-class.html#_parse_newkeys"><code>_parse_newkeys</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Transport-class.html#_parse_request_failure"><code>_parse_request_failure</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Transport-class.html#_parse_request_success"><code>_parse_request_success</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.AuthHandler-class.html#_parse_service_accept"><code>_parse_service_accept</code></a></td>
- <td>Method in class <a href="../private/paramiko.AuthHandler-class.html"><code>paramiko.AuthHandler</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.AuthHandler-class.html#_parse_service_request"><code>_parse_service_request</code></a></td>
- <td>Method in class <a href="../private/paramiko.AuthHandler-class.html"><code>paramiko.AuthHandler</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.AuthHandler-class.html#_parse_userauth_banner"><code>_parse_userauth_banner</code></a></td>
- <td>Method in class <a href="../private/paramiko.AuthHandler-class.html"><code>paramiko.AuthHandler</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.AuthHandler-class.html#_parse_userauth_failure"><code>_parse_userauth_failure</code></a></td>
- <td>Method in class <a href="../private/paramiko.AuthHandler-class.html"><code>paramiko.AuthHandler</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.AuthHandler-class.html#_parse_userauth_info_request"><code>_parse_userauth_info_request</code></a></td>
- <td>Method in class <a href="../private/paramiko.AuthHandler-class.html"><code>paramiko.AuthHandler</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.AuthHandler-class.html#_parse_userauth_info_response"><code>_parse_userauth_info_response</code></a></td>
- <td>Method in class <a href="../private/paramiko.AuthHandler-class.html"><code>paramiko.AuthHandler</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.AuthHandler-class.html#_parse_userauth_request"><code>_parse_userauth_request</code></a></td>
- <td>Method in class <a href="../private/paramiko.AuthHandler-class.html"><code>paramiko.AuthHandler</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.AuthHandler-class.html#_parse_userauth_success"><code>_parse_userauth_success</code></a></td>
- <td>Method in class <a href="../private/paramiko.AuthHandler-class.html"><code>paramiko.AuthHandler</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.util-module.html#_pfilter"><code>_pfilter</code></a></td>
- <td>Variable in module <a href="paramiko.util-module.html"><code>paramiko.util</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.RSAKey-class.html#_pkcs1imify"><code>_pkcs1imify</code></a></td>
- <td>Method in class <a href="paramiko.RSAKey-class.html"><code>paramiko.RSAKey</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Transport-class.html#_preferred_ciphers"><code>_preferred_ciphers</code></a></td>
- <td>Variable in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Transport-class.html#_preferred_compression"><code>_preferred_compression</code></a></td>
- <td>Variable in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Transport-class.html#_preferred_kex"><code>_preferred_kex</code></a></td>
- <td>Variable in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Transport-class.html#_preferred_keys"><code>_preferred_keys</code></a></td>
- <td>Variable in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Transport-class.html#_preferred_macs"><code>_preferred_macs</code></a></td>
- <td>Variable in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SFTPFile-class.html#_prefetch"><code>_prefetch</code></a></td>
- <td>Method in class <a href="paramiko.SFTPFile-class.html"><code>paramiko.SFTPFile</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SFTPServer-class.html#_process"><code>_process</code></a></td>
- <td>Method in class <a href="paramiko.SFTPServer-class.html"><code>paramiko.SFTPServer</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Transport-class.html#_PROTO_ID"><code>_PROTO_ID</code></a></td>
- <td>Variable in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Packetizer-class.html#_py22_read_all"><code>_py22_read_all</code></a></td>
- <td>Method in class <a href="../private/paramiko.Packetizer-class.html"><code>paramiko.Packetizer</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Packetizer-class.html#_py22_read_timeout"><code>_py22_read_timeout</code></a></td>
- <td>Method in class <a href="../private/paramiko.Packetizer-class.html"><code>paramiko.Packetizer</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.BufferedFile-class.html#_read"><code>_read</code></a></td>
- <td>Method in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.ChannelFile-class.html#_read"><code>_read</code></a></td>
- <td>Method in class <a href="../private/paramiko.ChannelFile-class.html"><code>paramiko.ChannelFile</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SFTPFile-class.html#_read"><code>_read</code></a></td>
- <td>Method in class <a href="paramiko.SFTPFile-class.html"><code>paramiko.SFTPFile</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.channel.ChannelStderrFile-class.html#_read"><code>_read</code></a></td>
- <td>Method in class <a href="../private/paramiko.channel.ChannelStderrFile-class.html"><code>paramiko.channel.ChannelStderrFile</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Agent-class.html#_read_all"><code>_read_all</code></a></td>
- <td>Method in class <a href="paramiko.Agent-class.html"><code>paramiko.Agent</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.BaseSFTP-class.html#_read_all"><code>_read_all</code></a></td>
- <td>Method in class <a href="../private/paramiko.BaseSFTP-class.html"><code>paramiko.BaseSFTP</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SFTPServer-class.html#_read_folder"><code>_read_folder</code></a></td>
- <td>Method in class <a href="paramiko.SFTPServer-class.html"><code>paramiko.SFTPServer</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.BaseSFTP-class.html#_read_packet"><code>_read_packet</code></a></td>
- <td>Method in class <a href="../private/paramiko.BaseSFTP-class.html"><code>paramiko.BaseSFTP</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SFTPFile-class.html#_read_prefetch"><code>_read_prefetch</code></a></td>
- <td>Method in class <a href="paramiko.SFTPFile-class.html"><code>paramiko.SFTPFile</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.PKey-class.html#_read_private_key_file"><code>_read_private_key_file</code></a></td>
- <td>Method in class <a href="../private/paramiko.PKey-class.html"><code>paramiko.PKey</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SFTPClient-class.html#_read_response"><code>_read_response</code></a></td>
- <td>Method in class <a href="paramiko.SFTPClient-class.html"><code>paramiko.SFTPClient</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Packetizer-class.html#_read_timeout"><code>_read_timeout</code></a></td>
- <td>Method in class <a href="../private/paramiko.Packetizer-class.html"><code>paramiko.Packetizer</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.BufferedFile-class.html#_record_newline"><code>_record_newline</code></a></td>
- <td>Method in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SFTPClient-class.html#_request"><code>_request</code></a></td>
- <td>Method in class <a href="paramiko.SFTPClient-class.html"><code>paramiko.SFTPClient</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.AuthHandler-class.html#_request_auth"><code>_request_auth</code></a></td>
- <td>Method in class <a href="../private/paramiko.AuthHandler-class.html"><code>paramiko.AuthHandler</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Channel-class.html#_request_failed"><code>_request_failed</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Channel-class.html#_request_success"><code>_request_success</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SFTPServer-class.html#_response"><code>_response</code></a></td>
- <td>Method in class <a href="paramiko.SFTPServer-class.html"><code>paramiko.SFTPServer</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.primes-module.html#_roll_random"><code>_roll_random</code></a></td>
- <td>Function in module <a href="../private/paramiko.primes-module.html"><code>paramiko.primes</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SubsystemHandler-class.html#_run"><code>_run</code></a></td>
- <td>Method in class <a href="paramiko.SubsystemHandler-class.html"><code>paramiko.SubsystemHandler</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SFTPAttributes-class.html#_rwx"><code>_rwx</code></a></td>
- <td>Method in class <a href="paramiko.SFTPAttributes-class.html"><code>paramiko.SFTPAttributes</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.AuthHandler-class.html#_send_auth_result"><code>_send_auth_result</code></a></td>
- <td>Method in class <a href="../private/paramiko.AuthHandler-class.html"><code>paramiko.AuthHandler</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Channel-class.html#_send_eof"><code>_send_eof</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SFTPServer-class.html#_send_handle_response"><code>_send_handle_response</code></a></td>
- <td>Method in class <a href="paramiko.SFTPServer-class.html"><code>paramiko.SFTPServer</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Transport-class.html#_send_kex_init"><code>_send_kex_init</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Agent-class.html#_send_message"><code>_send_message</code></a></td>
- <td>Method in class <a href="paramiko.Agent-class.html"><code>paramiko.Agent</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Transport-class.html#_send_message"><code>_send_message</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.BaseSFTP-class.html#_send_packet"><code>_send_packet</code></a></td>
- <td>Method in class <a href="../private/paramiko.BaseSFTP-class.html"><code>paramiko.BaseSFTP</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.BaseSFTP-class.html#_send_server_version"><code>_send_server_version</code></a></td>
- <td>Method in class <a href="../private/paramiko.BaseSFTP-class.html"><code>paramiko.BaseSFTP</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SFTPServer-class.html#_send_status"><code>_send_status</code></a></td>
- <td>Method in class <a href="paramiko.SFTPServer-class.html"><code>paramiko.SFTPServer</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Transport-class.html#_send_user_message"><code>_send_user_message</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.BaseSFTP-class.html#_send_version"><code>_send_version</code></a></td>
- <td>Method in class <a href="../private/paramiko.BaseSFTP-class.html"><code>paramiko.BaseSFTP</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SecurityOptions-class.html#_set"><code>_set</code></a></td>
- <td>Method in class <a href="paramiko.SecurityOptions-class.html"><code>paramiko.SecurityOptions</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SecurityOptions-class.html#_set_ciphers"><code>_set_ciphers</code></a></td>
- <td>Method in class <a href="paramiko.SecurityOptions-class.html"><code>paramiko.SecurityOptions</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Channel-class.html#_set_closed"><code>_set_closed</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SecurityOptions-class.html#_set_compression"><code>_set_compression</code></a></td>
- <td>Method in class <a href="paramiko.SecurityOptions-class.html"><code>paramiko.SecurityOptions</code></a></td></tr>
- <tr><td width="15%"><a href="../private/threading.Thread-class.html#_set_daemon"><code>_set_daemon</code></a></td>
- <td>Method in class <a href="threading.Thread-class.html"><code>threading.Thread</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SecurityOptions-class.html#_set_digests"><code>_set_digests</code></a></td>
- <td>Method in class <a href="paramiko.SecurityOptions-class.html"><code>paramiko.SecurityOptions</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SFTPHandle-class.html#_set_files"><code>_set_files</code></a></td>
- <td>Method in class <a href="paramiko.SFTPHandle-class.html"><code>paramiko.SFTPHandle</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Transport-class.html#_set_K_H"><code>_set_K_H</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SecurityOptions-class.html#_set_kex"><code>_set_kex</code></a></td>
- <td>Method in class <a href="paramiko.SecurityOptions-class.html"><code>paramiko.SecurityOptions</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SecurityOptions-class.html#_set_key_types"><code>_set_key_types</code></a></td>
- <td>Method in class <a href="paramiko.SecurityOptions-class.html"><code>paramiko.SecurityOptions</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.BufferedFile-class.html#_set_mode"><code>_set_mode</code></a></td>
- <td>Method in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SFTPHandle-class.html#_set_name"><code>_set_name</code></a></td>
- <td>Method in class <a href="paramiko.SFTPHandle-class.html"><code>paramiko.SFTPHandle</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Channel-class.html#_set_remote_channel"><code>_set_remote_channel</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Channel-class.html#_set_transport"><code>_set_transport</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Channel-class.html#_set_window"><code>_set_window</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="../private/threading.Thread-class.html#__initialized"><code>__initialized</code></a></td>
- <td>Variable in class <a href="threading.Thread-class.html"><code>threading.Thread</code></a></td></tr>
- <tr><td width="15%"><a href="../private/threading.Thread-class.html#__initialized"><code>__initialized</code></a></td>
- <td>Variable in class <a href="threading.Thread-class.html"><code>threading.Thread</code></a></td></tr>
- <tr><td width="15%"><a href="../private/threading.Thread-class.html#__initialized"><code>__initialized</code></a></td>
- <td>Variable in class <a href="threading.Thread-class.html"><code>threading.Thread</code></a></td></tr>
- <tr><td width="15%"><a href="../private/threading.Thread-class.html#__initialized"><code>__initialized</code></a></td>
- <td>Variable in class <a href="threading.Thread-class.html"><code>threading.Thread</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.sftp_client-module.html#_to_unicode"><code>_to_unicode</code></a></td>
- <td>Function in module <a href="paramiko.sftp_client-module.html"><code>paramiko.sftp_client</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SecurityOptions-class.html#_transport"><code>_transport</code></a></td>
- <td>Variable in class <a href="paramiko.SecurityOptions-class.html"><code>paramiko.SecurityOptions</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Packetizer-class.html#_trigger_rekey"><code>_trigger_rekey</code></a></td>
- <td>Method in class <a href="../private/paramiko.Packetizer-class.html"><code>paramiko.Packetizer</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Channel-class.html#_unlink"><code>_unlink</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Transport-class.html#_unlink_channel"><code>_unlink_channel</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SFTPAttributes-class.html#_unpack"><code>_unpack</code></a></td>
- <td>Method in class <a href="paramiko.SFTPAttributes-class.html"><code>paramiko.SFTPAttributes</code></a></td></tr>
- <tr><td width="15%"><a href="../private/threading._Verbose-class.html"><code>_Verbose</code></a></td>
- <td>Class in module <code>threading</code></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Transport-class.html#_verify_key"><code>_verify_key</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.sftp-module.html#_VERSION"><code>_VERSION</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Channel-class.html#_wait_for_send_window"><code>_wait_for_send_window</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Channel-class.html#_window_adjust"><code>_window_adjust</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.BufferedFile-class.html#_write"><code>_write</code></a></td>
- <td>Method in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.ChannelFile-class.html#_write"><code>_write</code></a></td>
- <td>Method in class <a href="../private/paramiko.ChannelFile-class.html"><code>paramiko.ChannelFile</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SFTPFile-class.html#_write"><code>_write</code></a></td>
- <td>Method in class <a href="paramiko.SFTPFile-class.html"><code>paramiko.SFTPFile</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.channel.ChannelStderrFile-class.html#_write"><code>_write</code></a></td>
- <td>Method in class <a href="../private/paramiko.channel.ChannelStderrFile-class.html"><code>paramiko.channel.ChannelStderrFile</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.BaseSFTP-class.html#_write_all"><code>_write_all</code></a></td>
- <td>Method in class <a href="../private/paramiko.BaseSFTP-class.html"><code>paramiko.BaseSFTP</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.BufferedFile-class.html#_write_all"><code>_write_all</code></a></td>
- <td>Method in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.PKey-class.html#_write_private_key_file"><code>_write_private_key_file</code></a></td>
- <td>Method in class <a href="../private/paramiko.PKey-class.html"><code>paramiko.PKey</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.AuthHandler-class.html#abort"><code>abort</code></a></td>
- <td>Method in class <a href="../private/paramiko.AuthHandler-class.html"><code>paramiko.AuthHandler</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#accept"><code>accept</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Message-class.html#add"><code>add</code></a></td>
- <td>Method in class <a href="paramiko.Message-class.html"><code>paramiko.Message</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Message-class.html#add_boolean"><code>add_boolean</code></a></td>
- <td>Method in class <a href="paramiko.Message-class.html"><code>paramiko.Message</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Message-class.html#add_byte"><code>add_byte</code></a></td>
- <td>Method in class <a href="paramiko.Message-class.html"><code>paramiko.Message</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Message-class.html#add_bytes"><code>add_bytes</code></a></td>
- <td>Method in class <a href="paramiko.Message-class.html"><code>paramiko.Message</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Message-class.html#add_int"><code>add_int</code></a></td>
- <td>Method in class <a href="paramiko.Message-class.html"><code>paramiko.Message</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Message-class.html#add_int64"><code>add_int64</code></a></td>
- <td>Method in class <a href="paramiko.Message-class.html"><code>paramiko.Message</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Message-class.html#add_list"><code>add_list</code></a></td>
- <td>Method in class <a href="paramiko.Message-class.html"><code>paramiko.Message</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Message-class.html#add_mpint"><code>add_mpint</code></a></td>
- <td>Method in class <a href="paramiko.Message-class.html"><code>paramiko.Message</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.server.InteractiveQuery-class.html#add_prompt"><code>add_prompt</code></a></td>
- <td>Method in class <a href="paramiko.server.InteractiveQuery-class.html"><code>paramiko.server.InteractiveQuery</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#add_server_key"><code>add_server_key</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Message-class.html#add_string"><code>add_string</code></a></td>
- <td>Method in class <a href="paramiko.Message-class.html"><code>paramiko.Message</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.logging22.logger-class.html#addFilter"><code>addFilter</code></a></td>
- <td>Method in class <a href="../private/paramiko.logging22.logger-class.html"><code>paramiko.logging22.logger</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.logging22.logger-class.html#addHandler"><code>addHandler</code></a></td>
- <td>Method in class <a href="../private/paramiko.logging22.logger-class.html"><code>paramiko.logging22.logger</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Agent-class.html"><code>Agent</code></a></td>
- <td>Class in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.agent-module.html"><code>agent</code></a></td>
- <td>Module in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.AgentKey-class.html"><code>AgentKey</code></a></td>
- <td>Class in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BadAuthenticationType-class.html#allowed_types"><code>allowed_types</code></a></td>
- <td>Variable in class <a href="paramiko.BadAuthenticationType-class.html"><code>paramiko.BadAuthenticationType</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.ssh_exception.PartialAuthentication-class.html#allowed_types"><code>allowed_types</code></a></td>
- <td>Variable in class <a href="../private/paramiko.ssh_exception.PartialAuthentication-class.html"><code>paramiko.ssh_exception.PartialAuthentication</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.common-module.html#AUTH_FAILED"><code>AUTH_FAILED</code></a></td>
- <td>Variable in module <a href="../private/paramiko.common-module.html"><code>paramiko.common</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.auth_handler-module.html"><code>auth_handler</code></a></td>
- <td>Module in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.AuthHandler-class.html#auth_interactive"><code>auth_interactive</code></a></td>
- <td>Method in class <a href="../private/paramiko.AuthHandler-class.html"><code>paramiko.AuthHandler</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#auth_interactive"><code>auth_interactive</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.AuthHandler-class.html#auth_none"><code>auth_none</code></a></td>
- <td>Method in class <a href="../private/paramiko.AuthHandler-class.html"><code>paramiko.AuthHandler</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#auth_none"><code>auth_none</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.common-module.html#AUTH_PARTIALLY_SUCCESSFUL"><code>AUTH_PARTIALLY_SUCCESSFUL</code></a></td>
- <td>Variable in module <a href="../private/paramiko.common-module.html"><code>paramiko.common</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.AuthHandler-class.html#auth_password"><code>auth_password</code></a></td>
- <td>Method in class <a href="../private/paramiko.AuthHandler-class.html"><code>paramiko.AuthHandler</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#auth_password"><code>auth_password</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.AuthHandler-class.html#auth_publickey"><code>auth_publickey</code></a></td>
- <td>Method in class <a href="../private/paramiko.AuthHandler-class.html"><code>paramiko.AuthHandler</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#auth_publickey"><code>auth_publickey</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.common-module.html#AUTH_SUCCESSFUL"><code>AUTH_SUCCESSFUL</code></a></td>
- <td>Variable in module <a href="../private/paramiko.common-module.html"><code>paramiko.common</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.AuthHandler-class.html"><code>AuthHandler</code></a></td>
- <td>Class in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BadAuthenticationType-class.html"><code>BadAuthenticationType</code></a></td>
- <td>Class in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.BaseSFTP-class.html"><code>BaseSFTP</code></a></td>
- <td>Class in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.ber-module.html"><code>ber</code></a></td>
- <td>Module in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.ber.BER-class.html"><code>BER</code></a></td>
- <td>Class in module <a href="../private/paramiko.ber-module.html"><code>paramiko.ber</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.ber.BERException-class.html"><code>BERException</code></a></td>
- <td>Class in module <a href="../private/paramiko.ber-module.html"><code>paramiko.ber</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.util-module.html#bit_length"><code>bit_length</code></a></td>
- <td>Function in module <a href="paramiko.util-module.html"><code>paramiko.util</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BufferedFile-class.html"><code>BufferedFile</code></a></td>
- <td>Class in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.DSSKey-class.html#can_sign"><code>can_sign</code></a></td>
- <td>Method in class <a href="paramiko.DSSKey-class.html"><code>paramiko.DSSKey</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.PKey-class.html#can_sign"><code>can_sign</code></a></td>
- <td>Method in class <a href="../private/paramiko.PKey-class.html"><code>paramiko.PKey</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.RSAKey-class.html#can_sign"><code>can_sign</code></a></td>
- <td>Method in class <a href="paramiko.RSAKey-class.html"><code>paramiko.RSAKey</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SFTPServerInterface-class.html#canonicalize"><code>canonicalize</code></a></td>
- <td>Method in class <a href="../private/paramiko.SFTPServerInterface-class.html"><code>paramiko.SFTPServerInterface</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html"><code>Channel</code></a></td>
- <td>Class in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.channel-module.html"><code>channel</code></a></td>
- <td>Module in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.ChannelFile-class.html"><code>ChannelFile</code></a></td>
- <td>Class in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.channel.ChannelStderrFile-class.html"><code>ChannelStderrFile</code></a></td>
- <td>Class in module <a href="../private/paramiko.channel-module.html"><code>paramiko.channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPHandle-class.html#chattr"><code>chattr</code></a></td>
- <td>Method in class <a href="paramiko.SFTPHandle-class.html"><code>paramiko.SFTPHandle</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SFTPServerInterface-class.html#chattr"><code>chattr</code></a></td>
- <td>Method in class <a href="../private/paramiko.SFTPServerInterface-class.html"><code>paramiko.SFTPServerInterface</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPClient-class.html#chdir"><code>chdir</code></a></td>
- <td>Method in class <a href="paramiko.SFTPClient-class.html"><code>paramiko.SFTPClient</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPFile-class.html#check"><code>check</code></a></td>
- <td>Method in class <a href="paramiko.SFTPFile-class.html"><code>paramiko.SFTPFile</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.ServerInterface-class.html#check_auth_interactive"><code>check_auth_interactive</code></a></td>
- <td>Method in class <a href="../private/paramiko.ServerInterface-class.html"><code>paramiko.ServerInterface</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.ServerInterface-class.html#check_auth_interactive_response"><code>check_auth_interactive_response</code></a></td>
- <td>Method in class <a href="../private/paramiko.ServerInterface-class.html"><code>paramiko.ServerInterface</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.ServerInterface-class.html#check_auth_none"><code>check_auth_none</code></a></td>
- <td>Method in class <a href="../private/paramiko.ServerInterface-class.html"><code>paramiko.ServerInterface</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.ServerInterface-class.html#check_auth_password"><code>check_auth_password</code></a></td>
- <td>Method in class <a href="../private/paramiko.ServerInterface-class.html"><code>paramiko.ServerInterface</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.ServerInterface-class.html#check_auth_publickey"><code>check_auth_publickey</code></a></td>
- <td>Method in class <a href="../private/paramiko.ServerInterface-class.html"><code>paramiko.ServerInterface</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.ServerInterface-class.html#check_channel_exec_request"><code>check_channel_exec_request</code></a></td>
- <td>Method in class <a href="../private/paramiko.ServerInterface-class.html"><code>paramiko.ServerInterface</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.ServerInterface-class.html#check_channel_pty_request"><code>check_channel_pty_request</code></a></td>
- <td>Method in class <a href="../private/paramiko.ServerInterface-class.html"><code>paramiko.ServerInterface</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.ServerInterface-class.html#check_channel_request"><code>check_channel_request</code></a></td>
- <td>Method in class <a href="../private/paramiko.ServerInterface-class.html"><code>paramiko.ServerInterface</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.ServerInterface-class.html#check_channel_shell_request"><code>check_channel_shell_request</code></a></td>
- <td>Method in class <a href="../private/paramiko.ServerInterface-class.html"><code>paramiko.ServerInterface</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.ServerInterface-class.html#check_channel_subsystem_request"><code>check_channel_subsystem_request</code></a></td>
- <td>Method in class <a href="../private/paramiko.ServerInterface-class.html"><code>paramiko.ServerInterface</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.ServerInterface-class.html#check_channel_window_change_request"><code>check_channel_window_change_request</code></a></td>
- <td>Method in class <a href="../private/paramiko.ServerInterface-class.html"><code>paramiko.ServerInterface</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.ServerInterface-class.html#check_global_request"><code>check_global_request</code></a></td>
- <td>Method in class <a href="../private/paramiko.ServerInterface-class.html"><code>paramiko.ServerInterface</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPClient-class.html#chmod"><code>chmod</code></a></td>
- <td>Method in class <a href="paramiko.SFTPClient-class.html"><code>paramiko.SFTPClient</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPClient-class.html#chown"><code>chown</code></a></td>
- <td>Method in class <a href="paramiko.SFTPClient-class.html"><code>paramiko.SFTPClient</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SecurityOptions-class.html#ciphers"><code>ciphers</code></a></td>
- <td>Method in class <a href="paramiko.SFTPClient-class.html"><code>paramiko.SFTPClient</code></a> in class <a href="paramiko.SecurityOptions-class.html"><code>paramiko.SecurityOptions</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.pipe.PosixPipe-class.html#clear"><code>clear</code></a></td>
- <td>Method in class <a href="../private/paramiko.pipe.PosixPipe-class.html"><code>paramiko.pipe.PosixPipe</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.pipe.WindowsPipe-class.html#clear"><code>clear</code></a></td>
- <td>Method in class <a href="../private/paramiko.pipe.WindowsPipe-class.html"><code>paramiko.pipe.WindowsPipe</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Agent-class.html#close"><code>close</code></a></td>
- <td>Method in class <a href="paramiko.Agent-class.html"><code>paramiko.Agent</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BufferedFile-class.html#close"><code>close</code></a></td>
- <td>Method in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#close"><code>close</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Packetizer-class.html#close"><code>close</code></a></td>
- <td>Method in class <a href="../private/paramiko.Packetizer-class.html"><code>paramiko.Packetizer</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPClient-class.html#close"><code>close</code></a></td>
- <td>Method in class <a href="paramiko.SFTPClient-class.html"><code>paramiko.SFTPClient</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPFile-class.html#close"><code>close</code></a></td>
- <td>Method in class <a href="paramiko.SFTPFile-class.html"><code>paramiko.SFTPFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPHandle-class.html#close"><code>close</code></a></td>
- <td>Method in class <a href="paramiko.SFTPHandle-class.html"><code>paramiko.SFTPHandle</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#close"><code>close</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.pipe.PosixPipe-class.html#close"><code>close</code></a></td>
- <td>Method in class <a href="../private/paramiko.pipe.PosixPipe-class.html"><code>paramiko.pipe.PosixPipe</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.pipe.WindowsPipe-class.html#close"><code>close</code></a></td>
- <td>Method in class <a href="../private/paramiko.pipe.WindowsPipe-class.html"><code>paramiko.pipe.WindowsPipe</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#CMD_ATTRS"><code>CMD_ATTRS</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#CMD_CLOSE"><code>CMD_CLOSE</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#CMD_DATA"><code>CMD_DATA</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#CMD_EXTENDED"><code>CMD_EXTENDED</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#CMD_EXTENDED_REPLY"><code>CMD_EXTENDED_REPLY</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#CMD_FSETSTAT"><code>CMD_FSETSTAT</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#CMD_FSTAT"><code>CMD_FSTAT</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#CMD_HANDLE"><code>CMD_HANDLE</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#CMD_INIT"><code>CMD_INIT</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#CMD_LSTAT"><code>CMD_LSTAT</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#CMD_MKDIR"><code>CMD_MKDIR</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#CMD_NAME"><code>CMD_NAME</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#CMD_NAMES"><code>CMD_NAMES</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#CMD_OPEN"><code>CMD_OPEN</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#CMD_OPENDIR"><code>CMD_OPENDIR</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#CMD_READ"><code>CMD_READ</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#CMD_READDIR"><code>CMD_READDIR</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#CMD_READLINK"><code>CMD_READLINK</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#CMD_REALPATH"><code>CMD_REALPATH</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#CMD_REMOVE"><code>CMD_REMOVE</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#CMD_RENAME"><code>CMD_RENAME</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#CMD_RMDIR"><code>CMD_RMDIR</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#CMD_SETSTAT"><code>CMD_SETSTAT</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#CMD_STAT"><code>CMD_STAT</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#CMD_STATUS"><code>CMD_STATUS</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#CMD_SYMLINK"><code>CMD_SYMLINK</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#CMD_VERSION"><code>CMD_VERSION</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#CMD_WRITE"><code>CMD_WRITE</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.common-module.html"><code>common</code></a></td>
- <td>Module in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.compress-module.html"><code>compress</code></a></td>
- <td>Module in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SecurityOptions-class.html#compression"><code>compression</code></a></td>
- <td>Module in package <a href="paramiko-module.html"><code>paramiko</code></a> in class <a href="paramiko.SecurityOptions-class.html"><code>paramiko.SecurityOptions</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#connect"><code>connect</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.common-module.html#CONNECTION_FAILED_CODE"><code>CONNECTION_FAILED_CODE</code></a></td>
- <td>Variable in module <a href="../private/paramiko.common-module.html"><code>paramiko.common</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPServer-class.html#convert_errno"><code>convert_errno</code></a></td>
- <td>Method in class <a href="paramiko.SFTPServer-class.html"><code>paramiko.SFTPServer</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.common-module.html#CRITICAL"><code>CRITICAL</code></a></td>
- <td>Variable in module <a href="../private/paramiko.common-module.html"><code>paramiko.common</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.logging22-module.html#CRITICAL"><code>CRITICAL</code></a></td>
- <td>Variable in module <a href="../private/paramiko.logging22-module.html"><code>paramiko.logging22</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.common-module.html#DEBUG"><code>DEBUG</code></a></td>
- <td>Variable in module <a href="../private/paramiko.common-module.html"><code>paramiko.common</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.logging22-module.html#DEBUG"><code>DEBUG</code></a></td>
- <td>Variable in module <a href="../private/paramiko.logging22-module.html"><code>paramiko.logging22</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.ber.BER-class.html#decode"><code>decode</code></a></td>
- <td>Method in class <a href="../private/paramiko.ber.BER-class.html"><code>paramiko.ber.BER</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.ber.BER-class.html#decode_next"><code>decode_next</code></a></td>
- <td>Method in class <a href="../private/paramiko.ber.BER-class.html"><code>paramiko.ber.BER</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.ber.BER-class.html#decode_sequence"><code>decode_sequence</code></a></td>
- <td>Method in class <a href="../private/paramiko.ber.BER-class.html"><code>paramiko.ber.BER</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.util-module.html#deflate_long"><code>deflate_long</code></a></td>
- <td>Function in module <a href="paramiko.util-module.html"><code>paramiko.util</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SecurityOptions-class.html#digests"><code>digests</code></a></td>
- <td>Function in module <a href="paramiko.util-module.html"><code>paramiko.util</code></a> in class <a href="paramiko.SecurityOptions-class.html"><code>paramiko.SecurityOptions</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.common-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER"><code>DISCONNECT_AUTH_CANCELLED_BY_USER</code></a></td>
- <td>Variable in module <a href="../private/paramiko.common-module.html"><code>paramiko.common</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.common-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE"><code>DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE</code></a></td>
- <td>Variable in module <a href="../private/paramiko.common-module.html"><code>paramiko.common</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.common-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE"><code>DISCONNECT_SERVICE_NOT_AVAILABLE</code></a></td>
- <td>Variable in module <a href="../private/paramiko.common-module.html"><code>paramiko.common</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.DSSKey-class.html"><code>DSSKey</code></a></td>
- <td>Class in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.dsskey-module.html"><code>dsskey</code></a></td>
- <td>Module in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.ber.BER-class.html#encode"><code>encode</code></a></td>
- <td>Method in class <a href="../private/paramiko.ber.BER-class.html"><code>paramiko.ber.BER</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.ber.BER-class.html#encode_sequence"><code>encode_sequence</code></a></td>
- <td>Method in class <a href="../private/paramiko.ber.BER-class.html"><code>paramiko.ber.BER</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.ber.BER-class.html#encode_tlv"><code>encode_tlv</code></a></td>
- <td>Method in class <a href="../private/paramiko.ber.BER-class.html"><code>paramiko.ber.BER</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.common-module.html#ERROR"><code>ERROR</code></a></td>
- <td>Variable in module <a href="../private/paramiko.common-module.html"><code>paramiko.common</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.logging22-module.html#ERROR"><code>ERROR</code></a></td>
- <td>Variable in module <a href="../private/paramiko.logging22-module.html"><code>paramiko.logging22</code></a></td></tr>
- <tr><td width="15%"><code>exc_info</code></td>
- <td>Function in module <code>sys</code></td></tr>
- <tr><td width="15%"><a href="exceptions.Exception-class.html"><code>Exception</code></a></td>
- <td>Class in module <code>exceptions</code></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#exec_command"><code>exec_command</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPClient-class.html#file"><code>file</code></a></td>
- <td>Method in class <a href="paramiko.SFTPClient-class.html"><code>paramiko.SFTPClient</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.file-module.html"><code>file</code></a></td>
- <td>Module in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#fileno"><code>fileno</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.pipe.PosixPipe-class.html#fileno"><code>fileno</code></a></td>
- <td>Method in class <a href="../private/paramiko.pipe.PosixPipe-class.html"><code>paramiko.pipe.PosixPipe</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.pipe.WindowsPipe-class.html#fileno"><code>fileno</code></a></td>
- <td>Method in class <a href="../private/paramiko.pipe.WindowsPipe-class.html"><code>paramiko.pipe.WindowsPipe</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.util.PFilter-class.html#filter"><code>filter</code></a></td>
- <td>Method in class <a href="paramiko.util.PFilter-class.html"><code>paramiko.util.PFilter</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPServer-class.html#finish_subsystem"><code>finish_subsystem</code></a></td>
- <td>Method in class <a href="paramiko.SFTPServer-class.html"><code>paramiko.SFTPServer</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SubsystemHandler-class.html#finish_subsystem"><code>finish_subsystem</code></a></td>
- <td>Method in class <a href="paramiko.SubsystemHandler-class.html"><code>paramiko.SubsystemHandler</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPAttributes-class.html#FLAG_AMTIME"><code>FLAG_AMTIME</code></a></td>
- <td>Variable in class <a href="paramiko.SFTPAttributes-class.html"><code>paramiko.SFTPAttributes</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPAttributes-class.html#FLAG_EXTENDED"><code>FLAG_EXTENDED</code></a></td>
- <td>Variable in class <a href="paramiko.SFTPAttributes-class.html"><code>paramiko.SFTPAttributes</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPAttributes-class.html#FLAG_PERMISSIONS"><code>FLAG_PERMISSIONS</code></a></td>
- <td>Variable in class <a href="paramiko.SFTPAttributes-class.html"><code>paramiko.SFTPAttributes</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPAttributes-class.html#FLAG_SIZE"><code>FLAG_SIZE</code></a></td>
- <td>Variable in class <a href="paramiko.SFTPAttributes-class.html"><code>paramiko.SFTPAttributes</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPAttributes-class.html#FLAG_UIDGID"><code>FLAG_UIDGID</code></a></td>
- <td>Variable in class <a href="paramiko.SFTPAttributes-class.html"><code>paramiko.SFTPAttributes</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BufferedFile-class.html#flush"><code>flush</code></a></td>
- <td>Method in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.util-module.html#format_binary"><code>format_binary</code></a></td>
- <td>Function in module <a href="paramiko.util-module.html"><code>paramiko.util</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.util-module.html#format_binary_line"><code>format_binary_line</code></a></td>
- <td>Function in module <a href="paramiko.util-module.html"><code>paramiko.util</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.util-module.html#format_binary_weird"><code>format_binary_weird</code></a></td>
- <td>Function in module <a href="paramiko.util-module.html"><code>paramiko.util</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.logging22.Formatter-class.html"><code>Formatter</code></a></td>
- <td>Class in module <a href="../private/paramiko.logging22-module.html"><code>paramiko.logging22</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.PKey-class.html#from_private_key_file"><code>from_private_key_file</code></a></td>
- <td>Method in class <a href="../private/paramiko.PKey-class.html"><code>paramiko.PKey</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPAttributes-class.html#from_stat"><code>from_stat</code></a></td>
- <td>Method in class <a href="paramiko.SFTPAttributes-class.html"><code>paramiko.SFTPAttributes</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPClient-class.html#from_transport"><code>from_transport</code></a></td>
- <td>Method in class <a href="paramiko.SFTPClient-class.html"><code>paramiko.SFTPClient</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.kex_group1-module.html#G"><code>G</code></a></td>
- <td>Variable in module <a href="../private/paramiko.kex_group1-module.html"><code>paramiko.kex_group1</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.DSSKey-class.html#generate"><code>generate</code></a></td>
- <td>Method in class <a href="paramiko.DSSKey-class.html"><code>paramiko.DSSKey</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.RSAKey-class.html#generate"><code>generate</code></a></td>
- <td>Method in class <a href="paramiko.RSAKey-class.html"><code>paramiko.RSAKey</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.util-module.html#generate_key_bytes"><code>generate_key_bytes</code></a></td>
- <td>Function in module <a href="paramiko.util-module.html"><code>paramiko.util</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPClient-class.html#get"><code>get</code></a></td>
- <td>Method in class <a href="paramiko.SFTPClient-class.html"><code>paramiko.SFTPClient</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.ServerInterface-class.html#get_allowed_auths"><code>get_allowed_auths</code></a></td>
- <td>Method in class <a href="../private/paramiko.ServerInterface-class.html"><code>paramiko.ServerInterface</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.PKey-class.html#get_base64"><code>get_base64</code></a></td>
- <td>Method in class <a href="../private/paramiko.PKey-class.html"><code>paramiko.PKey</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.DSSKey-class.html#get_bits"><code>get_bits</code></a></td>
- <td>Method in class <a href="paramiko.DSSKey-class.html"><code>paramiko.DSSKey</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.PKey-class.html#get_bits"><code>get_bits</code></a></td>
- <td>Method in class <a href="../private/paramiko.PKey-class.html"><code>paramiko.PKey</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.RSAKey-class.html#get_bits"><code>get_bits</code></a></td>
- <td>Method in class <a href="paramiko.RSAKey-class.html"><code>paramiko.RSAKey</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Message-class.html#get_boolean"><code>get_boolean</code></a></td>
- <td>Method in class <a href="paramiko.Message-class.html"><code>paramiko.Message</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Message-class.html#get_byte"><code>get_byte</code></a></td>
- <td>Method in class <a href="paramiko.Message-class.html"><code>paramiko.Message</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Message-class.html#get_bytes"><code>get_bytes</code></a></td>
- <td>Method in class <a href="paramiko.Message-class.html"><code>paramiko.Message</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#get_exception"><code>get_exception</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.PKey-class.html#get_fingerprint"><code>get_fingerprint</code></a></td>
- <td>Method in class <a href="../private/paramiko.PKey-class.html"><code>paramiko.PKey</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Packetizer-class.html#get_hexdump"><code>get_hexdump</code></a></td>
- <td>Method in class <a href="../private/paramiko.Packetizer-class.html"><code>paramiko.Packetizer</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#get_hexdump"><code>get_hexdump</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#get_id"><code>get_id</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Message-class.html#get_int"><code>get_int</code></a></td>
- <td>Method in class <a href="paramiko.Message-class.html"><code>paramiko.Message</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Message-class.html#get_int64"><code>get_int64</code></a></td>
- <td>Method in class <a href="paramiko.Message-class.html"><code>paramiko.Message</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Agent-class.html#get_keys"><code>get_keys</code></a></td>
- <td>Method in class <a href="paramiko.Agent-class.html"><code>paramiko.Agent</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Message-class.html#get_list"><code>get_list</code></a></td>
- <td>Method in class <a href="paramiko.Message-class.html"><code>paramiko.Message</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#get_log_channel"><code>get_log_channel</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.util-module.html#get_logger"><code>get_logger</code></a></td>
- <td>Function in module <a href="paramiko.util-module.html"><code>paramiko.util</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Packetizer-class.html#get_mac_size_in"><code>get_mac_size_in</code></a></td>
- <td>Method in class <a href="../private/paramiko.Packetizer-class.html"><code>paramiko.Packetizer</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Packetizer-class.html#get_mac_size_out"><code>get_mac_size_out</code></a></td>
- <td>Method in class <a href="../private/paramiko.Packetizer-class.html"><code>paramiko.Packetizer</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.primes.ModulusPack-class.html#get_modulus"><code>get_modulus</code></a></td>
- <td>Method in class <a href="../private/paramiko.primes.ModulusPack-class.html"><code>paramiko.primes.ModulusPack</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Message-class.html#get_mpint"><code>get_mpint</code></a></td>
- <td>Method in class <a href="paramiko.Message-class.html"><code>paramiko.Message</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.AgentKey-class.html#get_name"><code>get_name</code></a></td>
- <td>Method in class <a href="paramiko.AgentKey-class.html"><code>paramiko.AgentKey</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#get_name"><code>get_name</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.DSSKey-class.html#get_name"><code>get_name</code></a></td>
- <td>Method in class <a href="paramiko.DSSKey-class.html"><code>paramiko.DSSKey</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.PKey-class.html#get_name"><code>get_name</code></a></td>
- <td>Method in class <a href="../private/paramiko.PKey-class.html"><code>paramiko.PKey</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.RSAKey-class.html#get_name"><code>get_name</code></a></td>
- <td>Method in class <a href="paramiko.RSAKey-class.html"><code>paramiko.RSAKey</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#get_pty"><code>get_pty</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Message-class.html#get_remainder"><code>get_remainder</code></a></td>
- <td>Method in class <a href="paramiko.Message-class.html"><code>paramiko.Message</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#get_remote_server_key"><code>get_remote_server_key</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#get_security_options"><code>get_security_options</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SubsystemHandler-class.html#get_server"><code>get_server</code></a></td>
- <td>Method in class <a href="paramiko.SubsystemHandler-class.html"><code>paramiko.SubsystemHandler</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#get_server_key"><code>get_server_key</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Message-class.html#get_so_far"><code>get_so_far</code></a></td>
- <td>Method in class <a href="paramiko.Message-class.html"><code>paramiko.Message</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Message-class.html#get_string"><code>get_string</code></a></td>
- <td>Method in class <a href="paramiko.Message-class.html"><code>paramiko.Message</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.util-module.html#get_thread_id"><code>get_thread_id</code></a></td>
- <td>Function in module <a href="paramiko.util-module.html"><code>paramiko.util</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#get_transport"><code>get_transport</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.AuthHandler-class.html#get_username"><code>get_username</code></a></td>
- <td>Method in class <a href="../private/paramiko.AuthHandler-class.html"><code>paramiko.AuthHandler</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#get_username"><code>get_username</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPClient-class.html#getcwd"><code>getcwd</code></a></td>
- <td>Method in class <a href="paramiko.SFTPClient-class.html"><code>paramiko.SFTPClient</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.logging22-module.html#getLogger"><code>getLogger</code></a></td>
- <td>Function in module <a href="../private/paramiko.logging22-module.html"><code>paramiko.logging22</code></a></td></tr>
- <tr><td width="15%"><a href="threading.Thread-class.html#getName"><code>getName</code></a></td>
- <td>Method in class <a href="threading.Thread-class.html"><code>threading.Thread</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#gettimeout"><code>gettimeout</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPFile-class.html#gettimeout"><code>gettimeout</code></a></td>
- <td>Method in class <a href="paramiko.SFTPFile-class.html"><code>paramiko.SFTPFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#global_request"><code>global_request</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.util-module.html#hexify"><code>hexify</code></a></td>
- <td>Function in module <a href="paramiko.util-module.html"><code>paramiko.util</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.util-module.html#inflate_long"><code>inflate_long</code></a></td>
- <td>Function in module <a href="paramiko.util-module.html"><code>paramiko.util</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.common-module.html#INFO"><code>INFO</code></a></td>
- <td>Variable in module <a href="../private/paramiko.common-module.html"><code>paramiko.common</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.logging22-module.html#INFO"><code>INFO</code></a></td>
- <td>Variable in module <a href="../private/paramiko.logging22-module.html"><code>paramiko.logging22</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.server.InteractiveQuery-class.html"><code>InteractiveQuery</code></a></td>
- <td>Class in module <a href="paramiko.server-module.html"><code>paramiko.server</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#invoke_shell"><code>invoke_shell</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#invoke_subsystem"><code>invoke_subsystem</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#is_active"><code>is_active</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.AuthHandler-class.html#is_authenticated"><code>is_authenticated</code></a></td>
- <td>Method in class <a href="../private/paramiko.AuthHandler-class.html"><code>paramiko.AuthHandler</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#is_authenticated"><code>is_authenticated</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="threading.Thread-class.html#isAlive"><code>isAlive</code></a></td>
- <td>Method in class <a href="threading.Thread-class.html"><code>threading.Thread</code></a></td></tr>
- <tr><td width="15%"><a href="threading.Thread-class.html#isDaemon"><code>isDaemon</code></a></td>
- <td>Method in class <a href="threading.Thread-class.html"><code>threading.Thread</code></a></td></tr>
- <tr><td width="15%"><a href="threading.Thread-class.html#join"><code>join</code></a></td>
- <td>Method in class <a href="threading.Thread-class.html"><code>threading.Thread</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SecurityOptions-class.html#kex"><code>kex</code></a></td>
- <td>Method in class <a href="threading.Thread-class.html"><code>threading.Thread</code></a> in class <a href="paramiko.SecurityOptions-class.html"><code>paramiko.SecurityOptions</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.kex_gex-module.html"><code>kex_gex</code></a></td>
- <td>Module in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.kex_group1-module.html"><code>kex_group1</code></a></td>
- <td>Module in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.kex_gex.KexGex-class.html"><code>KexGex</code></a></td>
- <td>Class in module <a href="../private/paramiko.kex_gex-module.html"><code>paramiko.kex_gex</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.kex_group1.KexGroup1-class.html"><code>KexGroup1</code></a></td>
- <td>Class in module <a href="../private/paramiko.kex_group1-module.html"><code>paramiko.kex_group1</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SecurityOptions-class.html#key_types"><code>key_types</code></a></td>
- <td>Class in module <a href="../private/paramiko.kex_group1-module.html"><code>paramiko.kex_group1</code></a> in class <a href="paramiko.SecurityOptions-class.html"><code>paramiko.SecurityOptions</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SFTPServerInterface-class.html#list_folder"><code>list_folder</code></a></td>
- <td>Method in class <a href="../private/paramiko.SFTPServerInterface-class.html"><code>paramiko.SFTPServerInterface</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPClient-class.html#listdir"><code>listdir</code></a></td>
- <td>Method in class <a href="paramiko.SFTPClient-class.html"><code>paramiko.SFTPClient</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPClient-class.html#listdir_attr"><code>listdir_attr</code></a></td>
- <td>Method in class <a href="paramiko.SFTPClient-class.html"><code>paramiko.SFTPClient</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.util-module.html#load_host_keys"><code>load_host_keys</code></a></td>
- <td>Function in module <a href="paramiko.util-module.html"><code>paramiko.util</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#load_server_moduli"><code>load_server_moduli</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.logging22.logger-class.html#log"><code>log</code></a></td>
- <td>Method in class <a href="../private/paramiko.logging22.logger-class.html"><code>paramiko.logging22.logger</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.util-module.html#log_to_file"><code>log_to_file</code></a></td>
- <td>Function in module <a href="paramiko.util-module.html"><code>paramiko.util</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.logging22.logger-class.html"><code>logger</code></a></td>
- <td>Class in module <a href="../private/paramiko.logging22-module.html"><code>paramiko.logging22</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.logging22-module.html"><code>logging22</code></a></td>
- <td>Module in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.util-module.html#lookup_ssh_host_config"><code>lookup_ssh_host_config</code></a></td>
- <td>Function in module <a href="paramiko.util-module.html"><code>paramiko.util</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPClient-class.html#lstat"><code>lstat</code></a></td>
- <td>Method in class <a href="paramiko.SFTPClient-class.html"><code>paramiko.SFTPClient</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SFTPServerInterface-class.html#lstat"><code>lstat</code></a></td>
- <td>Method in class <a href="../private/paramiko.SFTPServerInterface-class.html"><code>paramiko.SFTPServerInterface</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.pipe-module.html#make_pipe"><code>make_pipe</code></a></td>
- <td>Function in module <a href="../private/paramiko.pipe-module.html"><code>paramiko.pipe</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#makefile"><code>makefile</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#makefile_stderr"><code>makefile_stderr</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.kex_gex.KexGex-class.html#max_bits"><code>max_bits</code></a></td>
- <td>Variable in class <a href="../private/paramiko.kex_gex.KexGex-class.html"><code>paramiko.kex_gex.KexGex</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPFile-class.html#MAX_REQUEST_SIZE"><code>MAX_REQUEST_SIZE</code></a></td>
- <td>Variable in class <a href="paramiko.SFTPFile-class.html"><code>paramiko.SFTPFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Message-class.html"><code>Message</code></a></td>
- <td>Class in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.message-module.html"><code>message</code></a></td>
- <td>Module in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.kex_gex.KexGex-class.html#min_bits"><code>min_bits</code></a></td>
- <td>Variable in class <a href="../private/paramiko.kex_gex.KexGex-class.html"><code>paramiko.kex_gex.KexGex</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#MIN_PACKET_SIZE"><code>MIN_PACKET_SIZE</code></a></td>
- <td>Variable in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPClient-class.html#mkdir"><code>mkdir</code></a></td>
- <td>Method in class <a href="paramiko.SFTPClient-class.html"><code>paramiko.SFTPClient</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SFTPServerInterface-class.html#mkdir"><code>mkdir</code></a></td>
- <td>Method in class <a href="../private/paramiko.SFTPServerInterface-class.html"><code>paramiko.SFTPServerInterface</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.util-module.html#mod_inverse"><code>mod_inverse</code></a></td>
- <td>Function in module <a href="paramiko.util-module.html"><code>paramiko.util</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.primes.ModulusPack-class.html"><code>ModulusPack</code></a></td>
- <td>Class in module <a href="../private/paramiko.primes-module.html"><code>paramiko.primes</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.type-class.html#mro"><code>mro</code></a></td>
- <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.common-module.html#MSG_CHANNEL_CLOSE"><code>MSG_CHANNEL_CLOSE</code></a></td>
- <td>Variable in module <a href="../private/paramiko.common-module.html"><code>paramiko.common</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.common-module.html#MSG_CHANNEL_DATA"><code>MSG_CHANNEL_DATA</code></a></td>
- <td>Variable in module <a href="../private/paramiko.common-module.html"><code>paramiko.common</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.common-module.html#MSG_CHANNEL_EOF"><code>MSG_CHANNEL_EOF</code></a></td>
- <td>Variable in module <a href="../private/paramiko.common-module.html"><code>paramiko.common</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.common-module.html#MSG_CHANNEL_EXTENDED_DATA"><code>MSG_CHANNEL_EXTENDED_DATA</code></a></td>
- <td>Variable in module <a href="../private/paramiko.common-module.html"><code>paramiko.common</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.common-module.html#MSG_CHANNEL_FAILURE"><code>MSG_CHANNEL_FAILURE</code></a></td>
- <td>Variable in module <a href="../private/paramiko.common-module.html"><code>paramiko.common</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.common-module.html#MSG_CHANNEL_OPEN"><code>MSG_CHANNEL_OPEN</code></a></td>
- <td>Variable in module <a href="../private/paramiko.common-module.html"><code>paramiko.common</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.common-module.html#MSG_CHANNEL_OPEN_FAILURE"><code>MSG_CHANNEL_OPEN_FAILURE</code></a></td>
- <td>Variable in module <a href="../private/paramiko.common-module.html"><code>paramiko.common</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.common-module.html#MSG_CHANNEL_OPEN_SUCCESS"><code>MSG_CHANNEL_OPEN_SUCCESS</code></a></td>
- <td>Variable in module <a href="../private/paramiko.common-module.html"><code>paramiko.common</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.common-module.html#MSG_CHANNEL_REQUEST"><code>MSG_CHANNEL_REQUEST</code></a></td>
- <td>Variable in module <a href="../private/paramiko.common-module.html"><code>paramiko.common</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.common-module.html#MSG_CHANNEL_SUCCESS"><code>MSG_CHANNEL_SUCCESS</code></a></td>
- <td>Variable in module <a href="../private/paramiko.common-module.html"><code>paramiko.common</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.common-module.html#MSG_CHANNEL_WINDOW_ADJUST"><code>MSG_CHANNEL_WINDOW_ADJUST</code></a></td>
- <td>Variable in module <a href="../private/paramiko.common-module.html"><code>paramiko.common</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.common-module.html#MSG_DEBUG"><code>MSG_DEBUG</code></a></td>
- <td>Variable in module <a href="../private/paramiko.common-module.html"><code>paramiko.common</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.common-module.html#MSG_DISCONNECT"><code>MSG_DISCONNECT</code></a></td>
- <td>Variable in module <a href="../private/paramiko.common-module.html"><code>paramiko.common</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.common-module.html#MSG_GLOBAL_REQUEST"><code>MSG_GLOBAL_REQUEST</code></a></td>
- <td>Variable in module <a href="../private/paramiko.common-module.html"><code>paramiko.common</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.common-module.html#MSG_IGNORE"><code>MSG_IGNORE</code></a></td>
- <td>Variable in module <a href="../private/paramiko.common-module.html"><code>paramiko.common</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.common-module.html#MSG_KEXINIT"><code>MSG_KEXINIT</code></a></td>
- <td>Variable in module <a href="../private/paramiko.common-module.html"><code>paramiko.common</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.common-module.html#MSG_NAMES"><code>MSG_NAMES</code></a></td>
- <td>Variable in module <a href="../private/paramiko.common-module.html"><code>paramiko.common</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.common-module.html#MSG_NEWKEYS"><code>MSG_NEWKEYS</code></a></td>
- <td>Variable in module <a href="../private/paramiko.common-module.html"><code>paramiko.common</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.common-module.html#MSG_REQUEST_FAILURE"><code>MSG_REQUEST_FAILURE</code></a></td>
- <td>Variable in module <a href="../private/paramiko.common-module.html"><code>paramiko.common</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.common-module.html#MSG_REQUEST_SUCCESS"><code>MSG_REQUEST_SUCCESS</code></a></td>
- <td>Variable in module <a href="../private/paramiko.common-module.html"><code>paramiko.common</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.common-module.html#MSG_SERVICE_ACCEPT"><code>MSG_SERVICE_ACCEPT</code></a></td>
- <td>Variable in module <a href="../private/paramiko.common-module.html"><code>paramiko.common</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.common-module.html#MSG_SERVICE_REQUEST"><code>MSG_SERVICE_REQUEST</code></a></td>
- <td>Variable in module <a href="../private/paramiko.common-module.html"><code>paramiko.common</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.common-module.html#MSG_UNIMPLEMENTED"><code>MSG_UNIMPLEMENTED</code></a></td>
- <td>Variable in module <a href="../private/paramiko.common-module.html"><code>paramiko.common</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.common-module.html#MSG_USERAUTH_BANNER"><code>MSG_USERAUTH_BANNER</code></a></td>
- <td>Variable in module <a href="../private/paramiko.common-module.html"><code>paramiko.common</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.common-module.html#MSG_USERAUTH_FAILURE"><code>MSG_USERAUTH_FAILURE</code></a></td>
- <td>Variable in module <a href="../private/paramiko.common-module.html"><code>paramiko.common</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.common-module.html#MSG_USERAUTH_INFO_REQUEST"><code>MSG_USERAUTH_INFO_REQUEST</code></a></td>
- <td>Variable in module <a href="../private/paramiko.common-module.html"><code>paramiko.common</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.common-module.html#MSG_USERAUTH_INFO_RESPONSE"><code>MSG_USERAUTH_INFO_RESPONSE</code></a></td>
- <td>Variable in module <a href="../private/paramiko.common-module.html"><code>paramiko.common</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.common-module.html#MSG_USERAUTH_PK_OK"><code>MSG_USERAUTH_PK_OK</code></a></td>
- <td>Variable in module <a href="../private/paramiko.common-module.html"><code>paramiko.common</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.common-module.html#MSG_USERAUTH_REQUEST"><code>MSG_USERAUTH_REQUEST</code></a></td>
- <td>Variable in module <a href="../private/paramiko.common-module.html"><code>paramiko.common</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.common-module.html#MSG_USERAUTH_SUCCESS"><code>MSG_USERAUTH_SUCCESS</code></a></td>
- <td>Variable in module <a href="../private/paramiko.common-module.html"><code>paramiko.common</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.kex_gex.KexGex-class.html#name"><code>name</code></a></td>
- <td>Variable in class <a href="../private/paramiko.kex_gex.KexGex-class.html"><code>paramiko.kex_gex.KexGex</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.kex_group1.KexGroup1-class.html#name"><code>name</code></a></td>
- <td>Variable in class <a href="../private/paramiko.kex_group1.KexGroup1-class.html"><code>paramiko.kex_group1.KexGroup1</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Packetizer-class.html#need_rekey"><code>need_rekey</code></a></td>
- <td>Method in class <a href="../private/paramiko.Packetizer-class.html"><code>paramiko.Packetizer</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.packet.NeedRekeyException-class.html"><code>NeedRekeyException</code></a></td>
- <td>Class in module <a href="../private/paramiko.packet-module.html"><code>paramiko.packet</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BufferedFile-class.html#next"><code>next</code></a></td>
- <td>Method in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPClient-class.html#normalize"><code>normalize</code></a></td>
- <td>Method in class <a href="paramiko.SFTPClient-class.html"><code>paramiko.SFTPClient</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.object-class.html"><code>object</code></a></td>
- <td>Class in module <code>__builtin__</code></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SFTPServerInterface-class.html#open"><code>open</code></a></td>
- <td>Method in class <a href="../private/paramiko.SFTPServerInterface-class.html"><code>paramiko.SFTPServerInterface</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#open_channel"><code>open_channel</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#open_session"><code>open_session</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#open_sftp_client"><code>open_sftp_client</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.kex_group1-module.html#P"><code>P</code></a></td>
- <td>Variable in module <a href="../private/paramiko.kex_group1-module.html"><code>paramiko.kex_group1</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.packet-module.html"><code>packet</code></a></td>
- <td>Module in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Packetizer-class.html"><code>Packetizer</code></a></td>
- <td>Class in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko-module.html"><code>paramiko</code></a></td>
- <td>Package</td></tr>
- <tr><td width="15%"><a href="../private/paramiko.kex_gex.KexGex-class.html#parse_next"><code>parse_next</code></a></td>
- <td>Method in class <a href="../private/paramiko.kex_gex.KexGex-class.html"><code>paramiko.kex_gex.KexGex</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.kex_group1.KexGroup1-class.html#parse_next"><code>parse_next</code></a></td>
- <td>Method in class <a href="../private/paramiko.kex_group1.KexGroup1-class.html"><code>paramiko.kex_group1.KexGroup1</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.util-module.html#parse_ssh_config"><code>parse_ssh_config</code></a></td>
- <td>Function in module <a href="paramiko.util-module.html"><code>paramiko.util</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.ssh_exception.PartialAuthentication-class.html"><code>PartialAuthentication</code></a></td>
- <td>Class in module <a href="../private/paramiko.ssh_exception-module.html"><code>paramiko.ssh_exception</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.PasswordRequiredException-class.html"><code>PasswordRequiredException</code></a></td>
- <td>Class in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.util.PFilter-class.html"><code>PFilter</code></a></td>
- <td>Class in module <a href="paramiko.util-module.html"><code>paramiko.util</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.pipe-module.html"><code>pipe</code></a></td>
- <td>Module in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.PKey-class.html"><code>PKey</code></a></td>
- <td>Class in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.pkey-module.html"><code>pkey</code></a></td>
- <td>Module in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.pipe.PosixPipe-class.html"><code>PosixPipe</code></a></td>
- <td>Class in module <a href="../private/paramiko.pipe-module.html"><code>paramiko.pipe</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.kex_gex.KexGex-class.html#preferred_bits"><code>preferred_bits</code></a></td>
- <td>Variable in class <a href="../private/paramiko.kex_gex.KexGex-class.html"><code>paramiko.kex_gex.KexGex</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPFile-class.html#prefetch"><code>prefetch</code></a></td>
- <td>Method in class <a href="paramiko.SFTPFile-class.html"><code>paramiko.SFTPFile</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.primes-module.html"><code>primes</code></a></td>
- <td>Module in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPClient-class.html#put"><code>put</code></a></td>
- <td>Method in class <a href="paramiko.SFTPClient-class.html"><code>paramiko.SFTPClient</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BufferedFile-class.html#read"><code>read</code></a></td>
- <td>Method in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPHandle-class.html#read"><code>read</code></a></td>
- <td>Method in class <a href="paramiko.SFTPHandle-class.html"><code>paramiko.SFTPHandle</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Packetizer-class.html#read_all"><code>read_all</code></a></td>
- <td>Method in class <a href="../private/paramiko.Packetizer-class.html"><code>paramiko.Packetizer</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.primes.ModulusPack-class.html#read_file"><code>read_file</code></a></td>
- <td>Method in class <a href="../private/paramiko.primes.ModulusPack-class.html"><code>paramiko.primes.ModulusPack</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Packetizer-class.html#read_message"><code>read_message</code></a></td>
- <td>Method in class <a href="../private/paramiko.Packetizer-class.html"><code>paramiko.Packetizer</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BufferedFile-class.html#readline"><code>readline</code></a></td>
- <td>Method in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Packetizer-class.html#readline"><code>readline</code></a></td>
- <td>Method in class <a href="../private/paramiko.Packetizer-class.html"><code>paramiko.Packetizer</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BufferedFile-class.html#readlines"><code>readlines</code></a></td>
- <td>Method in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPClient-class.html#readlink"><code>readlink</code></a></td>
- <td>Method in class <a href="paramiko.SFTPClient-class.html"><code>paramiko.SFTPClient</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SFTPServerInterface-class.html#readlink"><code>readlink</code></a></td>
- <td>Method in class <a href="../private/paramiko.SFTPServerInterface-class.html"><code>paramiko.SFTPServerInterface</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#recv"><code>recv</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#recv_exit_status"><code>recv_exit_status</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#recv_ready"><code>recv_ready</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#recv_stderr"><code>recv_stderr</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#recv_stderr_ready"><code>recv_stderr_ready</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Packetizer-class.html#REKEY_BYTES"><code>REKEY_BYTES</code></a></td>
- <td>Variable in class <a href="../private/paramiko.Packetizer-class.html"><code>paramiko.Packetizer</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Packetizer-class.html#REKEY_PACKETS"><code>REKEY_PACKETS</code></a></td>
- <td>Variable in class <a href="../private/paramiko.Packetizer-class.html"><code>paramiko.Packetizer</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPClient-class.html#remove"><code>remove</code></a></td>
- <td>Method in class <a href="paramiko.SFTPClient-class.html"><code>paramiko.SFTPClient</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SFTPServerInterface-class.html#remove"><code>remove</code></a></td>
- <td>Method in class <a href="../private/paramiko.SFTPServerInterface-class.html"><code>paramiko.SFTPServerInterface</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPClient-class.html#rename"><code>rename</code></a></td>
- <td>Method in class <a href="paramiko.SFTPClient-class.html"><code>paramiko.SFTPClient</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SFTPServerInterface-class.html#rename"><code>rename</code></a></td>
- <td>Method in class <a href="../private/paramiko.SFTPServerInterface-class.html"><code>paramiko.SFTPServerInterface</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#renegotiate_keys"><code>renegotiate_keys</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#resize_pty"><code>resize_pty</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Message-class.html#rewind"><code>rewind</code></a></td>
- <td>Method in class <a href="paramiko.Message-class.html"><code>paramiko.Message</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPClient-class.html#rmdir"><code>rmdir</code></a></td>
- <td>Method in class <a href="paramiko.SFTPClient-class.html"><code>paramiko.SFTPClient</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SFTPServerInterface-class.html#rmdir"><code>rmdir</code></a></td>
- <td>Method in class <a href="../private/paramiko.SFTPServerInterface-class.html"><code>paramiko.SFTPServerInterface</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.RSAKey-class.html"><code>RSAKey</code></a></td>
- <td>Class in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.rsakey-module.html"><code>rsakey</code></a></td>
- <td>Module in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#run"><code>run</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="threading.Thread-class.html#run"><code>run</code></a></td>
- <td>Method in class <a href="threading.Thread-class.html"><code>threading.Thread</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.util-module.html#safe_string"><code>safe_string</code></a></td>
- <td>Function in module <a href="paramiko.util-module.html"><code>paramiko.util</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SecurityOptions-class.html"><code>SecurityOptions</code></a></td>
- <td>Class in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BufferedFile-class.html#seek"><code>seek</code></a></td>
- <td>Method in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPFile-class.html#seek"><code>seek</code></a></td>
- <td>Method in class <a href="paramiko.SFTPFile-class.html"><code>paramiko.SFTPFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BufferedFile-class.html#SEEK_CUR"><code>SEEK_CUR</code></a></td>
- <td>Variable in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BufferedFile-class.html#SEEK_CUR"><code>SEEK_CUR</code></a></td>
- <td>Variable in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BufferedFile-class.html#SEEK_CUR"><code>SEEK_CUR</code></a></td>
- <td>Variable in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BufferedFile-class.html#SEEK_CUR"><code>SEEK_CUR</code></a></td>
- <td>Variable in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BufferedFile-class.html#SEEK_END"><code>SEEK_END</code></a></td>
- <td>Variable in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BufferedFile-class.html#SEEK_END"><code>SEEK_END</code></a></td>
- <td>Variable in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BufferedFile-class.html#SEEK_END"><code>SEEK_END</code></a></td>
- <td>Variable in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BufferedFile-class.html#SEEK_END"><code>SEEK_END</code></a></td>
- <td>Variable in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BufferedFile-class.html#SEEK_SET"><code>SEEK_SET</code></a></td>
- <td>Variable in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BufferedFile-class.html#SEEK_SET"><code>SEEK_SET</code></a></td>
- <td>Variable in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BufferedFile-class.html#SEEK_SET"><code>SEEK_SET</code></a></td>
- <td>Variable in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BufferedFile-class.html#SEEK_SET"><code>SEEK_SET</code></a></td>
- <td>Variable in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#send"><code>send</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#send_exit_status"><code>send_exit_status</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#send_ignore"><code>send_ignore</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Packetizer-class.html#send_message"><code>send_message</code></a></td>
- <td>Method in class <a href="../private/paramiko.Packetizer-class.html"><code>paramiko.Packetizer</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#send_stderr"><code>send_stderr</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#sendall"><code>sendall</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#sendall_stderr"><code>sendall_stderr</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.server-module.html"><code>server</code></a></td>
- <td>Module in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.ServerInterface-class.html"><code>ServerInterface</code></a></td>
- <td>Class in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SFTPServerInterface-class.html#session_ended"><code>session_ended</code></a></td>
- <td>Method in class <a href="../private/paramiko.SFTPServerInterface-class.html"><code>paramiko.SFTPServerInterface</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SFTPServerInterface-class.html#session_started"><code>session_started</code></a></td>
- <td>Method in class <a href="../private/paramiko.SFTPServerInterface-class.html"><code>paramiko.SFTPServerInterface</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.pipe.PosixPipe-class.html#set"><code>set</code></a></td>
- <td>Method in class <a href="../private/paramiko.pipe.PosixPipe-class.html"><code>paramiko.pipe.PosixPipe</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.pipe.WindowsPipe-class.html#set"><code>set</code></a></td>
- <td>Method in class <a href="../private/paramiko.pipe.WindowsPipe-class.html"><code>paramiko.pipe.WindowsPipe</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#set_combine_stderr"><code>set_combine_stderr</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPServer-class.html#set_file_attr"><code>set_file_attr</code></a></td>
- <td>Method in class <a href="paramiko.SFTPServer-class.html"><code>paramiko.SFTPServer</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.pipe.PosixPipe-class.html#set_forever"><code>set_forever</code></a></td>
- <td>Method in class <a href="../private/paramiko.pipe.PosixPipe-class.html"><code>paramiko.pipe.PosixPipe</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.pipe.WindowsPipe-class.html#set_forever"><code>set_forever</code></a></td>
- <td>Method in class <a href="../private/paramiko.pipe.WindowsPipe-class.html"><code>paramiko.pipe.WindowsPipe</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Packetizer-class.html#set_hexdump"><code>set_hexdump</code></a></td>
- <td>Method in class <a href="../private/paramiko.Packetizer-class.html"><code>paramiko.Packetizer</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#set_hexdump"><code>set_hexdump</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Packetizer-class.html#set_inbound_cipher"><code>set_inbound_cipher</code></a></td>
- <td>Method in class <a href="../private/paramiko.Packetizer-class.html"><code>paramiko.Packetizer</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Packetizer-class.html#set_inbound_compressor"><code>set_inbound_compressor</code></a></td>
- <td>Method in class <a href="../private/paramiko.Packetizer-class.html"><code>paramiko.Packetizer</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Packetizer-class.html#set_keepalive"><code>set_keepalive</code></a></td>
- <td>Method in class <a href="../private/paramiko.Packetizer-class.html"><code>paramiko.Packetizer</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#set_keepalive"><code>set_keepalive</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Packetizer-class.html#set_log"><code>set_log</code></a></td>
- <td>Method in class <a href="../private/paramiko.Packetizer-class.html"><code>paramiko.Packetizer</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#set_log_channel"><code>set_log_channel</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#set_name"><code>set_name</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Packetizer-class.html#set_outbound_cipher"><code>set_outbound_cipher</code></a></td>
- <td>Method in class <a href="../private/paramiko.Packetizer-class.html"><code>paramiko.Packetizer</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Packetizer-class.html#set_outbound_compressor"><code>set_outbound_compressor</code></a></td>
- <td>Method in class <a href="../private/paramiko.Packetizer-class.html"><code>paramiko.Packetizer</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPFile-class.html#set_pipelined"><code>set_pipelined</code></a></td>
- <td>Method in class <a href="paramiko.SFTPFile-class.html"><code>paramiko.SFTPFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#set_subsystem_handler"><code>set_subsystem_handler</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#setblocking"><code>setblocking</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPFile-class.html#setblocking"><code>setblocking</code></a></td>
- <td>Method in class <a href="paramiko.SFTPFile-class.html"><code>paramiko.SFTPFile</code></a></td></tr>
- <tr><td width="15%"><a href="threading.Thread-class.html#setDaemon"><code>setDaemon</code></a></td>
- <td>Method in class <a href="threading.Thread-class.html"><code>threading.Thread</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.logging22.StreamHandler-class.html#setFormatter"><code>setFormatter</code></a></td>
- <td>Method in class <a href="../private/paramiko.logging22.StreamHandler-class.html"><code>paramiko.logging22.StreamHandler</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.logging22.logger-class.html#setLevel"><code>setLevel</code></a></td>
- <td>Method in class <a href="../private/paramiko.logging22.logger-class.html"><code>paramiko.logging22.logger</code></a></td></tr>
- <tr><td width="15%"><a href="threading.Thread-class.html#setName"><code>setName</code></a></td>
- <td>Method in class <a href="threading.Thread-class.html"><code>threading.Thread</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#settimeout"><code>settimeout</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPFile-class.html#settimeout"><code>settimeout</code></a></td>
- <td>Method in class <a href="paramiko.SFTPFile-class.html"><code>paramiko.SFTPFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTP-class.html"><code>SFTP</code></a></td>
- <td>Class in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html"><code>sftp</code></a></td>
- <td>Module in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp_attr-module.html"><code>sftp_attr</code></a></td>
- <td>Module in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#SFTP_BAD_MESSAGE"><code>SFTP_BAD_MESSAGE</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp_client-module.html"><code>sftp_client</code></a></td>
- <td>Module in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#SFTP_CONNECTION_LOST"><code>SFTP_CONNECTION_LOST</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#SFTP_DESC"><code>SFTP_DESC</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#SFTP_EOF"><code>SFTP_EOF</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#SFTP_FAILURE"><code>SFTP_FAILURE</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp_file-module.html"><code>sftp_file</code></a></td>
- <td>Module in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#SFTP_FLAG_APPEND"><code>SFTP_FLAG_APPEND</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#SFTP_FLAG_CREATE"><code>SFTP_FLAG_CREATE</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#SFTP_FLAG_EXCL"><code>SFTP_FLAG_EXCL</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#SFTP_FLAG_READ"><code>SFTP_FLAG_READ</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#SFTP_FLAG_TRUNC"><code>SFTP_FLAG_TRUNC</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#SFTP_FLAG_WRITE"><code>SFTP_FLAG_WRITE</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp_handle-module.html"><code>sftp_handle</code></a></td>
- <td>Module in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#SFTP_NO_CONNECTION"><code>SFTP_NO_CONNECTION</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#SFTP_NO_SUCH_FILE"><code>SFTP_NO_SUCH_FILE</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#SFTP_OK"><code>SFTP_OK</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#SFTP_OP_UNSUPPORTED"><code>SFTP_OP_UNSUPPORTED</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#SFTP_PERMISSION_DENIED"><code>SFTP_PERMISSION_DENIED</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp_server-module.html"><code>sftp_server</code></a></td>
- <td>Module in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp_si-module.html"><code>sftp_si</code></a></td>
- <td>Module in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPAttributes-class.html"><code>SFTPAttributes</code></a></td>
- <td>Class in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPClient-class.html"><code>SFTPClient</code></a></td>
- <td>Class in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPError-class.html"><code>SFTPError</code></a></td>
- <td>Class in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPFile-class.html"><code>SFTPFile</code></a></td>
- <td>Class in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPHandle-class.html"><code>SFTPHandle</code></a></td>
- <td>Class in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPServer-class.html"><code>SFTPServer</code></a></td>
- <td>Class in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SFTPServerInterface-class.html"><code>SFTPServerInterface</code></a></td>
- <td>Class in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#shutdown"><code>shutdown</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#shutdown_read"><code>shutdown_read</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#shutdown_write"><code>shutdown_write</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.AgentKey-class.html#sign_ssh_data"><code>sign_ssh_data</code></a></td>
- <td>Method in class <a href="paramiko.AgentKey-class.html"><code>paramiko.AgentKey</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.DSSKey-class.html#sign_ssh_data"><code>sign_ssh_data</code></a></td>
- <td>Method in class <a href="paramiko.DSSKey-class.html"><code>paramiko.DSSKey</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.PKey-class.html#sign_ssh_data"><code>sign_ssh_data</code></a></td>
- <td>Method in class <a href="../private/paramiko.PKey-class.html"><code>paramiko.PKey</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.RSAKey-class.html#sign_ssh_data"><code>sign_ssh_data</code></a></td>
- <td>Method in class <a href="paramiko.RSAKey-class.html"><code>paramiko.RSAKey</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.agent-module.html#SSH2_AGENT_IDENTITIES_ANSWER"><code>SSH2_AGENT_IDENTITIES_ANSWER</code></a></td>
- <td>Variable in module <a href="paramiko.agent-module.html"><code>paramiko.agent</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.agent-module.html#SSH2_AGENT_SIGN_RESPONSE"><code>SSH2_AGENT_SIGN_RESPONSE</code></a></td>
- <td>Variable in module <a href="paramiko.agent-module.html"><code>paramiko.agent</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.agent-module.html#SSH2_AGENTC_REQUEST_IDENTITIES"><code>SSH2_AGENTC_REQUEST_IDENTITIES</code></a></td>
- <td>Variable in module <a href="paramiko.agent-module.html"><code>paramiko.agent</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.agent-module.html#SSH2_AGENTC_SIGN_REQUEST"><code>SSH2_AGENTC_SIGN_REQUEST</code></a></td>
- <td>Variable in module <a href="paramiko.agent-module.html"><code>paramiko.agent</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.ssh_exception-module.html"><code>ssh_exception</code></a></td>
- <td>Module in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SSHException-class.html"><code>SSHException</code></a></td>
- <td>Class in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="threading.Thread-class.html#start"><code>start</code></a></td>
- <td>Method in class <a href="threading.Thread-class.html"><code>threading.Thread</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#start_client"><code>start_client</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.kex_gex.KexGex-class.html#start_kex"><code>start_kex</code></a></td>
- <td>Method in class <a href="../private/paramiko.kex_gex.KexGex-class.html"><code>paramiko.kex_gex.KexGex</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.kex_group1.KexGroup1-class.html#start_kex"><code>start_kex</code></a></td>
- <td>Method in class <a href="../private/paramiko.kex_group1.KexGroup1-class.html"><code>paramiko.kex_group1.KexGroup1</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#start_server"><code>start_server</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPServer-class.html#start_subsystem"><code>start_subsystem</code></a></td>
- <td>Method in class <a href="paramiko.SFTPServer-class.html"><code>paramiko.SFTPServer</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SubsystemHandler-class.html#start_subsystem"><code>start_subsystem</code></a></td>
- <td>Method in class <a href="paramiko.SubsystemHandler-class.html"><code>paramiko.SubsystemHandler</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPClient-class.html#stat"><code>stat</code></a></td>
- <td>Method in class <a href="paramiko.SFTPClient-class.html"><code>paramiko.SFTPClient</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPFile-class.html#stat"><code>stat</code></a></td>
- <td>Method in class <a href="paramiko.SFTPFile-class.html"><code>paramiko.SFTPFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPHandle-class.html#stat"><code>stat</code></a></td>
- <td>Method in class <a href="paramiko.SFTPHandle-class.html"><code>paramiko.SFTPHandle</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SFTPServerInterface-class.html#stat"><code>stat</code></a></td>
- <td>Method in class <a href="../private/paramiko.SFTPServerInterface-class.html"><code>paramiko.SFTPServerInterface</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#stop_thread"><code>stop_thread</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.logging22.StreamHandler-class.html"><code>StreamHandler</code></a></td>
- <td>Class in module <a href="../private/paramiko.logging22-module.html"><code>paramiko.logging22</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SubsystemHandler-class.html"><code>SubsystemHandler</code></a></td>
- <td>Class in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPClient-class.html#symlink"><code>symlink</code></a></td>
- <td>Method in class <a href="paramiko.SFTPClient-class.html"><code>paramiko.SFTPClient</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.SFTPServerInterface-class.html#symlink"><code>symlink</code></a></td>
- <td>Method in class <a href="../private/paramiko.SFTPServerInterface-class.html"><code>paramiko.SFTPServerInterface</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.util-module.html#tb_strings"><code>tb_strings</code></a></td>
- <td>Function in module <a href="paramiko.util-module.html"><code>paramiko.util</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BufferedFile-class.html#tell"><code>tell</code></a></td>
- <td>Method in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="threading.Thread-class.html"><code>Thread</code></a></td>
- <td>Class in module <code>threading</code></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html"><code>Transport</code></a></td>
- <td>Class in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.transport-module.html"><code>transport</code></a></td>
- <td>Module in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.type-class.html"><code>type</code></a></td>
- <td>Class in module <code>__builtin__</code></td></tr>
- <tr><td width="15%"><a href="paramiko.util-module.html#unhexify"><code>unhexify</code></a></td>
- <td>Function in module <a href="paramiko.util-module.html"><code>paramiko.util</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#use_compression"><code>use_compression</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.util-module.html"><code>util</code></a></td>
- <td>Module in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPClient-class.html#utime"><code>utime</code></a></td>
- <td>Method in class <a href="paramiko.SFTPClient-class.html"><code>paramiko.SFTPClient</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.DSSKey-class.html#verify_ssh_sig"><code>verify_ssh_sig</code></a></td>
- <td>Method in class <a href="paramiko.DSSKey-class.html"><code>paramiko.DSSKey</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.PKey-class.html#verify_ssh_sig"><code>verify_ssh_sig</code></a></td>
- <td>Method in class <a href="../private/paramiko.PKey-class.html"><code>paramiko.PKey</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.RSAKey-class.html#verify_ssh_sig"><code>verify_ssh_sig</code></a></td>
- <td>Method in class <a href="paramiko.RSAKey-class.html"><code>paramiko.RSAKey</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.AuthHandler-class.html#wait_for_response"><code>wait_for_response</code></a></td>
- <td>Method in class <a href="../private/paramiko.AuthHandler-class.html"><code>paramiko.AuthHandler</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.common-module.html#WARNING"><code>WARNING</code></a></td>
- <td>Variable in module <a href="../private/paramiko.common-module.html"><code>paramiko.common</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.logging22-module.html#WARNING"><code>WARNING</code></a></td>
- <td>Variable in module <a href="../private/paramiko.logging22-module.html"><code>paramiko.logging22</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.pipe.WindowsPipe-class.html"><code>WindowsPipe</code></a></td>
- <td>Class in module <a href="../private/paramiko.pipe-module.html"><code>paramiko.pipe</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BufferedFile-class.html#write"><code>write</code></a></td>
- <td>Method in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPHandle-class.html#write"><code>write</code></a></td>
- <td>Method in class <a href="paramiko.SFTPHandle-class.html"><code>paramiko.SFTPHandle</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.Packetizer-class.html#write_all"><code>write_all</code></a></td>
- <td>Method in class <a href="../private/paramiko.Packetizer-class.html"><code>paramiko.Packetizer</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.DSSKey-class.html#write_private_key_file"><code>write_private_key_file</code></a></td>
- <td>Method in class <a href="paramiko.DSSKey-class.html"><code>paramiko.DSSKey</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.PKey-class.html#write_private_key_file"><code>write_private_key_file</code></a></td>
- <td>Method in class <a href="../private/paramiko.PKey-class.html"><code>paramiko.PKey</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.RSAKey-class.html#write_private_key_file"><code>write_private_key_file</code></a></td>
- <td>Method in class <a href="paramiko.RSAKey-class.html"><code>paramiko.RSAKey</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BufferedFile-class.html#writelines"><code>writelines</code></a></td>
- <td>Method in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BufferedFile-class.html#xreadlines"><code>xreadlines</code></a></td>
- <td>Method in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.compress.ZlibCompressor-class.html"><code>ZlibCompressor</code></a></td>
- <td>Class in module <a href="../private/paramiko.compress-module.html"><code>paramiko.compress</code></a></td></tr>
- <tr><td width="15%"><a href="../private/paramiko.compress.ZlibDecompressor-class.html"><code>ZlibDecompressor</code></a></td>
- <td>Class in module <a href="../private/paramiko.compress-module.html"><code>paramiko.compress</code></a></td></tr>
-</table>
-<br />
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th bgcolor="#70b0f0" class="navselect">&nbsp;&nbsp;&nbsp;Index&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:48 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko-module.html b/docs/private/paramiko-module.html
deleted file mode 100644
index 4e9f899..0000000
--- a/docs/private/paramiko-module.html
+++ /dev/null
@@ -1,407 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th bgcolor="#70b0f0" class="navselect">&nbsp;&nbsp;&nbsp;Home&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- Package&nbsp;paramiko
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/paramiko-module.html">hide&nbsp;private</a>]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko-module.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF PACKAGE DESCRIPTION =========== -->
-<h2 class="package">Package paramiko</h2>
-
-<p><i>Paramiko</i> (a combination of the esperanto words for
-&quot;paranoid&quot; and &quot;friend&quot;) is a module for python 2.3
-or greater that implements the SSH2 protocol for secure (encrypted and
-authenticated) connections to remote machines. Unlike SSL (aka TLS), the
-SSH2 protocol does not require heirarchical certificates signed by a
-powerful central authority. You may know SSH2 as the protocol that
-replaced <code>telnet</code> and <code>rsh</code> for secure access to
-remote shells, but the protocol also includes the ability to open
-arbitrary channels to remote services across an encrypted tunnel. (This
-is how <code>sftp</code> works, for example.)</p>
-<p>To use this package, pass a socket (or socket-like object) to a <a
-href="paramiko.Transport-class.html"
-class="link"><code>Transport</code></a>, and use <a
-href="paramiko.Transport-class.html#start_server"
-class="link"><code>start_server</code></a> or <a
-href="paramiko.Transport-class.html#start_client"
-class="link"><code>start_client</code></a> to negoatite with the remote
-host as either a server or client. As a client, you are responsible for
-authenticating using a password or private key, and checking the server's
-host key. <i>(Key signature and verification is done by paramiko, but you
-will need to provide private keys and check that the content of a public
-key matches what you expected to see.)</i> As a server, you are
-responsible for deciding which users, passwords, and keys to allow, and
-what kind of channels to allow.</p>
-<p>Once you have finished, either side may request flow-controlled <a
-href="paramiko.Channel-class.html" class="link"><code>Channel</code></a>s
-to the other side, which are python objects that act like sockets, but
-send and receive data over the encrypted session.</p>
-<p>Paramiko is written entirely in python (no C or platform-dependent
-code) and is released under the GNU Lesser General Public License
-(LGPL).</p>
-Website: <a
-href="http://www.lag.net/paramiko/">http://www.lag.net/paramiko/</a>
-<hr/>
-<p><b>Version:</b> 1.5.2 (rhydon)
-</p>
-
-<p><b>Author:</b> Robey Pointer
-</p>
-
-<p><b>Contact:</b> robey&#64;lag.net
-</p>
-
-<p><b>License:</b> GNU Lesser General Public License (LGPL)
-</p>
-
-
-<!-- =========== START OF SUBMODULES =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Submodules</th></tr>
- <tr><td><ul>
-<li> <b><a href="paramiko.agent-module.html"><code>agent</code></a></b>: <i>SSH Agent interface for Unix clients.</i>
-<li> <b><a href="paramiko.dsskey-module.html"><code>dsskey</code></a></b>: <i><a href="paramiko.DSSKey-class.html"
-class="link"><code>DSSKey</code></a></i>
-<li> <b><a href="paramiko.file-module.html"><code>file</code></a></b>: <i>BufferedFile.</i>
-<li> <b><a href="paramiko.message-module.html"><code>message</code></a></b>: <i>Implementation of an SSH2 &quot;message&quot;.</i>
-<li> <b><a href="paramiko.pkey-module.html"><code>pkey</code></a></b>: <i>Common API for all public keys.</i>
-<li> <b><a href="paramiko.rsakey-module.html"><code>rsakey</code></a></b>: <i><a href="paramiko.RSAKey-class.html"
-class="link"><code>RSAKey</code></a></i>
-<li> <b><a href="paramiko.server-module.html"><code>server</code></a></b>: <i><a href="../private/paramiko.ServerInterface-class.html"
-class="link"><code>ServerInterface</code></a> is an interface to override
-for server support.</i>
-<li> <b><a href="paramiko.sftp-module.html"><code>sftp</code></a></b>
-<li> <b><a href="paramiko.sftp_attr-module.html"><code>sftp_attr</code></a></b>
-<li> <b><a href="paramiko.sftp_client-module.html"><code>sftp_client</code></a></b>: <i>Client-mode SFTP support.</i>
-<li> <b><a href="paramiko.sftp_file-module.html"><code>sftp_file</code></a></b>: <i><a href="paramiko.SFTPFile-class.html"
-class="link"><code>SFTPFile</code></a></i>
-<li> <b><a href="paramiko.sftp_handle-module.html"><code>sftp_handle</code></a></b>: <i>Abstraction of an SFTP file handle (for server mode).</i>
-<li> <b><a href="paramiko.sftp_server-module.html"><code>sftp_server</code></a></b>: <i>Server-mode SFTP support.</i>
-<li> <b><a href="paramiko.sftp_si-module.html"><code>sftp_si</code></a></b>: <i><a href="../private/paramiko.SFTPServerInterface-class.html"
-class="link"><code>SFTPServerInterface</code></a> is an interface to
-override for SFTP server support.</i>
-<li> <b><a href="paramiko.transport-module.html"><code>transport</code></a></b>: <i><a href="paramiko.Transport-class.html"
-class="link"><code>Transport</code></a> handles the core SSH2
-protocol.</i>
-<li> <b><a href="paramiko.util-module.html"><code>util</code></a></b>: <i>Useful functions used by the rest of paramiko.</i>
-<li> <b><a href="../private/paramiko.auth_handler-module.html"><code>auth_handler</code></a></b>: <i><a href="../private/paramiko.AuthHandler-class.html"
-class="link"><code>AuthHandler</code></a></i>
-<li> <b><a href="../private/paramiko.ber-module.html"><code>ber</code></a></b>
-<li> <b><a href="../private/paramiko.channel-module.html"><code>channel</code></a></b>: <i>Abstraction for an SSH2 channel.</i>
-<li> <b><a href="../private/paramiko.common-module.html"><code>common</code></a></b>: <i>Common constants and global variables.</i>
-<li> <b><a href="../private/paramiko.compress-module.html"><code>compress</code></a></b>: <i>Compression implementations for a Transport.</i>
-<li> <b><a href="../private/paramiko.kex_gex-module.html"><code>kex_gex</code></a></b>: <i>Variant on <a
-href="../private/paramiko.kex_group1.KexGroup1-class.html"
-class="link"><code>KexGroup1</code></a> where the prime &quot;p&quot; and
-generator &quot;g&quot; are provided by the server.</i>
-<li> <b><a href="../private/paramiko.kex_group1-module.html"><code>kex_group1</code></a></b>: <i>Standard SSH key exchange (&quot;kex&quot; if you wanna sound
-cool).</i>
-<li> <b><a href="../private/paramiko.logging22-module.html"><code>logging22</code></a></b>: <i>Stub out logging on python &lt; 2.3.</i>
-<li> <b><a href="../private/paramiko.packet-module.html"><code>packet</code></a></b>: <i>Packetizer.</i>
-<li> <b><a href="../private/paramiko.pipe-module.html"><code>pipe</code></a></b>: <i>Abstraction of a one-way pipe where the read end can be used in
-select().</i>
-<li> <b><a href="../private/paramiko.primes-module.html"><code>primes</code></a></b>: <i>Utility functions for dealing with primes.</i>
-<li> <b><a href="../private/paramiko.ssh_exception-module.html"><code>ssh_exception</code></a></b>: <i>Exceptions defined by paramiko.</i>
- </ul></td></tr>
-</table><br />
-
-
-<!-- =========== START OF CLASSES =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Classes</th></tr>
-<tr><td width="15%">
- <b><a href="paramiko.Agent-class.html"><code>Agent</code></a></b></td>
- <td>Client interface for using private keys from an SSH agent running on
-the local machine.</td></tr>
-<tr><td width="15%">
- <b><a href="paramiko.AgentKey-class.html"><code>AgentKey</code></a></b></td>
- <td>Private key held in a local SSH agent.</td></tr>
-<tr><td width="15%">
- <b><a href="paramiko.BufferedFile-class.html"><code>BufferedFile</code></a></b></td>
- <td>Reusable base class to implement python-style file buffering around a
-simpler stream.</td></tr>
-<tr><td width="15%">
- <b><a href="paramiko.Channel-class.html"><code>Channel</code></a></b></td>
- <td>A secure tunnel across an SSH <a href="paramiko.Transport-class.html"
-class="link"><code>Transport</code></a>.</td></tr>
-<tr><td width="15%">
- <b><a href="paramiko.DSSKey-class.html"><code>DSSKey</code></a></b></td>
- <td>Representation of a DSS key which can be used to sign an verify SSH2
-data.</td></tr>
-<tr><td width="15%">
- <b><a href="paramiko.Message-class.html"><code>Message</code></a></b></td>
- <td>An SSH2 <i>Message</i> is a stream of bytes that encodes some
-combination of strings, integers, bools, and infinite-precision integers
-(known in python as <i>long</i>s).</td></tr>
-<tr><td width="15%">
- <b><a href="paramiko.RSAKey-class.html"><code>RSAKey</code></a></b></td>
- <td>Representation of an RSA key which can be used to sign and verify SSH2
-data.</td></tr>
-<tr><td width="15%">
- <b><a href="paramiko.SecurityOptions-class.html"><code>SecurityOptions</code></a></b></td>
- <td>Simple object containing the security preferences of an ssh
-transport.</td></tr>
-<tr><td width="15%">
- <b><a href="paramiko.SFTP-class.html"><code>SFTP</code></a></b></td>
- <td>an alias for <a href="paramiko.SFTPClient-class.html"
-class="link"><code>SFTPClient</code></a> for backwards compatability</td></tr>
-<tr><td width="15%">
- <b><a href="paramiko.SFTPAttributes-class.html"><code>SFTPAttributes</code></a></b></td>
- <td>Representation of the attributes of a file (or proxied file) for SFTP
-in client or server mode.</td></tr>
-<tr><td width="15%">
- <b><a href="paramiko.SFTPClient-class.html"><code>SFTPClient</code></a></b></td>
- <td>SFTP client object.</td></tr>
-<tr><td width="15%">
- <b><a href="paramiko.SFTPFile-class.html"><code>SFTPFile</code></a></b></td>
- <td>Proxy object for a file on the remote server, in client mode SFTP.</td></tr>
-<tr><td width="15%">
- <b><a href="paramiko.SFTPHandle-class.html"><code>SFTPHandle</code></a></b></td>
- <td>Abstract object representing a handle to an open file (or folder) in
-an SFTP server implementation.</td></tr>
-<tr><td width="15%">
- <b><a href="paramiko.SFTPServer-class.html"><code>SFTPServer</code></a></b></td>
- <td>Server-side SFTP subsystem support.</td></tr>
-<tr><td width="15%">
- <b><a href="paramiko.SubsystemHandler-class.html"><code>SubsystemHandler</code></a></b></td>
- <td>Handler for a subsytem in server mode.</td></tr>
-<tr><td width="15%">
- <b><a href="paramiko.Transport-class.html"><code>Transport</code></a></b></td>
- <td>An SSH Transport attaches to a stream (usually a socket), negotiates
-an encrypted session, authenticates, and then creates stream tunnels,
-called <a href="paramiko.Channel-class.html"
-class="link"><code>Channel</code></a>s, across the session.</td></tr>
-<tr><td width="15%">
- <b><a href="../private/paramiko.AuthHandler-class.html"><code>AuthHandler</code></a></b></td>
- <td>Internal class to handle the mechanics of authentication.</td></tr>
-<tr><td width="15%">
- <b><a href="../private/paramiko.BaseSFTP-class.html"><code>BaseSFTP</code></a></b></td>
- <td>&nbsp;</td></tr>
-<tr><td width="15%">
- <b><a href="../private/paramiko.ChannelFile-class.html"><code>ChannelFile</code></a></b></td>
- <td>A file-like wrapper around <a href="paramiko.Channel-class.html"
-class="link"><code>Channel</code></a>.</td></tr>
-<tr><td width="15%">
- <b><a href="../private/paramiko.Packetizer-class.html"><code>Packetizer</code></a></b></td>
- <td>Implementation of the base SSH packet protocol.</td></tr>
-<tr><td width="15%">
- <b><a href="../private/paramiko.PKey-class.html"><code>PKey</code></a></b></td>
- <td>Base class for public keys.</td></tr>
-<tr><td width="15%">
- <b><a href="../private/paramiko.ServerInterface-class.html"><code>ServerInterface</code></a></b></td>
- <td>This class defines an interface for controlling the behavior of
-paramiko in server mode.</td></tr>
-<tr><td width="15%">
- <b><a href="../private/paramiko.SFTPServerInterface-class.html"><code>SFTPServerInterface</code></a></b></td>
- <td>This class defines an interface for controlling the behavior of
-paramiko when using the <a href="paramiko.SFTPServer-class.html"
-class="link"><code>SFTPServer</code></a> subsystem to provide an SFTP
-server.</td></tr>
-<tr><td width="15%">
- <b><a href="../private/paramiko.ServerInterface-class.html"><code>x</code></a></b></td>
- <td>This class defines an interface for controlling the behavior of
-paramiko in server mode.</td></tr>
-</table><br />
-
-
-<!-- =========== START OF EXCEPTIONS =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Exceptions</th></tr>
-<tr><td width="15%">
- <b><a href="paramiko.BadAuthenticationType-class.html"><code>BadAuthenticationType</code></a></b></td>
- <td>Exception raised when an authentication type (like password) is used,
-but the server isn't allowing that type.</td></tr>
-<tr><td width="15%">
- <b><a href="paramiko.PasswordRequiredException-class.html"><code>PasswordRequiredException</code></a></b></td>
- <td>Exception raised when a password is needed to unlock a private key
-file.</td></tr>
-<tr><td width="15%">
- <b><a href="paramiko.SFTPError-class.html"><code>SFTPError</code></a></b></td>
- <td>&nbsp;</td></tr>
-<tr><td width="15%">
- <b><a href="paramiko.SSHException-class.html"><code>SSHException</code></a></b></td>
- <td>Exception raised by failures in SSH2 protocol negotiation or logic
-errors.</td></tr>
-</table><br />
-
-
-<!-- =========== START OF VARIABLE SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Variable Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
-<td><b><a href="../private/paramiko-module.html#__author__"><code>__author__</code></a></b> = <span title="'Robey Pointer &lt;robey@lag.net&gt;'"><code><span class="variable-quote">'</span>Robey&nbsp;Pointer&nbsp;&lt;robey&#64;lag.net&gt;<span class="variable-quote">'</span> </code>
-</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
-<td><b><a href="../private/paramiko-module.html#__date__"><code>__date__</code></a></b> = <span title="'04 Dec 2005'"><code><span class="variable-quote">'</span>04&nbsp;Dec&nbsp;2005<span class="variable-quote">'</span> </code>
-</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
-<td><b><a href="../private/paramiko-module.html#__license__"><code>__license__</code></a></b> = <span title="'GNU Lesser General Public License (LGPL)'"><code><span class="variable-quote">'</span>GNU&nbsp;Lesser&nbsp;General&nbsp;Public&nbsp;License&nbsp;(LGPL)<span class="variable-quote">'<span class="variable-ellipsis">...</span></code>
-</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
-<td><b><a href="../private/paramiko-module.html#__version__"><code>__version__</code></a></b> = <span title="'1.5.2 (rhydon)'"><code><span class="variable-quote">'</span>1.5.2&nbsp;(rhydon)<span class="variable-quote">'</span> </code>
-</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>tuple</code></font></td>
-<td><b><a href="../private/paramiko-module.html#__version_info__"><code>__version_info__</code></a></b> = <span title="(1, 5, 2)"><code>(1,&nbsp;5,&nbsp;2) </code>
-</span></td></tr>
-</table><br />
-
-
-<!-- =========== START OF VARIABLE DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Variable Details</th></tr>
-</table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="__author__"></a>
-<h3>__author__</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>str</code>
-
- </dd>
-<span title="'Robey Pointer &lt;robey@lag.net&gt;'"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-<span class="variable-quote">'</span>Robey Pointer &lt;robey&#64;lag.net&gt;<span class="variable-quote">'</span> </pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="__date__"></a>
-<h3>__date__</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>str</code>
-
- </dd>
-<span title="'04 Dec 2005'"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-<span class="variable-quote">'</span>04 Dec 2005<span class="variable-quote">'</span> </pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="__license__"></a>
-<h3>__license__</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>str</code>
-
- </dd>
-<span title="'GNU Lesser General Public License (LGPL)'"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-<span class="variable-quote">'</span>GNU Lesser General Public License (LGPL)<span class="variable-quote">'</span> </pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="__version__"></a>
-<h3>__version__</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>str</code>
-
- </dd>
-<span title="'1.5.2 (rhydon)'"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-<span class="variable-quote">'</span>1.5.2 (rhydon)<span class="variable-quote">'</span> </pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="__version_info__"></a>
-<h3>__version_info__</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>tuple</code>
-
- </dd>
-<span title="(1, 5, 2)"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-(1, 5, 2) </pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th bgcolor="#70b0f0" class="navselect">&nbsp;&nbsp;&nbsp;Home&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.Agent-class.html b/docs/private/paramiko.Agent-class.html
deleted file mode 100644
index 1f4e20b..0000000
--- a/docs/private/paramiko.Agent-class.html
+++ /dev/null
@@ -1,155 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.Agent</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Class&nbsp;Agent
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/paramiko.Agent-class.html">hide&nbsp;private</a>]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.Agent-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Class Agent</h2>
-
-<hr/>
-
-<p>Client interface for using private keys from an SSH agent running on
-the local machine. If an SSH agent is running, this class can be used to
-connect to it and retreive <a href="../private/paramiko.PKey-class.html"
-class="link"><code>PKey</code></a> objects which can be used when
-attempting to authenticate to remote SSH servers.</p>
-Because the SSH agent protocol uses environment variables and
-unix-domain sockets, this probably doesn't work on Windows. It does work
-on most posix platforms though (Linux and MacOS X, for example).
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Agent-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Open a session with the local machine's SSH agent, if one is
-running.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Agent-class.html#close" class="summary-sig-name"><code>close</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Close the SSH agent connection.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> tuple of <a href="paramiko.AgentKey-class.html"
- class="link"><code>AgentKey</code></a>
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Agent-class.html#get_keys" class="summary-sig-name"><code>get_keys</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return the list of keys available through the SSH agent, if any.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_read_all"></a><span class="summary-sig"><span class="summary-sig-name">_read_all</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>wanted</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_send_message"></a><span class="summary-sig"><span class="summary-sig-name">_send_message</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>msg</span>)</span></code>
-</td></tr>
-</table><br />
-
-
-<!-- =========== START OF METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Method Details</th></tr>
-</table>
-
-<a name="__init__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__init__</span>(<span class=sig-arg>self</span>)</span>
- <br /><i>(Constructor)</i>
- </h3>
- Open a session with the local machine's SSH agent, if one is
- running. If no agent is running, initialization will succeed, but <a
- href="paramiko.Agent-class.html#get_keys"
- class="link"><code>get_keys</code></a> will return an empty tuple.
- <dl><dt></dt><dd>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>SSHException</b></code> -
- if an SSH agent is found, but speaks an incompatible
- protocol
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="close"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">close</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Close the SSH agent connection.
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-
-<a name="get_keys"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_keys</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Return the list of keys available through the SSH agent, if any. If
- no SSH agent was running (or it couldn't be contacted), an empty list
- will be returned.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- a list of keys available on the SSH agent
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=tuple of <a href="paramiko.AgentKey-class.html"
- class="link"><code>AgentKey</code></a>)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:48 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.AgentKey-class.html b/docs/private/paramiko.AgentKey-class.html
deleted file mode 100644
index 28b1659..0000000
--- a/docs/private/paramiko.AgentKey-class.html
+++ /dev/null
@@ -1,319 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.AgentKey</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Class&nbsp;AgentKey
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/paramiko.AgentKey-class.html">hide&nbsp;private</a>]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.AgentKey-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type AgentKey</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
- <a href="../private/paramiko.PKey-class.html"><code>PKey</code></a> --+
- |
- <b>AgentKey</b>
-</pre><br />
-
-<hr/>
-
-Private key held in a local SSH agent. This type of key can be used
-for authenticating to a remote server (signing). Most other key
-operations work as expected.
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__init__"></a><span class="summary-sig"><span class="summary-sig-name">__init__</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>agent</span>,
- <span class=summary-sig-arg>blob</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.AgentKey-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return a string of an SSH <a href="paramiko.Message-class.html"
-class="link"><code>Message</code></a> made up of the public part(s) of
-this key.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.AgentKey-class.html#get_name" class="summary-sig-name"><code>get_name</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return the name of this private key implementation.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> <a href="paramiko.Message-class.html"
- class="link"><code>Message</code></a>
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.AgentKey-class.html#sign_ssh_data" class="summary-sig-name"><code>sign_ssh_data</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>randpool</span>,
- <span class=summary-sig-arg>data</span>)</span></code>
-<br />
-Sign a blob of data with this private key, and return a <a
-href="paramiko.Message-class.html" class="link"><code>Message</code></a>
-representing an SSH signature message.</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from PKey</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> int
-</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.PKey-class.html#__cmp__" class="summary-sig-name"><code>__cmp__</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>other</span>)</span></code>
-<br />
-Compare this key to another.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.PKey-class.html#_read_private_key_file" class="summary-sig-name"><code>_read_private_key_file</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>tag</span>,
- <span class=summary-sig-arg>filename</span>,
- <span class=summary-sig-arg>password</span>)</span></code>
-<br />
-Read an SSH2-format private key file, looking for a string of the type
-<code>&quot;BEGIN xxx PRIVATE KEY&quot;</code> for some <code>xxx</code>,
-base64-decode the text we find, and return it as a string.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.PKey-class.html#_write_private_key_file" class="summary-sig-name"><code>_write_private_key_file</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>tag</span>,
- <span class=summary-sig-arg>filename</span>,
- <span class=summary-sig-arg>data</span>,
- <span class=summary-sig-arg>password</span>)</span></code>
-<br />
-Write an SSH2-format private key file in a form that can be read by
-paramiko or openssh.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> bool
-</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.PKey-class.html#can_sign" class="summary-sig-name"><code>can_sign</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return <code>True</code> if this key has the private part necessary
-for signing data.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> <a href="../private/paramiko.PKey-class.html"
- class="link"><code>PKey</code></a>
-</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.PKey-class.html#from_private_key_file" class="summary-sig-name"><code>from_private_key_file</code></a>(<span class=summary-sig-arg>cl</span>,
- <span class=summary-sig-arg>filename</span>,
- <span class=summary-sig-arg>password</span>)</span></code>
-<br />
-Create a key object by reading a private key file. <i>(Class method)</i>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.PKey-class.html#get_base64" class="summary-sig-name"><code>get_base64</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return a base64 string containing the public part of this key.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> int
-</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.PKey-class.html#get_bits" class="summary-sig-name"><code>get_bits</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return the number of significant bits in this key.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.PKey-class.html#get_fingerprint" class="summary-sig-name"><code>get_fingerprint</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return an MD5 fingerprint of the public part of this key.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> boolean
-</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.PKey-class.html#verify_ssh_sig" class="summary-sig-name"><code>verify_ssh_sig</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>data</span>,
- <span class=summary-sig-arg>msg</span>)</span></code>
-<br />
-Given a blob of data, and an SSH message representing a signature of
-that data, verify that it was signed with this key.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.PKey-class.html#write_private_key_file" class="summary-sig-name"><code>write_private_key_file</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>filename</span>,
- <span class=summary-sig-arg>password</span>)</span></code>
-<br />
-Write private key contents into a file.</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__repr__() &lt;==&gt; repr(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-</table><br />
-
-
-<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Class Variable Summary</th></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from PKey</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>dict</code></font></td>
-<td><b><a href="../private/paramiko.PKey-class.html#_CIPHER_TABLE"><code>_CIPHER_TABLE</code></a></b> = <span title="{'DES-EDE3-CBC': {'blocksize': 8, 'cipher': &lt;module 'Crypto.Cipher.DES3' from '/usr/lib/python2.4/site-packages/Crypto/Cipher/DES3.so'&gt;, 'keysize': 24, 'mode': 2}}"><code>{'DES-EDE3-CBC':&nbsp;{'blocksize':&nbsp;8,&nbsp;'ciphe<span class="variable-ellipsis">...</span></code>
-</span></td></tr>
-</table><br />
-
-
-<!-- =========== START OF INSTANCE METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Instance Method Details</th></tr>
-</table>
-
-<a name="__str__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__str__</span>(<span class=sig-arg>self</span>)</span>
- <br /><i>(Informal representation operator)</i>
- </h3>
- Return a string of an SSH <a href="paramiko.Message-class.html"
- class="link"><code>Message</code></a> made up of the public part(s) of
- this key. This string is suitable for passing to <a
- href="../private/paramiko.PKey-class.html#__init__"
- class="link"><code>__init__</code></a> to re-create the key object
- later.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- string representation of an SSH key message.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="../private/paramiko.PKey-class.html#__str__"><code>paramiko.PKey.__str__</code></a> <i>(inherited documentation)</i>
-</dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="get_name"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_name</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Return the name of this private key implementation.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- name of this private key type, in SSH terminology (for
- example, <code>&quot;ssh-rsa&quot;</code>).
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="../private/paramiko.PKey-class.html#get_name"><code>paramiko.PKey.get_name</code></a> <i>(inherited documentation)</i>
-</dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="sign_ssh_data"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">sign_ssh_data</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>randpool</span>,
- <span class=sig-arg>data</span>)</span>
- </h3>
- Sign a blob of data with this private key, and return a <a
- href="paramiko.Message-class.html"
- class="link"><code>Message</code></a> representing an SSH signature
- message.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>randpool</b></code> -
- a secure random number generator.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<code>Crypto.Util.randpool.RandomPool</code>)</i>
- <dd><code><b>data</b></code> -
- the data to sign.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- an SSH signature message.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.Message-class.html"
- class="link"><code>Message</code></a>)</i>
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="../private/paramiko.PKey-class.html#sign_ssh_data"><code>paramiko.PKey.sign_ssh_data</code></a> <i>(inherited documentation)</i>
-</dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.AuthHandler-class.html b/docs/private/paramiko.AuthHandler-class.html
deleted file mode 100644
index 7c2b235..0000000
--- a/docs/private/paramiko.AuthHandler-class.html
+++ /dev/null
@@ -1,282 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.AuthHandler</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Class&nbsp;AuthHandler
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<b>show&nbsp;private</b>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="../private/paramiko.AuthHandler-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type AuthHandler</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
- <b>AuthHandler</b>
-</pre><br />
-
-<hr/>
-
-Internal class to handle the mechanics of authentication.
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__init__"></a><span class="summary-sig"><span class="summary-sig-name">__init__</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>transport</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_disconnect_no_more_auth"></a><span class="summary-sig"><span class="summary-sig-name">_disconnect_no_more_auth</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_disconnect_service_not_available"></a><span class="summary-sig"><span class="summary-sig-name">_disconnect_service_not_available</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_get_session_blob"></a><span class="summary-sig"><span class="summary-sig-name">_get_session_blob</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>key</span>,
- <span class=summary-sig-arg>service</span>,
- <span class=summary-sig-arg>username</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_interactive_query"></a><span class="summary-sig"><span class="summary-sig-name">_interactive_query</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>q</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_parse_service_accept"></a><span class="summary-sig"><span class="summary-sig-name">_parse_service_accept</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>m</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_parse_service_request"></a><span class="summary-sig"><span class="summary-sig-name">_parse_service_request</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>m</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_parse_userauth_banner"></a><span class="summary-sig"><span class="summary-sig-name">_parse_userauth_banner</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>m</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_parse_userauth_failure"></a><span class="summary-sig"><span class="summary-sig-name">_parse_userauth_failure</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>m</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_parse_userauth_info_request"></a><span class="summary-sig"><span class="summary-sig-name">_parse_userauth_info_request</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>m</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_parse_userauth_info_response"></a><span class="summary-sig"><span class="summary-sig-name">_parse_userauth_info_response</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>m</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_parse_userauth_request"></a><span class="summary-sig"><span class="summary-sig-name">_parse_userauth_request</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>m</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_parse_userauth_success"></a><span class="summary-sig"><span class="summary-sig-name">_parse_userauth_success</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>m</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_request_auth"></a><span class="summary-sig"><span class="summary-sig-name">_request_auth</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_send_auth_result"></a><span class="summary-sig"><span class="summary-sig-name">_send_auth_result</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>username</span>,
- <span class=summary-sig-arg>method</span>,
- <span class=summary-sig-arg>result</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="abort"></a><span class="summary-sig"><span class="summary-sig-name">abort</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.AuthHandler-class.html#auth_interactive" class="summary-sig-name"><code>auth_interactive</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>username</span>,
- <span class=summary-sig-arg>handler</span>,
- <span class=summary-sig-arg>event</span>,
- <span class=summary-sig-arg>submethods</span>)</span></code>
-<br />
-response_list = handler(title, instructions, prompt_list)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="auth_none"></a><span class="summary-sig"><span class="summary-sig-name">auth_none</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>username</span>,
- <span class=summary-sig-arg>event</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="auth_password"></a><span class="summary-sig"><span class="summary-sig-name">auth_password</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>username</span>,
- <span class=summary-sig-arg>password</span>,
- <span class=summary-sig-arg>event</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="auth_publickey"></a><span class="summary-sig"><span class="summary-sig-name">auth_publickey</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>username</span>,
- <span class=summary-sig-arg>key</span>,
- <span class=summary-sig-arg>event</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="get_username"></a><span class="summary-sig"><span class="summary-sig-name">get_username</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="is_authenticated"></a><span class="summary-sig"><span class="summary-sig-name">is_authenticated</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="wait_for_response"></a><span class="summary-sig"><span class="summary-sig-name">wait_for_response</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>event</span>)</span></code>
-</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__repr__() &lt;==&gt; repr(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__str__() &lt;==&gt; str(x)</td></tr>
-</table><br />
-
-
-<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Class Variable Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>dict</code></font></td>
-<td><b><a href="../private/paramiko.AuthHandler-class.html#_handler_table"><code>_handler_table</code></a></b> = <span title="{5: &lt;function _parse_service_request at 0xb7b0ae2c&gt;, 6: &lt;function _parse_service_accept at 0xb7b0ae64&gt;, 50: &lt;function _parse_userauth_request at 0xb7b0af0c&gt;, 51: &lt;function _parse_userauth_failure at 0xb7b0af7c&gt;, 52: &lt;function _parse_userauth_success at 0xb7b0af44&gt;, 53: &lt;function _parse_userauth_banner at 0xb7b0afb4&gt;, 60: &lt;function _parse_userauth_info_request at 0xb7b1302c&gt;, 61: &lt;function _parse_userauth_info_response at 0xb7b13064&gt;}"><code>{5:&nbsp;&lt;function&nbsp;_parse_service_request&nbsp;at<span class="variable-ellipsis">...</span></code>
-</span></td></tr>
-</table><br />
-
-
-<!-- =========== START OF METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Method Details</th></tr>
-</table>
-
-<a name="auth_interactive"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">auth_interactive</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>username</span>,
- <span class=sig-arg>handler</span>,
- <span class=sig-arg>event</span>,
- <span class=sig-arg>submethods</span>=<span class=sig-default>''</span>)</span>
- </h3>
- response_list = handler(title, instructions, prompt_list)
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF CLASS VARIABLE DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Class Variable Details</th></tr>
-</table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="_handler_table"></a>
-<h3>_handler_table</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>dict</code>
-
- </dd>
-<span title="{5: &lt;function _parse_service_request at 0xb7b0ae2c&gt;, 6: &lt;function _parse_service_accept at 0xb7b0ae64&gt;, 50: &lt;function _parse_userauth_request at 0xb7b0af0c&gt;, 51: &lt;function _parse_userauth_failure at 0xb7b0af7c&gt;, 52: &lt;function _parse_userauth_success at 0xb7b0af44&gt;, 53: &lt;function _parse_userauth_banner at 0xb7b0afb4&gt;, 60: &lt;function _parse_userauth_info_request at 0xb7b1302c&gt;, 61: &lt;function _parse_userauth_info_response at 0xb7b13064&gt;}"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-{5: &lt;function _parse_service_request at 0xb7b0ae2c&gt;,
- 6: &lt;function _parse_service_accept at 0xb7b0ae64&gt;,
- 50: &lt;function _parse_userauth_request at 0xb7b0af0c&gt;,
- 51: &lt;function _parse_userauth_failure at 0xb7b0af7c&gt;,
- 52: &lt;function _parse_userauth_success at 0xb7b0af44&gt;,
- 53: &lt;function _parse_userauth_banner at 0xb7b0afb4&gt;,
- 60: &lt;function _parse_userauth_info_request at 0xb7b1302c&gt;,
- 61: &lt;function _parse_userauth_info_response at 0xb7b13064&gt;} </pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:48 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.BadAuthenticationType-class.html b/docs/private/paramiko.BadAuthenticationType-class.html
deleted file mode 100644
index 023879a..0000000
--- a/docs/private/paramiko.BadAuthenticationType-class.html
+++ /dev/null
@@ -1,141 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.BadAuthenticationType</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Class&nbsp;BadAuthenticationType
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/paramiko.BadAuthenticationType-class.html">hide&nbsp;private</a>]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.BadAuthenticationType-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Class BadAuthenticationType</h2>
-
-<pre class="base-tree">
-<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+
- |
- <a href="paramiko.SSHException-class.html"><code>SSHException</code></a> --+
- |
- <b>BadAuthenticationType</b>
-</pre><br />
-
-<hr/>
-
-Exception raised when an authentication type (like password) is used,
-but the server isn't allowing that type. (It may only allow public-key,
-for example.)
-<hr/>
-
-<p><b>Since:</b> 1.1
-</p>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__init__"></a><span class="summary-sig"><span class="summary-sig-name">__init__</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>explanation</span>,
- <span class=summary-sig-arg>types</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__str__"></a><span class="summary-sig"><span class="summary-sig-name">__str__</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-</td></tr>
-</table><br />
-
-
-<!-- =========== START OF INSTANCE VARIABLE SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Instance Variable Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">list</font></td>
-<td><b><a href="paramiko.BadAuthenticationType-class.html#allowed_types"><code>allowed_types</code></a></b>: list of allowed authentication types provided by the server (possible
-values are: <code>&quot;none&quot;</code>,
-<code>&quot;password&quot;</code>, and
-<code>&quot;publickey&quot;</code>).</td></tr>
-</table><br />
-
-
-<!-- =========== START OF INSTANCE VARIABLE DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Instance Variable Details</th></tr>
-</table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="allowed_types"></a>
-<h3>allowed_types</h3>
-list of allowed authentication types provided by the server (possible
-values are: <code>&quot;none&quot;</code>,
-<code>&quot;password&quot;</code>, and
-<code>&quot;publickey&quot;</code>).
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- list
-
- </dd>
-<span title="[]"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-[] </pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:48 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.BaseSFTP-class.html b/docs/private/paramiko.BaseSFTP-class.html
deleted file mode 100644
index 18917f0..0000000
--- a/docs/private/paramiko.BaseSFTP-class.html
+++ /dev/null
@@ -1,149 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.BaseSFTP</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Class&nbsp;BaseSFTP
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<b>show&nbsp;private</b>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="../private/paramiko.BaseSFTP-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type BaseSFTP</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
- <b>BaseSFTP</b>
-</pre><br />
-
-<dl><dt><b>Known Subclasses:</b></dt>
-<dd>
- <a href="paramiko.SFTPClient-class.html"><code>SFTPClient</code></a>,
- <a href="paramiko.SFTPServer-class.html"><code>SFTPServer</code></a></dd></dl>
-
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__init__"></a><span class="summary-sig"><span class="summary-sig-name">__init__</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_log"></a><span class="summary-sig"><span class="summary-sig-name">_log</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>level</span>,
- <span class=summary-sig-arg>msg</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_read_all"></a><span class="summary-sig"><span class="summary-sig-name">_read_all</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>n</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_read_packet"></a><span class="summary-sig"><span class="summary-sig-name">_read_packet</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_send_packet"></a><span class="summary-sig"><span class="summary-sig-name">_send_packet</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>t</span>,
- <span class=summary-sig-arg>packet</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_send_server_version"></a><span class="summary-sig"><span class="summary-sig-name">_send_server_version</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_send_version"></a><span class="summary-sig"><span class="summary-sig-name">_send_version</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_write_all"></a><span class="summary-sig"><span class="summary-sig-name">_write_all</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>out</span>)</span></code>
-</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__repr__() &lt;==&gt; repr(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__str__() &lt;==&gt; str(x)</td></tr>
-</table><br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:46 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.BufferedFile-class.html b/docs/private/paramiko.BufferedFile-class.html
deleted file mode 100644
index 2ab7785..0000000
--- a/docs/private/paramiko.BufferedFile-class.html
+++ /dev/null
@@ -1,656 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.BufferedFile</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Class&nbsp;BufferedFile
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/paramiko.BufferedFile-class.html">hide&nbsp;private</a>]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.BufferedFile-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type BufferedFile</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
- <b>BufferedFile</b>
-</pre><br />
-
-<dl><dt><b>Known Subclasses:</b></dt>
-<dd>
- <a href="paramiko.SFTPFile-class.html"><code>SFTPFile</code></a>,
- <a href="../private/paramiko.ChannelFile-class.html"><code>ChannelFile</code></a></dd></dl>
-
-<hr/>
-
-Reusable base class to implement python-style file buffering around a
-simpler stream.
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__init__"></a><span class="summary-sig"><span class="summary-sig-name">__init__</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__del__"></a><span class="summary-sig"><span class="summary-sig-name">__del__</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> iterator
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#__iter__" class="summary-sig-name"><code>__iter__</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Returns an iterator that can be used to iterate over the lines in this
-file.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#close" class="summary-sig-name"><code>close</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Close the file.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#flush" class="summary-sig-name"><code>flush</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Write out any data in the write buffer.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#next" class="summary-sig-name"><code>next</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Returns the next line from the input, or raises
-<code>StopIteration</code> when EOF is hit.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#read" class="summary-sig-name"><code>read</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>size</span>)</span></code>
-<br />
-Read at most <code>size</code> bytes from the file (less if we hit the
-end of the file first).</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#readline" class="summary-sig-name"><code>readline</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>size</span>)</span></code>
-<br />
-Read one entire line from the file.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> list
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#readlines" class="summary-sig-name"><code>readlines</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>sizehint</span>)</span></code>
-<br />
-Read all remaining lines using <a
-href="paramiko.BufferedFile-class.html#readline"
-class="link"><code>readline</code></a> and return them as a list.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#seek" class="summary-sig-name"><code>seek</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>offset</span>,
- <span class=summary-sig-arg>whence</span>)</span></code>
-<br />
-Set the file's current position, like stdio's <code>fseek</code>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> int
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#tell" class="summary-sig-name"><code>tell</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return the file's current position.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#write" class="summary-sig-name"><code>write</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>data</span>)</span></code>
-<br />
-Write data to the file.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#writelines" class="summary-sig-name"><code>writelines</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>sequence</span>)</span></code>
-<br />
-Write a sequence of strings to the file.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> iterator
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#xreadlines" class="summary-sig-name"><code>xreadlines</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Identical to <code>iter(f)</code>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.BufferedFile-class.html#_get_size" class="summary-sig-name"><code>_get_size</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-<i>(subclass override)</i> Return the size of the file.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.BufferedFile-class.html#_read" class="summary-sig-name"><code>_read</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>size</span>)</span></code>
-<br />
-<i>(subclass override)</i> Read data from the stream.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_record_newline"></a><span class="summary-sig"><span class="summary-sig-name">_record_newline</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>newline</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.BufferedFile-class.html#_set_mode" class="summary-sig-name"><code>_set_mode</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>mode</span>,
- <span class=summary-sig-arg>bufsize</span>)</span></code>
-<br />
-Subclasses call this method to initialize the BufferedFile.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.BufferedFile-class.html#_write" class="summary-sig-name"><code>_write</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>data</span>)</span></code>
-<br />
-<i>(subclass override)</i> Write data into the stream.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_write_all"></a><span class="summary-sig"><span class="summary-sig-name">_write_all</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>data</span>)</span></code>
-</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__repr__() &lt;==&gt; repr(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__str__() &lt;==&gt; str(x)</td></tr>
-</table><br />
-
-
-<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Class Variable Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.BufferedFile-class.html#SEEK_CUR"><code>SEEK_CUR</code></a></b> = <span title="1">1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.BufferedFile-class.html#SEEK_END"><code>SEEK_END</code></a></b> = <span title="2">2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.BufferedFile-class.html#SEEK_SET"><code>SEEK_SET</code></a></b> = <span title="0">0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.BufferedFile-class.html#_DEFAULT_BUFSIZE"><code>_DEFAULT_BUFSIZE</code></a></b> = <span title="8192">8192&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-</table><br />
-
-
-<!-- =========== START OF METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Method Details</th></tr>
-</table>
-
-<a name="__iter__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__iter__</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Returns an iterator that can be used to iterate over the lines in
- this file. This iterator happens to return the file itself, since a
- file is its own iterator.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- an interator.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=iterator)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>ValueError</b></code> -
- if the file is closed.
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="close"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">close</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Close the file. Future read and write operations will fail.
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-
-<a name="flush"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">flush</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Write out any data in the write buffer. This may do nothing if write
- buffering is not turned on.
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-
-<a name="next"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">next</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Returns the next line from the input, or raises
- <code>StopIteration</code> when EOF is hit. Unlike python file objects,
- it's okay to mix calls to <code>next</code> and <a
- href="paramiko.BufferedFile-class.html#readline"
- class="link"><code>readline</code></a>.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- a line read from the file.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>StopIteration</b></code> -
- when the end of the file is reached.
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="read"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">read</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>size</span>=<span class=sig-default>None</span>)</span>
- </h3>
- Read at most <code>size</code> bytes from the file (less if we hit
- the end of the file first). If the <code>size</code> argument is
- negative or omitted, read all the remaining data in the file.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>size</b></code> -
- maximum number of bytes to read.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- data read from the file, or an empty string if EOF was
- encountered immediately.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="readline"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">readline</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>size</span>=<span class=sig-default>None</span>)</span>
- </h3>
- Read one entire line from the file. A trailing newline character is
- kept in the string (but may be absent when a file ends with an
- incomplete line). If the size argument is present and non-negative, it
- is a maximum byte count (including the trailing newline) and an
- incomplete line may be returned. An empty string is returned only when
- EOF is encountered immediately.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>size</b></code> -
- maximum length of returned string.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- next line of the file, or an empty string if the end of the
- file has been reached.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
-<p><b>Note:</b> Unlike stdio's <code>fgets()</code>, the returned string contains null
-characters (<code>'\0'</code>) if they occurred in the input.
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="readlines"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">readlines</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>sizehint</span>=<span class=sig-default>None</span>)</span>
- </h3>
- Read all remaining lines using <a
- href="paramiko.BufferedFile-class.html#readline"
- class="link"><code>readline</code></a> and return them as a list. If
- the optional <code>sizehint</code> argument is present, instead of
- reading up to EOF, whole lines totalling approximately sizehint bytes
- (possibly after rounding up to an internal buffer size) are read.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>sizehint</b></code> -
- desired maximum number of bytes to read.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- list of lines read from the file.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=list)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="seek"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">seek</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>offset</span>,
- <span class=sig-arg>whence</span>=<span class=sig-default>0</span>)</span>
- </h3>
- Set the file's current position, like stdio's <code>fseek</code>.
- Not all file objects support seeking.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>offset</b></code> -
- position to move to within the file, relative to
- <code>whence</code>.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- <dd><code><b>whence</b></code> -
- type of movement: 0 = absolute; 1 = relative to the current
- position; 2 = relative to the end of the file.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>IOError</b></code> -
- if the file doesn't support random access.
- </dl>
-<p><b>Note:</b> If a file is opened in append mode (<code>'a'</code> or
-<code>'a+'</code>), any seek operations will be undone at the next write
-(as the file position will move back to the end of the file).
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="tell"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">tell</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Return the file's current position. This may not be accurate or
- useful if the underlying file doesn't support random access, or was
- opened in append mode.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- file position (in bytes).
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="write"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">write</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>data</span>)</span>
- </h3>
- Write data to the file. If write buffering is on
- (<code>bufsize</code> was specified and non-zero), some or all of the
- data may not actually be written yet. (Use <a
- href="paramiko.BufferedFile-class.html#flush"
- class="link"><code>flush</code></a> or <a
- href="paramiko.BufferedFile-class.html#close"
- class="link"><code>close</code></a> to force buffered data to be
- written out.)
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>data</b></code> -
- data to write.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="writelines"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">writelines</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>sequence</span>)</span>
- </h3>
- Write a sequence of strings to the file. The sequence can be any
- iterable object producing strings, typically a list of strings. (The
- name is intended to match <a
- href="paramiko.BufferedFile-class.html#readlines"
- class="link"><code>readlines</code></a>; <code>writelines</code> does
- not add line separators.)
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>sequence</b></code> -
- an iterable sequence of strings.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=sequence)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="xreadlines"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">xreadlines</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Identical to <code>iter(f)</code>. This is a deprecated file
- interface that predates python iterator support.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- an iterator.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=iterator)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="_get_size"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">_get_size</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- <i>(subclass override)</i> Return the size of the file. This is
- called from within <a
- href="../private/paramiko.BufferedFile-class.html#_set_mode"
- class="link"><code>_set_mode</code></a> if the file is opened in append
- mode, so the file position can be tracked and <a
- href="paramiko.BufferedFile-class.html#seek"
- class="link"><code>seek</code></a> and <a
- href="paramiko.BufferedFile-class.html#tell"
- class="link"><code>tell</code></a> will work correctly. If the file is
- a stream that can't be randomly accessed, you don't need to override
- this method,
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-
-<a name="_read"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">_read</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>size</span>)</span>
- </h3>
- <i>(subclass override)</i> Read data from the stream. Return
- <code>None</code> or raise <code>EOFError</code> to indicate EOF.
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-
-<a name="_set_mode"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">_set_mode</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>mode</span>=<span class=sig-default>'r'</span>,
- <span class=sig-arg>bufsize</span>=<span class=sig-default>-1</span>)</span>
- </h3>
- Subclasses call this method to initialize the BufferedFile.
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-
-<a name="_write"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">_write</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>data</span>)</span>
- </h3>
- <i>(subclass override)</i> Write data into the stream.
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF CLASS VARIABLE DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Class Variable Details</th></tr>
-</table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="SEEK_CUR"></a>
-<h3>SEEK_CUR</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="1"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="SEEK_END"></a>
-<h3>SEEK_END</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="2"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="SEEK_SET"></a>
-<h3>SEEK_SET</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="0"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="_DEFAULT_BUFSIZE"></a>
-<h3>_DEFAULT_BUFSIZE</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="8192"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-8192&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.Channel-class.html b/docs/private/paramiko.Channel-class.html
deleted file mode 100644
index 83ac46e..0000000
--- a/docs/private/paramiko.Channel-class.html
+++ /dev/null
@@ -1,1329 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.Channel</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Class&nbsp;Channel
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/paramiko.Channel-class.html">hide&nbsp;private</a>]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.Channel-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type Channel</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
- <b>Channel</b>
-</pre><br />
-
-<hr/>
-
-<p>A secure tunnel across an SSH <a href="paramiko.Transport-class.html"
-class="link"><code>Transport</code></a>. A Channel is meant to behave
-like a socket, and has an API that should be indistinguishable from the
-python socket API.</p>
-Because SSH2 has a windowing kind of flow control, if you stop reading
-data from a Channel and its buffer fills up, the server will be unable to
-send you any more data until you read some of it. (This won't affect
-other channels on the same transport -- all channels on a single
-transport are flow-controlled independently.) Similarly, if the server
-isn't reading data you send, calls to <a
-href="paramiko.Channel-class.html#send"
-class="link"><code>send</code></a> may block, unless you set a timeout.
-This is exactly like a normal network socket, so it shouldn't be too
-surprising.
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>chanid</span>)</span></code>
-<br />
-Create a new channel.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__del__"></a><span class="summary-sig"><span class="summary-sig-name">__del__</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return a string representation of this object, for debugging.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#close" class="summary-sig-name"><code>close</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Close the channel.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> bool
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#exec_command" class="summary-sig-name"><code>exec_command</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>command</span>)</span></code>
-<br />
-Execute a command on the server.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> int
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#fileno" class="summary-sig-name"><code>fileno</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Returns an OS-level file descriptor which can be used for polling, but
-but <i>not</i> for reading or writing).</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> int
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#get_id" class="summary-sig-name"><code>get_id</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return the ID # for this channel.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#get_name" class="summary-sig-name"><code>get_name</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Get the name of this channel that was previously set by <a
-href="paramiko.Channel-class.html#set_name"
-class="link"><code>set_name</code></a>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> bool
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#get_pty" class="summary-sig-name"><code>get_pty</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>term</span>,
- <span class=summary-sig-arg>width</span>,
- <span class=summary-sig-arg>height</span>)</span></code>
-<br />
-Request a pseudo-terminal from the server.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> <a href="paramiko.Transport-class.html"
- class="link"><code>Transport</code></a>
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#get_transport" class="summary-sig-name"><code>get_transport</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return the <a href="paramiko.Transport-class.html"
-class="link"><code>Transport</code></a> associated with this channel.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> float
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#gettimeout" class="summary-sig-name"><code>gettimeout</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Returns the timeout in seconds (as a float) associated with socket
-operations, or <code>None</code> if no timeout is set.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> bool
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#invoke_shell" class="summary-sig-name"><code>invoke_shell</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Request an interactive shell session on this channel.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> bool
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#invoke_subsystem" class="summary-sig-name"><code>invoke_subsystem</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>subsystem</span>)</span></code>
-<br />
-Request a subsystem on the server (for example,
-<code>sftp</code>).</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> <a href="../private/paramiko.ChannelFile-class.html"
- class="link"><code>ChannelFile</code></a>
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#makefile" class="summary-sig-name"><code>makefile</code></a>(<span class=summary-sig-arg>self</span>,
- <span class="summary-sig-vararg">*params</span>)</span></code>
-<br />
-Return a file-like object associated with this channel.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> <a href="../private/paramiko.ChannelFile-class.html"
- class="link"><code>ChannelFile</code></a>
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#makefile_stderr" class="summary-sig-name"><code>makefile_stderr</code></a>(<span class=summary-sig-arg>self</span>,
- <span class="summary-sig-vararg">*params</span>)</span></code>
-<br />
-Return a file-like object associated with this channel's stderr
-stream.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#recv" class="summary-sig-name"><code>recv</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>nbytes</span>)</span></code>
-<br />
-Receive data from the channel.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> int
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#recv_exit_status" class="summary-sig-name"><code>recv_exit_status</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return the exit status from the process on the server.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> boolean
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#recv_ready" class="summary-sig-name"><code>recv_ready</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Returns true if data is buffered and ready to be read from this
-channel.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#recv_stderr" class="summary-sig-name"><code>recv_stderr</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>nbytes</span>)</span></code>
-<br />
-Receive data from the channel's stderr stream.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> boolean
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#recv_stderr_ready" class="summary-sig-name"><code>recv_stderr_ready</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Returns true if data is buffered and ready to be read from this
-channel's stderr stream.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> bool
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#resize_pty" class="summary-sig-name"><code>resize_pty</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>width</span>,
- <span class=summary-sig-arg>height</span>)</span></code>
-<br />
-Resize the pseudo-terminal.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> int
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#send" class="summary-sig-name"><code>send</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>s</span>)</span></code>
-<br />
-Send data to the channel.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#send_exit_status" class="summary-sig-name"><code>send_exit_status</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>status</span>)</span></code>
-<br />
-Send the exit status of an executed command to the client.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> int
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#send_stderr" class="summary-sig-name"><code>send_stderr</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>s</span>)</span></code>
-<br />
-Send data to the channel on the &quot;stderr&quot; stream.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#sendall" class="summary-sig-name"><code>sendall</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>s</span>)</span></code>
-<br />
-Send data to the channel, without allowing partial results.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#sendall_stderr" class="summary-sig-name"><code>sendall_stderr</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>s</span>)</span></code>
-<br />
-Send data to the channel's &quot;stderr&quot; stream, without allowing
-partial results.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> bool
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#set_combine_stderr" class="summary-sig-name"><code>set_combine_stderr</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>combine</span>)</span></code>
-<br />
-Set whether stderr should be combined into stdout on this channel.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#set_name" class="summary-sig-name"><code>set_name</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>name</span>)</span></code>
-<br />
-Set a name for this channel.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#setblocking" class="summary-sig-name"><code>setblocking</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>blocking</span>)</span></code>
-<br />
-Set blocking or non-blocking mode of the channel: if
-<code>blocking</code> is 0, the channel is set to non-blocking mode;
-otherwise it's set to blocking mode.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#settimeout" class="summary-sig-name"><code>settimeout</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>timeout</span>)</span></code>
-<br />
-Set a timeout on blocking read/write operations.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#shutdown" class="summary-sig-name"><code>shutdown</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>how</span>)</span></code>
-<br />
-Shut down one or both halves of the connection.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#shutdown_read" class="summary-sig-name"><code>shutdown_read</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Shutdown the receiving side of this socket, closing the stream in the
-incoming direction.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#shutdown_write" class="summary-sig-name"><code>shutdown_write</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Shutdown the sending side of this socket, closing the stream in the
-outgoing direction.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_check_add_window"></a><span class="summary-sig"><span class="summary-sig-name">_check_add_window</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>n</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_close_internal"></a><span class="summary-sig"><span class="summary-sig-name">_close_internal</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_feed"></a><span class="summary-sig"><span class="summary-sig-name">_feed</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>m</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_feed_extended"></a><span class="summary-sig"><span class="summary-sig-name">_feed_extended</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>m</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_handle_close"></a><span class="summary-sig"><span class="summary-sig-name">_handle_close</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>m</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_handle_eof"></a><span class="summary-sig"><span class="summary-sig-name">_handle_eof</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>m</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_handle_request"></a><span class="summary-sig"><span class="summary-sig-name">_handle_request</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>m</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_log"></a><span class="summary-sig"><span class="summary-sig-name">_log</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>level</span>,
- <span class=summary-sig-arg>msg</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_request_failed"></a><span class="summary-sig"><span class="summary-sig-name">_request_failed</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>m</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_request_success"></a><span class="summary-sig"><span class="summary-sig-name">_request_success</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>m</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_send_eof"></a><span class="summary-sig"><span class="summary-sig-name">_send_eof</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_set_closed"></a><span class="summary-sig"><span class="summary-sig-name">_set_closed</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_set_remote_channel"></a><span class="summary-sig"><span class="summary-sig-name">_set_remote_channel</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>chanid</span>,
- <span class=summary-sig-arg>window_size</span>,
- <span class=summary-sig-arg>max_packet_size</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_set_transport"></a><span class="summary-sig"><span class="summary-sig-name">_set_transport</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>transport</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_set_window"></a><span class="summary-sig"><span class="summary-sig-name">_set_window</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>window_size</span>,
- <span class=summary-sig-arg>max_packet_size</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_unlink"></a><span class="summary-sig"><span class="summary-sig-name">_unlink</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.Channel-class.html#_wait_for_send_window" class="summary-sig-name"><code>_wait_for_send_window</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>size</span>)</span></code>
-<br />
-(You are already holding the lock.) Wait for the send window to open
-up, and allocate up to <code>size</code> bytes for transmission.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_window_adjust"></a><span class="summary-sig"><span class="summary-sig-name">_window_adjust</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>m</span>)</span></code>
-</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__str__() &lt;==&gt; str(x)</td></tr>
-</table><br />
-
-
-<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Class Variable Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.Channel-class.html#MIN_PACKET_SIZE"><code>MIN_PACKET_SIZE</code></a></b> = <span title="1024">1024&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-</table><br />
-
-
-<!-- =========== START OF METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Method Details</th></tr>
-</table>
-
-<a name="__init__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__init__</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>chanid</span>)</span>
- <br /><i>(Constructor)</i>
- </h3>
- Create a new channel. The channel is not associated with any
- particular session or <a href="paramiko.Transport-class.html"
- class="link"><code>Transport</code></a> until the Transport attaches
- it. Normally you would only call this method from the constructor of a
- subclass of <a href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a>.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>chanid</b></code> -
- the ID of this channel, as passed by an existing <a
- href="paramiko.Transport-class.html"
- class="link"><code>Transport</code></a>.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="__builtin__.object-class.html#__init__"><code>__builtin__.object.__init__</code></a></dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="__repr__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__repr__</span>(<span class=sig-arg>self</span>)</span>
- <br /><i>(Representation operator)</i>
- </h3>
- Return a string representation of this object, for debugging.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- str
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="__builtin__.object-class.html#__repr__"><code>__builtin__.object.__repr__</code></a></dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="close"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">close</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Close the channel. All future read/write operations on the channel
- will fail. The remote end will receive no more data (after queued data
- is flushed). Channels are automatically closed when their <a
- href="paramiko.Transport-class.html"
- class="link"><code>Transport</code></a> is closed or when they are
- garbage collected.
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-
-<a name="exec_command"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">exec_command</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>command</span>)</span>
- </h3>
- <p>Execute a command on the server. If the server allows it, the
- channel will then be directly connected to the stdin, stdout, and
- stderr of the command being executed.</p>
- When the command finishes executing, the channel will be closed and
- can't be reused. You must open a new channel if you wish to execute
- another command.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>command</b></code> -
- a shell command to execute.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- <code>True</code> if the operation succeeded;
- <code>False</code> if not.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=bool)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="fileno"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">fileno</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- <p>Returns an OS-level file descriptor which can be used for polling,
- but but <i>not</i> for reading or writing). This is primaily to allow
- python's <code>select</code> module to work.</p>
- The first time <code>fileno</code> is called on a channel, a pipe is
- created to simulate real OS-level file descriptor (FD) behavior.
- Because of this, two OS-level FDs are created, which will use up FDs
- faster than normal. You won't notice this effect unless you open
- hundreds or thousands of channels simultaneously, but it's still
- notable.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- an OS-level file descriptor
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
-<p><b>Warning:</b> This method causes channel reads to be slightly less efficient.
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="get_id"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_id</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Return the ID # for this channel. The channel ID is unique across a
- <a href="paramiko.Transport-class.html"
- class="link"><code>Transport</code></a> and usually a small number.
- It's also the number passed to <a
- href="../private/paramiko.ServerInterface-class.html#check_channel_request"
- class="link"><code>ServerInterface.check_channel_request</code></a>
- when determining whether to accept a channel request in server
- mode.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- the ID of this channel.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
-<p><b>Since:</b> ivysaur
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="get_name"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_name</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Get the name of this channel that was previously set by <a
- href="paramiko.Channel-class.html#set_name"
- class="link"><code>set_name</code></a>.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- the name of this channel.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="get_pty"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_pty</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>term</span>=<span class=sig-default>'vt100'</span>,
- <span class=sig-arg>width</span>=<span class=sig-default>80</span>,
- <span class=sig-arg>height</span>=<span class=sig-default>24</span>)</span>
- </h3>
- Request a pseudo-terminal from the server. This is usually used
- right after creating a client channel, to ask the server to provide
- some basic terminal semantics for a shell invoked with <a
- href="paramiko.Channel-class.html#invoke_shell"
- class="link"><code>invoke_shell</code></a>. It isn't necessary (or
- desirable) to call this method if you're going to exectue a single
- command with <a href="paramiko.Channel-class.html#exec_command"
- class="link"><code>exec_command</code></a>.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>term</b></code> -
- the terminal type to emulate (for example,
- <code>'vt100'</code>).
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>width</b></code> -
- width (in characters) of the terminal screen
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- <dd><code><b>height</b></code> -
- height (in characters) of the terminal screen
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- <code>True</code> if the operation succeeded;
- <code>False</code> if not.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=bool)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="get_transport"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_transport</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Return the <a href="paramiko.Transport-class.html"
- class="link"><code>Transport</code></a> associated with this
- channel.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- the <a href="paramiko.Transport-class.html"
- class="link"><code>Transport</code></a> that was used to create
- this channel.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.Transport-class.html"
- class="link"><code>Transport</code></a>)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="gettimeout"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">gettimeout</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Returns the timeout in seconds (as a float) associated with socket
- operations, or <code>None</code> if no timeout is set. This reflects
- the last call to <a href="paramiko.Channel-class.html#setblocking"
- class="link"><code>setblocking</code></a> or <a
- href="paramiko.Channel-class.html#settimeout"
- class="link"><code>settimeout</code></a>.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- timeout in seconds, or <code>None</code>.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=float)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="invoke_shell"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">invoke_shell</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- <p>Request an interactive shell session on this channel. If the server
- allows it, the channel will then be directly connected to the stdin,
- stdout, and stderr of the shell.</p>
- <p>Normally you would call <a
- href="paramiko.Channel-class.html#get_pty"
- class="link"><code>get_pty</code></a> before this, in which case the
- shell will operate through the pty, and the channel will be connected
- to the stdin and stdout of the pty.</p>
- When the shell exits, the channel will be closed and can't be
- reused. You must open a new channel if you wish to open another
- shell.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- <code>True</code> if the operation succeeded;
- <code>False</code> if not.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=bool)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="invoke_subsystem"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">invoke_subsystem</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>subsystem</span>)</span>
- </h3>
- <p>Request a subsystem on the server (for example, <code>sftp</code>).
- If the server allows it, the channel will then be directly connected to
- the requested subsystem.</p>
- When the subsystem finishes, the channel will be closed and can't be
- reused.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>subsystem</b></code> -
- name of the subsystem being requested.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- <code>True</code> if the operation succeeded;
- <code>False</code> if not.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=bool)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="makefile"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">makefile</span>(<span class=sig-arg>self</span>,
- <span class="sig-vararg">*params</span>)</span>
- </h3>
- Return a file-like object associated with this channel. The optional
- <code>mode</code> and <code>bufsize</code> arguments are interpreted
- the same way as by the built-in <code>file()</code> function in
- python.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- object which can be used for python file I/O.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="../private/paramiko.ChannelFile-class.html"
- class="link"><code>ChannelFile</code></a>)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="makefile_stderr"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">makefile_stderr</span>(<span class=sig-arg>self</span>,
- <span class="sig-vararg">*params</span>)</span>
- </h3>
- <p>Return a file-like object associated with this channel's stderr
- stream. Only channels using <a
- href="paramiko.Channel-class.html#exec_command"
- class="link"><code>exec_command</code></a> or <a
- href="paramiko.Channel-class.html#invoke_shell"
- class="link"><code>invoke_shell</code></a> without a pty will ever have
- data on the stderr stream.</p>
- The optional <code>mode</code> and <code>bufsize</code> arguments
- are interpreted the same way as by the built-in <code>file()</code>
- function in python. For a client, it only makes sense to open this file
- for reading. For a server, it only makes sense to open this file for
- writing.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- object which can be used for python file I/O.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="../private/paramiko.ChannelFile-class.html"
- class="link"><code>ChannelFile</code></a>)</i>
- </dd>
- </dl>
-<p><b>Since:</b> 1.1
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="recv"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">recv</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>nbytes</span>)</span>
- </h3>
- Receive data from the channel. The return value is a string
- representing the data received. The maximum amount of data to be
- received at once is specified by <code>nbytes</code>. If a string of
- length zero is returned, the channel stream has closed.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>nbytes</b></code> -
- maximum number of bytes to read.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- data.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>socket.timeout</b></code> -
- if no data is ready before the timeout set by <a
- href="paramiko.Channel-class.html#settimeout"
- class="link"><code>settimeout</code></a>.
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="recv_exit_status"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">recv_exit_status</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Return the exit status from the process on the server. This is
- mostly useful for retrieving the reults of an <a
- href="paramiko.Channel-class.html#exec_command"
- class="link"><code>exec_command</code></a>. If the command hasn't
- finished yet, this method will wait until it does, or until the channel
- is closed. If no exit status is provided by the server, -1 is
- returned.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- the exit code of the process on the server.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
-<p><b>Since:</b> 1.2
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="recv_ready"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">recv_ready</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Returns true if data is buffered and ready to be read from this
- channel. A <code>False</code> result does not mean that the channel has
- closed; it means you may need to wait before more data arrives.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- <code>True</code> if a <a
- href="paramiko.Channel-class.html#recv"
- class="link"><code>recv</code></a> call on this channel would
- immediately return at least one byte; <code>False</code>
- otherwise.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=boolean)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="recv_stderr"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">recv_stderr</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>nbytes</span>)</span>
- </h3>
- Receive data from the channel's stderr stream. Only channels using
- <a href="paramiko.Channel-class.html#exec_command"
- class="link"><code>exec_command</code></a> or <a
- href="paramiko.Channel-class.html#invoke_shell"
- class="link"><code>invoke_shell</code></a> without a pty will ever have
- data on the stderr stream. The return value is a string representing
- the data received. The maximum amount of data to be received at once is
- specified by <code>nbytes</code>. If a string of length zero is
- returned, the channel stream has closed.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>nbytes</b></code> -
- maximum number of bytes to read.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- data.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>socket.timeout</b></code> -
- if no data is ready before the timeout set by <a
- href="paramiko.Channel-class.html#settimeout"
- class="link"><code>settimeout</code></a>.
- </dl>
-<p><b>Since:</b> 1.1
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="recv_stderr_ready"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">recv_stderr_ready</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Returns true if data is buffered and ready to be read from this
- channel's stderr stream. Only channels using <a
- href="paramiko.Channel-class.html#exec_command"
- class="link"><code>exec_command</code></a> or <a
- href="paramiko.Channel-class.html#invoke_shell"
- class="link"><code>invoke_shell</code></a> without a pty will ever have
- data on the stderr stream.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- <code>True</code> if a <a
- href="paramiko.Channel-class.html#recv_stderr"
- class="link"><code>recv_stderr</code></a> call on this channel
- would immediately return at least one byte; <code>False</code>
- otherwise.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=boolean)</i>
- </dd>
- </dl>
-<p><b>Since:</b> 1.1
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="resize_pty"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">resize_pty</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>width</span>=<span class=sig-default>80</span>,
- <span class=sig-arg>height</span>=<span class=sig-default>24</span>)</span>
- </h3>
- Resize the pseudo-terminal. This can be used to change the width and
- height of the terminal emulation created in a previous <a
- href="paramiko.Channel-class.html#get_pty"
- class="link"><code>get_pty</code></a> call.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>width</b></code> -
- new width (in characters) of the terminal screen
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- <dd><code><b>height</b></code> -
- new height (in characters) of the terminal screen
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- <code>True</code> if the operation succeeded;
- <code>False</code> if not.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=bool)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="send"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">send</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>s</span>)</span>
- </h3>
- Send data to the channel. Returns the number of bytes sent, or 0 if
- the channel stream is closed. Applications are responsible for checking
- that all data has been sent: if only some of the data was transmitted,
- the application needs to attempt delivery of the remaining data.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>s</b></code> -
- data to send.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- number of bytes actually sent.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>socket.timeout</b></code> -
- if no data could be sent before the timeout set by <a
- href="paramiko.Channel-class.html#settimeout"
- class="link"><code>settimeout</code></a>.
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="send_exit_status"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">send_exit_status</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>status</span>)</span>
- </h3>
- Send the exit status of an executed command to the client. (This
- really only makes sense in server mode.) Many clients expect to get
- some sort of status code back from an executed command after it
- completes.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>status</b></code> -
- the exit code of the process
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
-<p><b>Since:</b> 1.2
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="send_stderr"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">send_stderr</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>s</span>)</span>
- </h3>
- Send data to the channel on the &quot;stderr&quot; stream. This is
- normally only used by servers to send output from shell commands --
- clients won't use this. Returns the number of bytes sent, or 0 if the
- channel stream is closed. Applications are responsible for checking
- that all data has been sent: if only some of the data was transmitted,
- the application needs to attempt delivery of the remaining data.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>s</b></code> -
- data to send.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- number of bytes actually sent.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>socket.timeout</b></code> -
- if no data could be sent before the timeout set by <a
- href="paramiko.Channel-class.html#settimeout"
- class="link"><code>settimeout</code></a>.
- </dl>
-<p><b>Since:</b> 1.1
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="sendall"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">sendall</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>s</span>)</span>
- </h3>
- Send data to the channel, without allowing partial results. Unlike
- <a href="paramiko.Channel-class.html#send"
- class="link"><code>send</code></a>, this method continues to send data
- from the given string until either all data has been sent or an error
- occurs. Nothing is returned.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>s</b></code> -
- data to send.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>socket.timeout</b></code> -
- if sending stalled for longer than the timeout set by <a
- href="paramiko.Channel-class.html#settimeout"
- class="link"><code>settimeout</code></a>.
- <dd><code><b>socket.error</b></code> -
- if an error occured before the entire string was sent.
- </dl>
-<p><b>Note:</b> If the channel is closed while only part of the data hase been sent,
-there is no way to determine how much data (if any) was sent. This is
-irritating, but identically follows python's API.
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="sendall_stderr"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">sendall_stderr</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>s</span>)</span>
- </h3>
- Send data to the channel's &quot;stderr&quot; stream, without
- allowing partial results. Unlike <a
- href="paramiko.Channel-class.html#send_stderr"
- class="link"><code>send_stderr</code></a>, this method continues to
- send data from the given string until all data has been sent or an
- error occurs. Nothing is returned.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>s</b></code> -
- data to send to the client as &quot;stderr&quot; output.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>socket.timeout</b></code> -
- if sending stalled for longer than the timeout set by <a
- href="paramiko.Channel-class.html#settimeout"
- class="link"><code>settimeout</code></a>.
- <dd><code><b>socket.error</b></code> -
- if an error occured before the entire string was sent.
- </dl>
-<p><b>Since:</b> 1.1
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="set_combine_stderr"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">set_combine_stderr</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>combine</span>)</span>
- </h3>
- <p>Set whether stderr should be combined into stdout on this channel.
- The default is <code>False</code>, but in some cases it may be
- convenient to have both streams combined.</p>
- <p>If this is <code>False</code>, and <a
- href="paramiko.Channel-class.html#exec_command"
- class="link"><code>exec_command</code></a> is called (or
- <code>invoke_shell</code> with no pty), output to stderr will not show
- up through the <a href="paramiko.Channel-class.html#recv"
- class="link"><code>recv</code></a> and <a
- href="paramiko.Channel-class.html#recv_ready"
- class="link"><code>recv_ready</code></a> calls. You will have to use <a
- href="paramiko.Channel-class.html#recv_stderr"
- class="link"><code>recv_stderr</code></a> and <a
- href="paramiko.Channel-class.html#recv_stderr_ready"
- class="link"><code>recv_stderr_ready</code></a> to get stderr
- output.</p>
- If this is <code>True</code>, data will never show up via <a
- href="paramiko.Channel-class.html#recv_stderr"
- class="link"><code>recv_stderr</code></a> or <a
- href="paramiko.Channel-class.html#recv_stderr_ready"
- class="link"><code>recv_stderr_ready</code></a>.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>combine</b></code> -
- <code>True</code> if stderr output should be combined into
- stdout on this channel.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=bool)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- previous setting.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=bool)</i>
- </dd>
- </dl>
-<p><b>Since:</b> 1.1
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="set_name"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">set_name</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>name</span>)</span>
- </h3>
- Set a name for this channel. Currently it's only used to set the
- name of the log level used for debugging. The name can be fetched with
- the <a href="paramiko.Channel-class.html#get_name"
- class="link"><code>get_name</code></a> method.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>name</b></code> -
- new channel name.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="setblocking"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">setblocking</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>blocking</span>)</span>
- </h3>
- <p>Set blocking or non-blocking mode of the channel: if
- <code>blocking</code> is 0, the channel is set to non-blocking mode;
- otherwise it's set to blocking mode. Initially all channels are in
- blocking mode.</p>
- <p>In non-blocking mode, if a <a
- href="paramiko.Channel-class.html#recv"
- class="link"><code>recv</code></a> call doesn't find any data, or if a
- <a href="paramiko.Channel-class.html#send"
- class="link"><code>send</code></a> call can't immediately dispose of
- the data, an error exception is raised. In blocking mode, the calls
- block until they can proceed.</p>
- <code>chan.setblocking(0)</code> is equivalent to
- <code>chan.settimeout(0)</code>; <code>chan.setblocking(1)</code> is
- equivalent to <code>chan.settimeout(None)</code>.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>blocking</b></code> -
- 0 to set non-blocking mode; non-0 to set blocking mode.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="settimeout"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">settimeout</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>timeout</span>)</span>
- </h3>
- <p>Set a timeout on blocking read/write operations. The
- <code>timeout</code> argument can be a nonnegative float expressing
- seconds, or <code>None</code>. If a float is given, subsequent channel
- read/write operations will raise a timeout exception if the timeout
- period value has elapsed before the operation has completed. Setting a
- timeout of <code>None</code> disables timeouts on socket
- operations.</p>
- <code>chan.settimeout(0.0)</code> is equivalent to
- <code>chan.setblocking(0)</code>; <code>chan.settimeout(None)</code> is
- equivalent to <code>chan.setblocking(1)</code>.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>timeout</b></code> -
- seconds to wait for a pending read/write operation before
- raising <code>socket.timeout</code>, or <code>None</code> for no
- timeout.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=float)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="shutdown"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">shutdown</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>how</span>)</span>
- </h3>
- Shut down one or both halves of the connection. If <code>how</code>
- is 0, further receives are disallowed. If <code>how</code> is 1,
- further sends are disallowed. If <code>how</code> is 2, further sends
- and receives are disallowed. This closes the stream in one or both
- directions.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>how</b></code> -
- 0 (stop receiving), 1 (stop sending), or 2 (stop receiving and
- sending).
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="shutdown_read"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">shutdown_read</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Shutdown the receiving side of this socket, closing the stream in
- the incoming direction. After this call, future reads on this channel
- will fail instantly. This is a convenience method, equivalent to
- <code>shutdown(0)</code>, for people who don't make it a habit to
- memorize unix constants from the 1970s.
- <dl><dt></dt><dd>
-<p><b>Since:</b> 1.2
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="shutdown_write"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">shutdown_write</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Shutdown the sending side of this socket, closing the stream in the
- outgoing direction. After this call, future writes on this channel will
- fail instantly. This is a convenience method, equivalent to
- <code>shutdown(1)</code>, for people who don't make it a habit to
- memorize unix constants from the 1970s.
- <dl><dt></dt><dd>
-<p><b>Since:</b> 1.2
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="_wait_for_send_window"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">_wait_for_send_window</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>size</span>)</span>
- </h3>
- (You are already holding the lock.) Wait for the send window to open
- up, and allocate up to <code>size</code> bytes for transmission. If no
- space opens up before the timeout, a timeout exception is raised.
- Returns the number of bytes available to send (may be less than
- requested).
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF CLASS VARIABLE DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Class Variable Details</th></tr>
-</table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="MIN_PACKET_SIZE"></a>
-<h3>MIN_PACKET_SIZE</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="1024"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-1024&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.ChannelFile-class.html b/docs/private/paramiko.ChannelFile-class.html
deleted file mode 100644
index c3c4fea..0000000
--- a/docs/private/paramiko.ChannelFile-class.html
+++ /dev/null
@@ -1,347 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.ChannelFile</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Class&nbsp;ChannelFile
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<b>show&nbsp;private</b>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="../private/paramiko.ChannelFile-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type ChannelFile</h2>
-
-<pre class="base-tree">
- <a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
-<a href="paramiko.BufferedFile-class.html"><code>BufferedFile</code></a> --+
- |
- <b>ChannelFile</b>
-</pre><br />
-
-<dl><dt><b>Known Subclasses:</b></dt>
-<dd>
- <a href="../private/paramiko.channel.ChannelStderrFile-class.html"><code>ChannelStderrFile</code></a></dd></dl>
-
-<hr/>
-
-A file-like wrapper around <a href="paramiko.Channel-class.html"
-class="link"><code>Channel</code></a>. A ChannelFile is created by
-calling <a href="paramiko.Channel-class.html#makefile"
-class="link"><code>Channel.makefile</code></a>.
-<hr/>
-
-<p><b>Bug:</b> To correctly emulate the file object created from a socket's
-<code>makefile</code> method, a <a href="paramiko.Channel-class.html"
-class="link"><code>Channel</code></a> and its <code>ChannelFile</code>
-should be able to be closed or garbage-collected independently.
-Currently, closing the <code>ChannelFile</code> does nothing but flush
-the buffer.
-</p>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__init__"></a><span class="summary-sig"><span class="summary-sig-name">__init__</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>channel</span>,
- <span class=summary-sig-arg>mode</span>,
- <span class=summary-sig-arg>bufsize</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.ChannelFile-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Returns a string representation of this object, for debugging.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.ChannelFile-class.html#_read" class="summary-sig-name"><code>_read</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>size</span>)</span></code>
-<br />
-<i>(subclass override)</i> Read data from the stream.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.ChannelFile-class.html#_write" class="summary-sig-name"><code>_write</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>data</span>)</span></code>
-<br />
-<i>(subclass override)</i> Write data into the stream.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.ChannelFile-class.html#seek" class="summary-sig-name"><code>seek</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>offset</span>,
- <span class=summary-sig-arg>whence</span>)</span></code>
-<br />
-Set the file's current position, like stdio's <code>fseek</code>.</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from BufferedFile</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#__del__" class="summary-sig-name"><code>__del__</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> iterator
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#__iter__" class="summary-sig-name"><code>__iter__</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Returns an iterator that can be used to iterate over the lines in this
-file.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#close" class="summary-sig-name"><code>close</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Close the file.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#flush" class="summary-sig-name"><code>flush</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Write out any data in the write buffer.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#next" class="summary-sig-name"><code>next</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Returns the next line from the input, or raises
-<code>StopIteration</code> when EOF is hit.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#read" class="summary-sig-name"><code>read</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>size</span>)</span></code>
-<br />
-Read at most <code>size</code> bytes from the file (less if we hit the
-end of the file first).</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#readline" class="summary-sig-name"><code>readline</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>size</span>)</span></code>
-<br />
-Read one entire line from the file.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> list
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#readlines" class="summary-sig-name"><code>readlines</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>sizehint</span>)</span></code>
-<br />
-Read all remaining lines using <a
-href="paramiko.BufferedFile-class.html#readline"
-class="link"><code>readline</code></a> and return them as a list.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> int
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#tell" class="summary-sig-name"><code>tell</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return the file's current position.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#write" class="summary-sig-name"><code>write</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>data</span>)</span></code>
-<br />
-Write data to the file.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#writelines" class="summary-sig-name"><code>writelines</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>sequence</span>)</span></code>
-<br />
-Write a sequence of strings to the file.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> iterator
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#xreadlines" class="summary-sig-name"><code>xreadlines</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Identical to <code>iter(f)</code>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.BufferedFile-class.html#_get_size" class="summary-sig-name"><code>_get_size</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-<i>(subclass override)</i> Return the size of the file.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.BufferedFile-class.html#_record_newline" class="summary-sig-name"><code>_record_newline</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>newline</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.BufferedFile-class.html#_set_mode" class="summary-sig-name"><code>_set_mode</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>mode</span>,
- <span class=summary-sig-arg>bufsize</span>)</span></code>
-<br />
-Subclasses call this method to initialize the BufferedFile.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.BufferedFile-class.html#_write_all" class="summary-sig-name"><code>_write_all</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>data</span>)</span></code>
-</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__str__() &lt;==&gt; str(x)</td></tr>
-</table><br />
-
-
-<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Class Variable Summary</th></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from BufferedFile</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.BufferedFile-class.html#SEEK_CUR"><code>SEEK_CUR</code></a></b> = <span title="1">1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.BufferedFile-class.html#SEEK_END"><code>SEEK_END</code></a></b> = <span title="2">2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.BufferedFile-class.html#SEEK_SET"><code>SEEK_SET</code></a></b> = <span title="0">0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.BufferedFile-class.html#_DEFAULT_BUFSIZE"><code>_DEFAULT_BUFSIZE</code></a></b> = <span title="8192">8192&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-</table><br />
-
-
-<!-- =========== START OF METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Method Details</th></tr>
-</table>
-
-<a name="__repr__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__repr__</span>(<span class=sig-arg>self</span>)</span>
- <br /><i>(Representation operator)</i>
- </h3>
- Returns a string representation of this object, for debugging.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- str
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="__builtin__.object-class.html#__repr__"><code>__builtin__.object.__repr__</code></a></dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="_read"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">_read</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>size</span>)</span>
- </h3>
- <i>(subclass override)</i> Read data from the stream. Return
- <code>None</code> or raise <code>EOFError</code> to indicate EOF.
- <dl><dt></dt><dd>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="../private/paramiko.BufferedFile-class.html#_read"><code>paramiko.BufferedFile._read</code></a> <i>(inherited documentation)</i>
-</dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="_write"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">_write</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>data</span>)</span>
- </h3>
- <i>(subclass override)</i> Write data into the stream.
- <dl><dt></dt><dd>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="../private/paramiko.BufferedFile-class.html#_write"><code>paramiko.BufferedFile._write</code></a> <i>(inherited documentation)</i>
-</dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="seek"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">seek</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>offset</span>,
- <span class=sig-arg>whence</span>=<span class=sig-default>0</span>)</span>
- </h3>
- Set the file's current position, like stdio's <code>fseek</code>.
- Not all file objects support seeking.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>offset</b></code> -
- position to move to within the file, relative to
- <code>whence</code>.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- <dd><code><b>whence</b></code> -
- type of movement: 0 = absolute; 1 = relative to the current
- position; 2 = relative to the end of the file.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>IOError</b></code> -
- if the file doesn't support random access.
- </dl>
-<p><b>Note:</b> If a file is opened in append mode (<code>'a'</code> or
-<code>'a+'</code>), any seek operations will be undone at the next write
-(as the file position will move back to the end of the file).
-</p>
-
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.DSSKey-class.html b/docs/private/paramiko.DSSKey-class.html
deleted file mode 100644
index 9d87ee1..0000000
--- a/docs/private/paramiko.DSSKey-class.html
+++ /dev/null
@@ -1,486 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.DSSKey</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Class&nbsp;DSSKey
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/paramiko.DSSKey-class.html">hide&nbsp;private</a>]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.DSSKey-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type DSSKey</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
- <a href="../private/paramiko.PKey-class.html"><code>PKey</code></a> --+
- |
- <b>DSSKey</b>
-</pre><br />
-
-<hr/>
-
-Representation of a DSS key which can be used to sign an verify SSH2
-data.
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.DSSKey-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>msg</span>,
- <span class=summary-sig-arg>data</span>)</span></code>
-<br />
-Create a new instance of this public key type.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__hash__"></a><span class="summary-sig"><span class="summary-sig-name">__hash__</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.DSSKey-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return a string of an SSH <a href="paramiko.Message-class.html"
-class="link"><code>Message</code></a> made up of the public part(s) of
-this key.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> bool
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.DSSKey-class.html#can_sign" class="summary-sig-name"><code>can_sign</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return <code>True</code> if this key has the private part necessary
-for signing data.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> <a href="paramiko.DSSKey-class.html"
- class="link"><code>DSSKey</code></a>
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.DSSKey-class.html#generate" class="summary-sig-name"><code>generate</code></a>(<span class=summary-sig-arg>bits</span>,
- <span class=summary-sig-arg>progress_func</span>)</span></code>
-<br />
-Generate a new private DSS key. <i>(Static method)</i>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> int
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.DSSKey-class.html#get_bits" class="summary-sig-name"><code>get_bits</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return the number of significant bits in this key.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.DSSKey-class.html#get_name" class="summary-sig-name"><code>get_name</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return the name of this private key implementation.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="sign_ssh_data"></a><span class="summary-sig"><span class="summary-sig-name">sign_ssh_data</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>rpool</span>,
- <span class=summary-sig-arg>data</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> boolean
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.DSSKey-class.html#verify_ssh_sig" class="summary-sig-name"><code>verify_ssh_sig</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>data</span>,
- <span class=summary-sig-arg>msg</span>)</span></code>
-<br />
-Given a blob of data, and an SSH message representing a signature of
-that data, verify that it was signed with this key.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.DSSKey-class.html#write_private_key_file" class="summary-sig-name"><code>write_private_key_file</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>filename</span>,
- <span class=summary-sig-arg>password</span>)</span></code>
-<br />
-Write private key contents into a file.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_from_private_key_file"></a><span class="summary-sig"><span class="summary-sig-name">_from_private_key_file</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>filename</span>,
- <span class=summary-sig-arg>password</span>)</span></code>
-</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from PKey</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> int
-</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.PKey-class.html#__cmp__" class="summary-sig-name"><code>__cmp__</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>other</span>)</span></code>
-<br />
-Compare this key to another.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.PKey-class.html#_read_private_key_file" class="summary-sig-name"><code>_read_private_key_file</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>tag</span>,
- <span class=summary-sig-arg>filename</span>,
- <span class=summary-sig-arg>password</span>)</span></code>
-<br />
-Read an SSH2-format private key file, looking for a string of the type
-<code>&quot;BEGIN xxx PRIVATE KEY&quot;</code> for some <code>xxx</code>,
-base64-decode the text we find, and return it as a string.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.PKey-class.html#_write_private_key_file" class="summary-sig-name"><code>_write_private_key_file</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>tag</span>,
- <span class=summary-sig-arg>filename</span>,
- <span class=summary-sig-arg>data</span>,
- <span class=summary-sig-arg>password</span>)</span></code>
-<br />
-Write an SSH2-format private key file in a form that can be read by
-paramiko or openssh.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> <a href="../private/paramiko.PKey-class.html"
- class="link"><code>PKey</code></a>
-</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.PKey-class.html#from_private_key_file" class="summary-sig-name"><code>from_private_key_file</code></a>(<span class=summary-sig-arg>cl</span>,
- <span class=summary-sig-arg>filename</span>,
- <span class=summary-sig-arg>password</span>)</span></code>
-<br />
-Create a key object by reading a private key file. <i>(Class method)</i>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.PKey-class.html#get_base64" class="summary-sig-name"><code>get_base64</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return a base64 string containing the public part of this key.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.PKey-class.html#get_fingerprint" class="summary-sig-name"><code>get_fingerprint</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return an MD5 fingerprint of the public part of this key.</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__repr__() &lt;==&gt; repr(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-</table><br />
-
-
-<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Class Variable Summary</th></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from PKey</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>dict</code></font></td>
-<td><b><a href="../private/paramiko.PKey-class.html#_CIPHER_TABLE"><code>_CIPHER_TABLE</code></a></b> = <span title="{'DES-EDE3-CBC': {'blocksize': 8, 'cipher': &lt;module 'Crypto.Cipher.DES3' from '/usr/lib/python2.4/site-packages/Crypto/Cipher/DES3.so'&gt;, 'keysize': 24, 'mode': 2}}"><code>{'DES-EDE3-CBC':&nbsp;{'blocksize':&nbsp;8,&nbsp;'ciphe<span class="variable-ellipsis">...</span></code>
-</span></td></tr>
-</table><br />
-
-
-<!-- =========== START OF INSTANCE METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Instance Method Details</th></tr>
-</table>
-
-<a name="__init__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__init__</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>msg</span>=<span class=sig-default>None</span>,
- <span class=sig-arg>data</span>=<span class=sig-default>None</span>,
- <span class=sig-arg>filename</span>=<span class=sig-default>None</span>,
- <span class=sig-arg>password</span>=<span class=sig-default>None</span>,
- <span class=sig-arg>vals</span>=<span class=sig-default>None</span>)</span>
- <br /><i>(Constructor)</i>
- </h3>
- Create a new instance of this public key type. If <code>msg</code>
- is given, the key's public part(s) will be filled in from the message.
- If <code>data</code> is given, the key's public part(s) will be filled
- in from the string.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>msg</b></code> -
- an optional SSH <a href="paramiko.Message-class.html"
- class="link"><code>Message</code></a> containing a public key of
- this type.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.Message-class.html"
- class="link"><code>Message</code></a>)</i>
- <dd><code><b>data</b></code> -
- an optional string containing a public key of this type
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>SSHException</b></code> -
- if a key cannot be created from the <code>data</code> or
- <code>msg</code> given, or no key was passed in.
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="../private/paramiko.PKey-class.html#__init__"><code>paramiko.PKey.__init__</code></a> <i>(inherited documentation)</i>
-</dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="__str__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__str__</span>(<span class=sig-arg>self</span>)</span>
- <br /><i>(Informal representation operator)</i>
- </h3>
- Return a string of an SSH <a href="paramiko.Message-class.html"
- class="link"><code>Message</code></a> made up of the public part(s) of
- this key. This string is suitable for passing to <a
- href="../private/paramiko.PKey-class.html#__init__"
- class="link"><code>__init__</code></a> to re-create the key object
- later.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- string representation of an SSH key message.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="../private/paramiko.PKey-class.html#__str__"><code>paramiko.PKey.__str__</code></a> <i>(inherited documentation)</i>
-</dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="can_sign"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">can_sign</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Return <code>True</code> if this key has the private part necessary
- for signing data.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- <code>True</code> if this is a private key.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=bool)</i>
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="../private/paramiko.PKey-class.html#can_sign"><code>paramiko.PKey.can_sign</code></a> <i>(inherited documentation)</i>
-</dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="get_bits"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_bits</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Return the number of significant bits in this key. This is useful
- for judging the relative security of a key.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- bits in the key.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="../private/paramiko.PKey-class.html#get_bits"><code>paramiko.PKey.get_bits</code></a> <i>(inherited documentation)</i>
-</dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="get_name"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_name</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Return the name of this private key implementation.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- name of this private key type, in SSH terminology (for
- example, <code>&quot;ssh-rsa&quot;</code>).
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="../private/paramiko.PKey-class.html#get_name"><code>paramiko.PKey.get_name</code></a> <i>(inherited documentation)</i>
-</dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="verify_ssh_sig"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">verify_ssh_sig</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>data</span>,
- <span class=sig-arg>msg</span>)</span>
- </h3>
- Given a blob of data, and an SSH message representing a signature of
- that data, verify that it was signed with this key.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>data</b></code> -
- the data that was signed.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>msg</b></code> -
- an SSH signature message
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.Message-class.html"
- class="link"><code>Message</code></a>)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- <code>True</code> if the signature verifies correctly;
- <code>False</code> otherwise.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=boolean)</i>
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="../private/paramiko.PKey-class.html#verify_ssh_sig"><code>paramiko.PKey.verify_ssh_sig</code></a> <i>(inherited documentation)</i>
-</dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="write_private_key_file"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">write_private_key_file</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>filename</span>,
- <span class=sig-arg>password</span>=<span class=sig-default>None</span>)</span>
- </h3>
- Write private key contents into a file. If the password is not
- <code>None</code>, the key is encrypted before writing.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>filename</b></code> -
- name of the file to write.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>password</b></code> -
- an optional password to use to encrypt the key file.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>IOError</b></code> -
- if there was an error writing the file.
- <dd><code><b>SSHException</b></code> -
- if the key is invalid.
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="../private/paramiko.PKey-class.html#write_private_key_file"><code>paramiko.PKey.write_private_key_file</code></a> <i>(inherited documentation)</i>
-</dd>
- </dl>
-<p><b>Since:</b> fearow
-</p>
-
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF STATIC METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Static Method Details</th></tr>
-</table>
-
-<a name="generate"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">generate</span>(<span class=sig-arg>bits</span>=<span class=sig-default>1024</span>,
- <span class=sig-arg>progress_func</span>=<span class=sig-default>None</span>)</span>
- </h3>
- Generate a new private DSS key. This factory function can be used to
- generate a new host key or authentication key.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>bits</b></code> -
- number of bits the generated key should be.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- <dd><code><b>progress_func</b></code> -
- an optional function to call at key points in key generation
- (used by <code>pyCrypto.PublicKey</code>).
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=function)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- new private key
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.DSSKey-class.html"
- class="link"><code>DSSKey</code></a>)</i>
- </dd>
- </dl>
-<p><b>Since:</b> fearow
-</p>
-
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:48 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.Message-class.html b/docs/private/paramiko.Message-class.html
deleted file mode 100644
index d6934e3..0000000
--- a/docs/private/paramiko.Message-class.html
+++ /dev/null
@@ -1,654 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.Message</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Class&nbsp;Message
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/paramiko.Message-class.html">hide&nbsp;private</a>]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.Message-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type Message</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
- <b>Message</b>
-</pre><br />
-
-<hr/>
-
-<p>An SSH2 <i>Message</i> is a stream of bytes that encodes some
-combination of strings, integers, bools, and infinite-precision integers
-(known in python as <i>long</i>s). This class builds or breaks down such
-a byte stream.</p>
-Normally you don't need to deal with anything this low-level, but it's
-exposed for people implementing custom extensions, or features that
-paramiko doesn't support yet.
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Message-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>content</span>)</span></code>
-<br />
-Create a new SSH2 Message.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> string
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Message-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Returns a string representation of this object, for debugging.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> string
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Message-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return the byte stream content of this Message, as a string.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Message-class.html#add" class="summary-sig-name"><code>add</code></a>(<span class=summary-sig-arg>self</span>,
- <span class="summary-sig-vararg">*seq</span>)</span></code>
-<br />
-Add a sequence of items to the stream.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Message-class.html#add_boolean" class="summary-sig-name"><code>add_boolean</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>b</span>)</span></code>
-<br />
-Add a boolean value to the stream.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Message-class.html#add_byte" class="summary-sig-name"><code>add_byte</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>b</span>)</span></code>
-<br />
-Write a single byte to the stream, without any formatting.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Message-class.html#add_bytes" class="summary-sig-name"><code>add_bytes</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>b</span>)</span></code>
-<br />
-Write bytes to the stream, without any formatting.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Message-class.html#add_int" class="summary-sig-name"><code>add_int</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>n</span>)</span></code>
-<br />
-Add an integer to the stream.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Message-class.html#add_int64" class="summary-sig-name"><code>add_int64</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>n</span>)</span></code>
-<br />
-Add a 64-bit int to the stream.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Message-class.html#add_list" class="summary-sig-name"><code>add_list</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>l</span>)</span></code>
-<br />
-Add a list of strings to the stream.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Message-class.html#add_mpint" class="summary-sig-name"><code>add_mpint</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>z</span>)</span></code>
-<br />
-Add a long int to the stream, encoded as an infinite-precision
-integer.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Message-class.html#add_string" class="summary-sig-name"><code>add_string</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>s</span>)</span></code>
-<br />
-Add a string to the stream.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> bool
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Message-class.html#get_boolean" class="summary-sig-name"><code>get_boolean</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Fetch a boolean from the stream.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> string
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Message-class.html#get_byte" class="summary-sig-name"><code>get_byte</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return the next byte of the Message, without decomposing it.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> string
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Message-class.html#get_bytes" class="summary-sig-name"><code>get_bytes</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>n</span>)</span></code>
-<br />
-Return the next <code>n</code> bytes of the Message, without
-decomposing into an int, string, etc.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> int
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Message-class.html#get_int" class="summary-sig-name"><code>get_int</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Fetch an int from the stream.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> long
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Message-class.html#get_int64" class="summary-sig-name"><code>get_int64</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Fetch a 64-bit int from the stream.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> list of strings
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Message-class.html#get_list" class="summary-sig-name"><code>get_list</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Fetch a list of strings from the stream.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> long
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Message-class.html#get_mpint" class="summary-sig-name"><code>get_mpint</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Fetch a long int (mpint) from the stream.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> string
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Message-class.html#get_remainder" class="summary-sig-name"><code>get_remainder</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return the bytes of this Message that haven't already been parsed and
-returned.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> string
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Message-class.html#get_so_far" class="summary-sig-name"><code>get_so_far</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Returns the bytes of this Message that have been parsed and
-returned.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> string
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Message-class.html#get_string" class="summary-sig-name"><code>get_string</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Fetch a string from the stream.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Message-class.html#rewind" class="summary-sig-name"><code>rewind</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Rewind the message to the beginning as if no items had been parsed out
-of it yet.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_add"></a><span class="summary-sig"><span class="summary-sig-name">_add</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>i</span>)</span></code>
-</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-</table><br />
-
-
-<!-- =========== START OF METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Method Details</th></tr>
-</table>
-
-<a name="__init__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__init__</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>content</span>=<span class=sig-default>None</span>)</span>
- <br /><i>(Constructor)</i>
- </h3>
- Create a new SSH2 Message.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>content</b></code> -
- the byte stream to use as the Message content (passed in only
- when decomposing a Message).
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="__builtin__.object-class.html#__init__"><code>__builtin__.object.__init__</code></a></dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="__repr__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__repr__</span>(<span class=sig-arg>self</span>)</span>
- <br /><i>(Representation operator)</i>
- </h3>
- Returns a string representation of this object, for debugging.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- string
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="__builtin__.object-class.html#__repr__"><code>__builtin__.object.__repr__</code></a></dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="__str__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__str__</span>(<span class=sig-arg>self</span>)</span>
- <br /><i>(Informal representation operator)</i>
- </h3>
- Return the byte stream content of this Message, as a string.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- the contents of this Message.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="__builtin__.object-class.html#__str__"><code>__builtin__.object.__str__</code></a></dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="add"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">add</span>(<span class=sig-arg>self</span>,
- <span class="sig-vararg">*seq</span>)</span>
- </h3>
- Add a sequence of items to the stream. The values are encoded based
- on their type: str, int, bool, list, or long.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>seq</b></code> -
- the sequence of items
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=sequence)</i>
- </dd>
- </dl>
-<p><b>Bug:</b> longs are encoded non-deterministically. Don't use this method.
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="add_boolean"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">add_boolean</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>b</span>)</span>
- </h3>
- Add a boolean value to the stream.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>b</b></code> -
- boolean value to add
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=bool)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="add_byte"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">add_byte</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>b</span>)</span>
- </h3>
- Write a single byte to the stream, without any formatting.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>b</b></code> -
- byte to add
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="add_bytes"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">add_bytes</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>b</span>)</span>
- </h3>
- Write bytes to the stream, without any formatting.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>b</b></code> -
- bytes to add
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="add_int"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">add_int</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>n</span>)</span>
- </h3>
- Add an integer to the stream.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>n</b></code> -
- integer to add
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="add_int64"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">add_int64</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>n</span>)</span>
- </h3>
- Add a 64-bit int to the stream.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>n</b></code> -
- long int to add
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=long)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="add_list"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">add_list</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>l</span>)</span>
- </h3>
- Add a list of strings to the stream. They are encoded identically to
- a single string of values separated by commas. (Yes, really, that's how
- SSH2 does it.)
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>l</b></code> -
- list of strings to add
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=list(str))</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="add_mpint"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">add_mpint</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>z</span>)</span>
- </h3>
- Add a long int to the stream, encoded as an infinite-precision
- integer. This method only works on positive numbers.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>z</b></code> -
- long int to add
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=long)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="add_string"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">add_string</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>s</span>)</span>
- </h3>
- Add a string to the stream.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>s</b></code> -
- string to add
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="get_boolean"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_boolean</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Fetch a boolean from the stream.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- <code>True</code> or <code>False</code> (from the
- Message).
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=bool)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="get_byte"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_byte</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Return the next byte of the Message, without decomposing it. This is
- equivalent to <a href="paramiko.Message-class.html#get_bytes"
- class="link"><code>get_bytes(1)</code></a>.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- the next byte of the Message, or <code>'
- aren't any bytes remaining.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="get_bytes"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_bytes</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>n</span>)</span>
- </h3>
- Return the next <code>n</code> bytes of the Message, without
- decomposing into an int, string, etc. Just the raw bytes are
- returned.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- a string of the next <code>n</code> bytes of the Message, or a
- string of <code>n</code> zero bytes, if there aren't
- <code>n</code> bytes remaining.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="get_int"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_int</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Fetch an int from the stream.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- a 32-bit unsigned integer.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="get_int64"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_int64</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Fetch a 64-bit int from the stream.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- a 64-bit unsigned integer.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=long)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="get_list"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_list</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Fetch a list of strings from the stream. These are trivially encoded
- as comma-separated values in a string.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- a list of strings.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=list of strings)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="get_mpint"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_mpint</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Fetch a long int (mpint) from the stream.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- an arbitrary-length integer.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=long)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="get_remainder"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_remainder</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Return the bytes of this Message that haven't already been parsed
- and returned.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- a string of the bytes not parsed yet.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="get_so_far"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_so_far</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Returns the bytes of this Message that have been parsed and
- returned. The string passed into a Message's constructor can be
- regenerated by concatenating <code>get_so_far</code> and <a
- href="paramiko.Message-class.html#get_remainder"
- class="link"><code>get_remainder</code></a>.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- a string of the bytes parsed so far.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="get_string"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_string</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Fetch a string from the stream. This could be a byte string and may
- contain unprintable characters. (It's not unheard of for a string to
- contain another byte-stream Message.)
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- a string.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="rewind"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">rewind</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Rewind the message to the beginning as if no items had been parsed
- out of it yet.
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:46 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.PKey-class.html b/docs/private/paramiko.PKey-class.html
deleted file mode 100644
index 3ed3e5f..0000000
--- a/docs/private/paramiko.PKey-class.html
+++ /dev/null
@@ -1,696 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.PKey</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Class&nbsp;PKey
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<b>show&nbsp;private</b>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="../private/paramiko.PKey-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type PKey</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
- <b>PKey</b>
-</pre><br />
-
-<dl><dt><b>Known Subclasses:</b></dt>
-<dd>
- <a href="paramiko.AgentKey-class.html"><code>AgentKey</code></a>,
- <a href="paramiko.DSSKey-class.html"><code>DSSKey</code></a>,
- <a href="paramiko.RSAKey-class.html"><code>RSAKey</code></a></dd></dl>
-
-<hr/>
-
-Base class for public keys.
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.PKey-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>msg</span>,
- <span class=summary-sig-arg>data</span>)</span></code>
-<br />
-Create a new instance of this public key type.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> int
-</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.PKey-class.html#__cmp__" class="summary-sig-name"><code>__cmp__</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>other</span>)</span></code>
-<br />
-Compare this key to another.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.PKey-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return a string of an SSH <a href="paramiko.Message-class.html"
-class="link"><code>Message</code></a> made up of the public part(s) of
-this key.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.PKey-class.html#_read_private_key_file" class="summary-sig-name"><code>_read_private_key_file</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>tag</span>,
- <span class=summary-sig-arg>filename</span>,
- <span class=summary-sig-arg>password</span>)</span></code>
-<br />
-Read an SSH2-format private key file, looking for a string of the type
-<code>&quot;BEGIN xxx PRIVATE KEY&quot;</code> for some <code>xxx</code>,
-base64-decode the text we find, and return it as a string.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.PKey-class.html#_write_private_key_file" class="summary-sig-name"><code>_write_private_key_file</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>tag</span>,
- <span class=summary-sig-arg>filename</span>,
- <span class=summary-sig-arg>data</span>,
- <span class=summary-sig-arg>password</span>)</span></code>
-<br />
-Write an SSH2-format private key file in a form that can be read by
-paramiko or openssh.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> bool
-</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.PKey-class.html#can_sign" class="summary-sig-name"><code>can_sign</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return <code>True</code> if this key has the private part necessary
-for signing data.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> <a href="../private/paramiko.PKey-class.html"
- class="link"><code>PKey</code></a>
-</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.PKey-class.html#from_private_key_file" class="summary-sig-name"><code>from_private_key_file</code></a>(<span class=summary-sig-arg>cl</span>,
- <span class=summary-sig-arg>filename</span>,
- <span class=summary-sig-arg>password</span>)</span></code>
-<br />
-Create a key object by reading a private key file. <i>(Class method)</i>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.PKey-class.html#get_base64" class="summary-sig-name"><code>get_base64</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return a base64 string containing the public part of this key.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> int
-</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.PKey-class.html#get_bits" class="summary-sig-name"><code>get_bits</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return the number of significant bits in this key.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.PKey-class.html#get_fingerprint" class="summary-sig-name"><code>get_fingerprint</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return an MD5 fingerprint of the public part of this key.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.PKey-class.html#get_name" class="summary-sig-name"><code>get_name</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return the name of this private key implementation.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> <a href="paramiko.Message-class.html"
- class="link"><code>Message</code></a>
-</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.PKey-class.html#sign_ssh_data" class="summary-sig-name"><code>sign_ssh_data</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>randpool</span>,
- <span class=summary-sig-arg>data</span>)</span></code>
-<br />
-Sign a blob of data with this private key, and return a <a
-href="paramiko.Message-class.html" class="link"><code>Message</code></a>
-representing an SSH signature message.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> boolean
-</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.PKey-class.html#verify_ssh_sig" class="summary-sig-name"><code>verify_ssh_sig</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>data</span>,
- <span class=summary-sig-arg>msg</span>)</span></code>
-<br />
-Given a blob of data, and an SSH message representing a signature of
-that data, verify that it was signed with this key.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.PKey-class.html#write_private_key_file" class="summary-sig-name"><code>write_private_key_file</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>filename</span>,
- <span class=summary-sig-arg>password</span>)</span></code>
-<br />
-Write private key contents into a file.</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__repr__() &lt;==&gt; repr(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-</table><br />
-
-
-<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Class Variable Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>dict</code></font></td>
-<td><b><a href="../private/paramiko.PKey-class.html#_CIPHER_TABLE"><code>_CIPHER_TABLE</code></a></b> = <span title="{'DES-EDE3-CBC': {'blocksize': 8, 'cipher': &lt;module 'Crypto.Cipher.DES3' from '/usr/lib/python2.4/site-packages/Crypto/Cipher/DES3.so'&gt;, 'keysize': 24, 'mode': 2}}"><code>{'DES-EDE3-CBC':&nbsp;{'blocksize':&nbsp;8,&nbsp;'ciphe<span class="variable-ellipsis">...</span></code>
-</span></td></tr>
-</table><br />
-
-
-<!-- =========== START OF INSTANCE METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Instance Method Details</th></tr>
-</table>
-
-<a name="__init__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__init__</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>msg</span>=<span class=sig-default>None</span>,
- <span class=sig-arg>data</span>=<span class=sig-default>None</span>)</span>
- <br /><i>(Constructor)</i>
- </h3>
- Create a new instance of this public key type. If <code>msg</code>
- is given, the key's public part(s) will be filled in from the message.
- If <code>data</code> is given, the key's public part(s) will be filled
- in from the string.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>msg</b></code> -
- an optional SSH <a href="paramiko.Message-class.html"
- class="link"><code>Message</code></a> containing a public key of
- this type.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.Message-class.html"
- class="link"><code>Message</code></a>)</i>
- <dd><code><b>data</b></code> -
- an optional string containing a public key of this type
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>SSHException</b></code> -
- if a key cannot be created from the <code>data</code> or
- <code>msg</code> given, or no key was passed in.
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="__builtin__.object-class.html#__init__"><code>__builtin__.object.__init__</code></a></dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="__cmp__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__cmp__</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>other</span>)</span>
- <br /><i>(Comparison operator)</i>
- </h3>
- Compare this key to another. Returns 0 if this key is equivalent to
- the given key, or non-0 if they are different. Only the public parts of
- the key are compared, so a public key will compare equal to its
- corresponding private key.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>other</b></code> -
- key to compare to.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="../private/paramiko.PKey-class.html"
- class="link"><code>PKey</code></a>)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- 0 if the two keys are equivalent, non-0 otherwise.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="__str__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__str__</span>(<span class=sig-arg>self</span>)</span>
- <br /><i>(Informal representation operator)</i>
- </h3>
- Return a string of an SSH <a href="paramiko.Message-class.html"
- class="link"><code>Message</code></a> made up of the public part(s) of
- this key. This string is suitable for passing to <a
- href="../private/paramiko.PKey-class.html#__init__"
- class="link"><code>__init__</code></a> to re-create the key object
- later.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- string representation of an SSH key message.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="__builtin__.object-class.html#__str__"><code>__builtin__.object.__str__</code></a></dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="_read_private_key_file"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">_read_private_key_file</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>tag</span>,
- <span class=sig-arg>filename</span>,
- <span class=sig-arg>password</span>=<span class=sig-default>None</span>)</span>
- </h3>
- Read an SSH2-format private key file, looking for a string of the
- type <code>&quot;BEGIN xxx PRIVATE KEY&quot;</code> for some
- <code>xxx</code>, base64-decode the text we find, and return it as a
- string. If the private key is encrypted and <code>password</code> is
- not <code>None</code>, the given password will be used to decrypt the
- key (otherwise <a href="paramiko.PasswordRequiredException-class.html"
- class="link"><code>PasswordRequiredException</code></a> is thrown).
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>tag</b></code> -
- <code>&quot;RSA&quot;</code> or <code>&quot;DSA&quot;</code>,
- the tag used to mark the data block.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>filename</b></code> -
- name of the file to read.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>password</b></code> -
- an optional password to use to decrypt the key file, if it's
- encrypted.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- data blob that makes up the private key.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>IOError</b></code> -
- if there was an error reading the file.
- <dd><code><b>PasswordRequiredException</b></code> -
- if the private key file is encrypted, and
- <code>password</code> is <code>None</code>.
- <dd><code><b>SSHException</b></code> -
- if the key file is invalid.
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="_write_private_key_file"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">_write_private_key_file</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>tag</span>,
- <span class=sig-arg>filename</span>,
- <span class=sig-arg>data</span>,
- <span class=sig-arg>password</span>=<span class=sig-default>None</span>)</span>
- </h3>
- Write an SSH2-format private key file in a form that can be read by
- paramiko or openssh. If no password is given, the key is written in a
- trivially-encoded format (base64) which is completely insecure. If a
- password is given, DES-EDE3-CBC is used.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>tag</b></code> -
- <code>&quot;RSA&quot;</code> or <code>&quot;DSA&quot;</code>,
- the tag used to mark the data block.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>filename</b></code> -
- name of the file to write.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>data</b></code> -
- data blob that makes up the private key.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>password</b></code> -
- an optional password to use to encrypt the file.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>IOError</b></code> -
- if there was an error writing the file.
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="can_sign"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">can_sign</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Return <code>True</code> if this key has the private part necessary
- for signing data.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- <code>True</code> if this is a private key.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=bool)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="get_base64"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_base64</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Return a base64 string containing the public part of this key.
- Nothing secret is revealed. This format is compatible with that used to
- store public key files or recognized host keys.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- a base64 string containing the public part of the key.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
-<p><b>Since:</b> fearow
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="get_bits"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_bits</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Return the number of significant bits in this key. This is useful
- for judging the relative security of a key.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- bits in the key.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="get_fingerprint"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_fingerprint</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Return an MD5 fingerprint of the public part of this key. Nothing
- secret is revealed.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- a 16-byte string (binary) of the MD5 fingerprint, in SSH
- format.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="get_name"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_name</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Return the name of this private key implementation.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- name of this private key type, in SSH terminology (for
- example, <code>&quot;ssh-rsa&quot;</code>).
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="sign_ssh_data"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">sign_ssh_data</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>randpool</span>,
- <span class=sig-arg>data</span>)</span>
- </h3>
- Sign a blob of data with this private key, and return a <a
- href="paramiko.Message-class.html"
- class="link"><code>Message</code></a> representing an SSH signature
- message.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>randpool</b></code> -
- a secure random number generator.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<code>Crypto.Util.randpool.RandomPool</code>)</i>
- <dd><code><b>data</b></code> -
- the data to sign.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- an SSH signature message.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.Message-class.html"
- class="link"><code>Message</code></a>)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="verify_ssh_sig"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">verify_ssh_sig</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>data</span>,
- <span class=sig-arg>msg</span>)</span>
- </h3>
- Given a blob of data, and an SSH message representing a signature of
- that data, verify that it was signed with this key.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>data</b></code> -
- the data that was signed.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>msg</b></code> -
- an SSH signature message
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.Message-class.html"
- class="link"><code>Message</code></a>)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- <code>True</code> if the signature verifies correctly;
- <code>False</code> otherwise.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=boolean)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="write_private_key_file"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">write_private_key_file</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>filename</span>,
- <span class=sig-arg>password</span>=<span class=sig-default>None</span>)</span>
- </h3>
- Write private key contents into a file. If the password is not
- <code>None</code>, the key is encrypted before writing.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>filename</b></code> -
- name of the file to write.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>password</b></code> -
- an optional password to use to encrypt the key file.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>IOError</b></code> -
- if there was an error writing the file.
- <dd><code><b>SSHException</b></code> -
- if the key is invalid.
- </dl>
-<p><b>Since:</b> fearow
-</p>
-
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF CLASS METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Class Method Details</th></tr>
-</table>
-
-<a name="from_private_key_file"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">from_private_key_file</span>(<span class=sig-arg>cl</span>,
- <span class=sig-arg>filename</span>,
- <span class=sig-arg>password</span>=<span class=sig-default>None</span>)</span>
- </h3>
- Create a key object by reading a private key file. If the private
- key is encrypted and <code>password</code> is not <code>None</code>,
- the given password will be used to decrypt the key (otherwise <a
- href="paramiko.PasswordRequiredException-class.html"
- class="link"><code>PasswordRequiredException</code></a> is thrown).
- Through the magic of python, this factory method will exist in all
- subclasses of PKey (such as <a href="paramiko.RSAKey-class.html"
- class="link"><code>RSAKey</code></a> or <a
- href="paramiko.DSSKey-class.html"
- class="link"><code>DSSKey</code></a>), but is useless on the abstract
- PKey class.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>filename</b></code> -
- name of the file to read.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>password</b></code> -
- an optional password to use to decrypt the key file, if it's
- encrypted
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- a new key object based on the given private key.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="../private/paramiko.PKey-class.html"
- class="link"><code>PKey</code></a>)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>IOError</b></code> -
- if there was an error reading the file.
- <dd><code><b>PasswordRequiredException</b></code> -
- if the private key file is encrypted, and
- <code>password</code> is <code>None</code>.
- <dd><code><b>SSHException</b></code> -
- if the key file is invalid.
- </dl>
-<p><b>Since:</b> fearow
-</p>
-
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF CLASS VARIABLE DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Class Variable Details</th></tr>
-</table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="_CIPHER_TABLE"></a>
-<h3>_CIPHER_TABLE</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>dict</code>
-
- </dd>
-<span title="{'DES-EDE3-CBC': {'blocksize': 8, 'cipher': &lt;module 'Crypto.Cipher.DES3' from '/usr/lib/python2.4/site-packages/Crypto/Cipher/DES3.so'&gt;, 'keysize': 24, 'mode': 2}}"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-{'DES-EDE3-CBC': {'blocksize': 8,
- 'cipher': &lt;module 'Crypto.Cipher.DES3' from '/usr/li<span class="variable-linewrap">\</span>
-b/python2.4/site-packages/Crypto/Cipher/DES3.so'&gt;,
- 'keysize': 24,
- 'mode': 2}} </pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.Packetizer-class.html b/docs/private/paramiko.Packetizer-class.html
deleted file mode 100644
index f3be97b..0000000
--- a/docs/private/paramiko.Packetizer-class.html
+++ /dev/null
@@ -1,441 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.Packetizer</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Class&nbsp;Packetizer
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<b>show&nbsp;private</b>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="../private/paramiko.Packetizer-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type Packetizer</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
- <b>Packetizer</b>
-</pre><br />
-
-<hr/>
-
-Implementation of the base SSH packet protocol.
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__init__"></a><span class="summary-sig"><span class="summary-sig-name">__init__</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>socket</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__del__"></a><span class="summary-sig"><span class="summary-sig-name">__del__</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_build_packet"></a><span class="summary-sig"><span class="summary-sig-name">_build_packet</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>payload</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_check_keepalive"></a><span class="summary-sig"><span class="summary-sig-name">_check_keepalive</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_log"></a><span class="summary-sig"><span class="summary-sig-name">_log</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>level</span>,
- <span class=summary-sig-arg>msg</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_py22_read_all"></a><span class="summary-sig"><span class="summary-sig-name">_py22_read_all</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>n</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_py22_read_timeout"></a><span class="summary-sig"><span class="summary-sig-name">_py22_read_timeout</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>timeout</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_read_timeout"></a><span class="summary-sig"><span class="summary-sig-name">_read_timeout</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>timeout</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_trigger_rekey"></a><span class="summary-sig"><span class="summary-sig-name">_trigger_rekey</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="close"></a><span class="summary-sig"><span class="summary-sig-name">close</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="get_hexdump"></a><span class="summary-sig"><span class="summary-sig-name">get_hexdump</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="get_mac_size_in"></a><span class="summary-sig"><span class="summary-sig-name">get_mac_size_in</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="get_mac_size_out"></a><span class="summary-sig"><span class="summary-sig-name">get_mac_size_out</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.Packetizer-class.html#need_rekey" class="summary-sig-name"><code>need_rekey</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Returns <code>True</code> if a new set of keys needs to be
-negotiated.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.Packetizer-class.html#read_all" class="summary-sig-name"><code>read_all</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>n</span>,
- <span class=summary-sig-arg>check_rekey</span>)</span></code>
-<br />
-Read as close to N bytes as possible, blocking as long as
-necessary.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.Packetizer-class.html#read_message" class="summary-sig-name"><code>read_message</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Only one thread should ever be in this function (no other locking is
-done).</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.Packetizer-class.html#readline" class="summary-sig-name"><code>readline</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>timeout</span>)</span></code>
-<br />
-Read a line from the socket.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.Packetizer-class.html#send_message" class="summary-sig-name"><code>send_message</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>data</span>)</span></code>
-<br />
-Write a block of data using the current cipher, as an SSH block.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="set_hexdump"></a><span class="summary-sig"><span class="summary-sig-name">set_hexdump</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>hexdump</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.Packetizer-class.html#set_inbound_cipher" class="summary-sig-name"><code>set_inbound_cipher</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>block_engine</span>,
- <span class=summary-sig-arg>block_size</span>,
- <span class=summary-sig-arg>mac_engine</span>,
- <span class=summary-sig-arg>mac_size</span>,
- <span class=summary-sig-arg>mac_key</span>)</span></code>
-<br />
-Switch inbound data cipher.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="set_inbound_compressor"></a><span class="summary-sig"><span class="summary-sig-name">set_inbound_compressor</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>compressor</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.Packetizer-class.html#set_keepalive" class="summary-sig-name"><code>set_keepalive</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>interval</span>,
- <span class=summary-sig-arg>callback</span>)</span></code>
-<br />
-Turn on/off the callback keepalive.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.Packetizer-class.html#set_log" class="summary-sig-name"><code>set_log</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>log</span>)</span></code>
-<br />
-Set the python log object to use for logging.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.Packetizer-class.html#set_outbound_cipher" class="summary-sig-name"><code>set_outbound_cipher</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>block_engine</span>,
- <span class=summary-sig-arg>block_size</span>,
- <span class=summary-sig-arg>mac_engine</span>,
- <span class=summary-sig-arg>mac_size</span>,
- <span class=summary-sig-arg>mac_key</span>)</span></code>
-<br />
-Switch outbound data cipher.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="set_outbound_compressor"></a><span class="summary-sig"><span class="summary-sig-name">set_outbound_compressor</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>compressor</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="write_all"></a><span class="summary-sig"><span class="summary-sig-name">write_all</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>out</span>)</span></code>
-</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__repr__() &lt;==&gt; repr(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__str__() &lt;==&gt; str(x)</td></tr>
-</table><br />
-
-
-<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Class Variable Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.Packetizer-class.html#REKEY_BYTES"><code>REKEY_BYTES</code></a></b> = <span title="1073741824">1073741824&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.Packetizer-class.html#REKEY_PACKETS"><code>REKEY_PACKETS</code></a></b> = <span title="1073741824">1073741824&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-</table><br />
-
-
-<!-- =========== START OF METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Method Details</th></tr>
-</table>
-
-<a name="need_rekey"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">need_rekey</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Returns <code>True</code> if a new set of keys needs to be
- negotiated. This will be triggered during a packet read or write, so it
- should be checked after every read or write, or at least after every
- few.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- <code>True</code> if a new set of keys needs to be
- negotiated
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="read_all"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">read_all</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>n</span>,
- <span class=sig-arg>check_rekey</span>=<span class=sig-default>False</span>)</span>
- </h3>
- Read as close to N bytes as possible, blocking as long as
- necessary.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>n</b></code> -
- number of bytes to read
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- the data read
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>EOFError</b></code> -
- if the socket was closed before all the bytes could be
- read
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="read_message"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">read_message</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Only one thread should ever be in this function (no other locking is
- done).
- <dl><dt></dt><dd>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>SSHException</b></code> -
- if the packet is mangled
- <dd><code><b>NeedRekeyException</b></code> -
- if the transport should rekey
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="readline"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">readline</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>timeout</span>)</span>
- </h3>
- Read a line from the socket. This is done in a fairly inefficient
- way, but is only used for initial banner negotiation so it's not worth
- optimising.
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-
-<a name="send_message"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">send_message</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>data</span>)</span>
- </h3>
- Write a block of data using the current cipher, as an SSH block.
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-
-<a name="set_inbound_cipher"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">set_inbound_cipher</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>block_engine</span>,
- <span class=sig-arg>block_size</span>,
- <span class=sig-arg>mac_engine</span>,
- <span class=sig-arg>mac_size</span>,
- <span class=sig-arg>mac_key</span>)</span>
- </h3>
- Switch inbound data cipher.
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-
-<a name="set_keepalive"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">set_keepalive</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>interval</span>,
- <span class=sig-arg>callback</span>)</span>
- </h3>
- Turn on/off the callback keepalive. If <code>interval</code> seconds
- pass with no data read from or written to the socket, the callback will
- be executed and the timer will be reset.
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-
-<a name="set_log"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">set_log</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>log</span>)</span>
- </h3>
- Set the python log object to use for logging.
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-
-<a name="set_outbound_cipher"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">set_outbound_cipher</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>block_engine</span>,
- <span class=sig-arg>block_size</span>,
- <span class=sig-arg>mac_engine</span>,
- <span class=sig-arg>mac_size</span>,
- <span class=sig-arg>mac_key</span>)</span>
- </h3>
- Switch outbound data cipher.
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF CLASS VARIABLE DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Class Variable Details</th></tr>
-</table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="REKEY_BYTES"></a>
-<h3>REKEY_BYTES</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="1073741824"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-1073741824&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="REKEY_PACKETS"></a>
-<h3>REKEY_PACKETS</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="1073741824"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-1073741824&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:46 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.PasswordRequiredException-class.html b/docs/private/paramiko.PasswordRequiredException-class.html
deleted file mode 100644
index 2b7fb88..0000000
--- a/docs/private/paramiko.PasswordRequiredException-class.html
+++ /dev/null
@@ -1,91 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.PasswordRequiredException</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Class&nbsp;PasswordRequiredException
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/paramiko.PasswordRequiredException-class.html">hide&nbsp;private</a>]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.PasswordRequiredException-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Class PasswordRequiredException</h2>
-
-<pre class="base-tree">
-<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+
- |
- <a href="paramiko.SSHException-class.html"><code>SSHException</code></a> --+
- |
- <b>PasswordRequiredException</b>
-</pre><br />
-
-<hr/>
-
-Exception raised when a password is needed to unlock a private key
-file.
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-</td></tr>
-</table><br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:48 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.RSAKey-class.html b/docs/private/paramiko.RSAKey-class.html
deleted file mode 100644
index 0550d72..0000000
--- a/docs/private/paramiko.RSAKey-class.html
+++ /dev/null
@@ -1,504 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.RSAKey</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Class&nbsp;RSAKey
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/paramiko.RSAKey-class.html">hide&nbsp;private</a>]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.RSAKey-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type RSAKey</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
- <a href="../private/paramiko.PKey-class.html"><code>PKey</code></a> --+
- |
- <b>RSAKey</b>
-</pre><br />
-
-<hr/>
-
-Representation of an RSA key which can be used to sign and verify SSH2
-data.
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.RSAKey-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>msg</span>,
- <span class=summary-sig-arg>data</span>)</span></code>
-<br />
-Create a new instance of this public key type.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__hash__"></a><span class="summary-sig"><span class="summary-sig-name">__hash__</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.RSAKey-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return a string of an SSH <a href="paramiko.Message-class.html"
-class="link"><code>Message</code></a> made up of the public part(s) of
-this key.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> bool
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.RSAKey-class.html#can_sign" class="summary-sig-name"><code>can_sign</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return <code>True</code> if this key has the private part necessary
-for signing data.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> <a href="paramiko.RSAKey-class.html"
- class="link"><code>RSAKey</code></a>
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.RSAKey-class.html#generate" class="summary-sig-name"><code>generate</code></a>(<span class=summary-sig-arg>bits</span>,
- <span class=summary-sig-arg>progress_func</span>)</span></code>
-<br />
-Generate a new private RSA key. <i>(Static method)</i>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> int
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.RSAKey-class.html#get_bits" class="summary-sig-name"><code>get_bits</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return the number of significant bits in this key.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.RSAKey-class.html#get_name" class="summary-sig-name"><code>get_name</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return the name of this private key implementation.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="sign_ssh_data"></a><span class="summary-sig"><span class="summary-sig-name">sign_ssh_data</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>rpool</span>,
- <span class=summary-sig-arg>data</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> boolean
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.RSAKey-class.html#verify_ssh_sig" class="summary-sig-name"><code>verify_ssh_sig</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>data</span>,
- <span class=summary-sig-arg>msg</span>)</span></code>
-<br />
-Given a blob of data, and an SSH message representing a signature of
-that data, verify that it was signed with this key.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.RSAKey-class.html#write_private_key_file" class="summary-sig-name"><code>write_private_key_file</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>filename</span>,
- <span class=summary-sig-arg>password</span>)</span></code>
-<br />
-Write private key contents into a file.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_from_private_key_file"></a><span class="summary-sig"><span class="summary-sig-name">_from_private_key_file</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>filename</span>,
- <span class=summary-sig-arg>password</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.RSAKey-class.html#_pkcs1imify" class="summary-sig-name"><code>_pkcs1imify</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>data</span>)</span></code>
-<br />
-turn a 20-byte SHA1 hash into a blob of data as large as the key's N,
-using PKCS1's &quot;emsa-pkcs1-v1_5&quot; encoding.</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from PKey</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> int
-</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.PKey-class.html#__cmp__" class="summary-sig-name"><code>__cmp__</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>other</span>)</span></code>
-<br />
-Compare this key to another.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.PKey-class.html#_read_private_key_file" class="summary-sig-name"><code>_read_private_key_file</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>tag</span>,
- <span class=summary-sig-arg>filename</span>,
- <span class=summary-sig-arg>password</span>)</span></code>
-<br />
-Read an SSH2-format private key file, looking for a string of the type
-<code>&quot;BEGIN xxx PRIVATE KEY&quot;</code> for some <code>xxx</code>,
-base64-decode the text we find, and return it as a string.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.PKey-class.html#_write_private_key_file" class="summary-sig-name"><code>_write_private_key_file</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>tag</span>,
- <span class=summary-sig-arg>filename</span>,
- <span class=summary-sig-arg>data</span>,
- <span class=summary-sig-arg>password</span>)</span></code>
-<br />
-Write an SSH2-format private key file in a form that can be read by
-paramiko or openssh.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> <a href="../private/paramiko.PKey-class.html"
- class="link"><code>PKey</code></a>
-</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.PKey-class.html#from_private_key_file" class="summary-sig-name"><code>from_private_key_file</code></a>(<span class=summary-sig-arg>cl</span>,
- <span class=summary-sig-arg>filename</span>,
- <span class=summary-sig-arg>password</span>)</span></code>
-<br />
-Create a key object by reading a private key file. <i>(Class method)</i>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.PKey-class.html#get_base64" class="summary-sig-name"><code>get_base64</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return a base64 string containing the public part of this key.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.PKey-class.html#get_fingerprint" class="summary-sig-name"><code>get_fingerprint</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return an MD5 fingerprint of the public part of this key.</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__repr__() &lt;==&gt; repr(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-</table><br />
-
-
-<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Class Variable Summary</th></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from PKey</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>dict</code></font></td>
-<td><b><a href="../private/paramiko.PKey-class.html#_CIPHER_TABLE"><code>_CIPHER_TABLE</code></a></b> = <span title="{'DES-EDE3-CBC': {'blocksize': 8, 'cipher': &lt;module 'Crypto.Cipher.DES3' from '/usr/lib/python2.4/site-packages/Crypto/Cipher/DES3.so'&gt;, 'keysize': 24, 'mode': 2}}"><code>{'DES-EDE3-CBC':&nbsp;{'blocksize':&nbsp;8,&nbsp;'ciphe<span class="variable-ellipsis">...</span></code>
-</span></td></tr>
-</table><br />
-
-
-<!-- =========== START OF INSTANCE METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Instance Method Details</th></tr>
-</table>
-
-<a name="__init__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__init__</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>msg</span>=<span class=sig-default>None</span>,
- <span class=sig-arg>data</span>=<span class=sig-default>None</span>,
- <span class=sig-arg>filename</span>=<span class=sig-default>None</span>,
- <span class=sig-arg>password</span>=<span class=sig-default>None</span>,
- <span class=sig-arg>vals</span>=<span class=sig-default>None</span>)</span>
- <br /><i>(Constructor)</i>
- </h3>
- Create a new instance of this public key type. If <code>msg</code>
- is given, the key's public part(s) will be filled in from the message.
- If <code>data</code> is given, the key's public part(s) will be filled
- in from the string.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>msg</b></code> -
- an optional SSH <a href="paramiko.Message-class.html"
- class="link"><code>Message</code></a> containing a public key of
- this type.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.Message-class.html"
- class="link"><code>Message</code></a>)</i>
- <dd><code><b>data</b></code> -
- an optional string containing a public key of this type
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>SSHException</b></code> -
- if a key cannot be created from the <code>data</code> or
- <code>msg</code> given, or no key was passed in.
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="../private/paramiko.PKey-class.html#__init__"><code>paramiko.PKey.__init__</code></a> <i>(inherited documentation)</i>
-</dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="__str__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__str__</span>(<span class=sig-arg>self</span>)</span>
- <br /><i>(Informal representation operator)</i>
- </h3>
- Return a string of an SSH <a href="paramiko.Message-class.html"
- class="link"><code>Message</code></a> made up of the public part(s) of
- this key. This string is suitable for passing to <a
- href="../private/paramiko.PKey-class.html#__init__"
- class="link"><code>__init__</code></a> to re-create the key object
- later.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- string representation of an SSH key message.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="../private/paramiko.PKey-class.html#__str__"><code>paramiko.PKey.__str__</code></a> <i>(inherited documentation)</i>
-</dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="can_sign"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">can_sign</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Return <code>True</code> if this key has the private part necessary
- for signing data.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- <code>True</code> if this is a private key.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=bool)</i>
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="../private/paramiko.PKey-class.html#can_sign"><code>paramiko.PKey.can_sign</code></a> <i>(inherited documentation)</i>
-</dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="get_bits"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_bits</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Return the number of significant bits in this key. This is useful
- for judging the relative security of a key.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- bits in the key.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="../private/paramiko.PKey-class.html#get_bits"><code>paramiko.PKey.get_bits</code></a> <i>(inherited documentation)</i>
-</dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="get_name"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_name</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Return the name of this private key implementation.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- name of this private key type, in SSH terminology (for
- example, <code>&quot;ssh-rsa&quot;</code>).
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="../private/paramiko.PKey-class.html#get_name"><code>paramiko.PKey.get_name</code></a> <i>(inherited documentation)</i>
-</dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="verify_ssh_sig"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">verify_ssh_sig</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>data</span>,
- <span class=sig-arg>msg</span>)</span>
- </h3>
- Given a blob of data, and an SSH message representing a signature of
- that data, verify that it was signed with this key.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>data</b></code> -
- the data that was signed.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>msg</b></code> -
- an SSH signature message
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.Message-class.html"
- class="link"><code>Message</code></a>)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- <code>True</code> if the signature verifies correctly;
- <code>False</code> otherwise.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=boolean)</i>
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="../private/paramiko.PKey-class.html#verify_ssh_sig"><code>paramiko.PKey.verify_ssh_sig</code></a> <i>(inherited documentation)</i>
-</dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="write_private_key_file"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">write_private_key_file</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>filename</span>,
- <span class=sig-arg>password</span>=<span class=sig-default>None</span>)</span>
- </h3>
- Write private key contents into a file. If the password is not
- <code>None</code>, the key is encrypted before writing.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>filename</b></code> -
- name of the file to write.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>password</b></code> -
- an optional password to use to encrypt the key file.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>IOError</b></code> -
- if there was an error writing the file.
- <dd><code><b>SSHException</b></code> -
- if the key is invalid.
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="../private/paramiko.PKey-class.html#write_private_key_file"><code>paramiko.PKey.write_private_key_file</code></a> <i>(inherited documentation)</i>
-</dd>
- </dl>
-<p><b>Since:</b> fearow
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="_pkcs1imify"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">_pkcs1imify</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>data</span>)</span>
- </h3>
- turn a 20-byte SHA1 hash into a blob of data as large as the key's
- N, using PKCS1's &quot;emsa-pkcs1-v1_5&quot; encoding. totally
- bizarre.
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF STATIC METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Static Method Details</th></tr>
-</table>
-
-<a name="generate"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">generate</span>(<span class=sig-arg>bits</span>,
- <span class=sig-arg>progress_func</span>=<span class=sig-default>None</span>)</span>
- </h3>
- Generate a new private RSA key. This factory function can be used to
- generate a new host key or authentication key.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>bits</b></code> -
- number of bits the generated key should be.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- <dd><code><b>progress_func</b></code> -
- an optional function to call at key points in key generation
- (used by <code>pyCrypto.PublicKey</code>).
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=function)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- new private key
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.RSAKey-class.html"
- class="link"><code>RSAKey</code></a>)</i>
- </dd>
- </dl>
-<p><b>Since:</b> fearow
-</p>
-
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.SFTP-class.html b/docs/private/paramiko.SFTP-class.html
deleted file mode 100644
index 7ba1c7f..0000000
--- a/docs/private/paramiko.SFTP-class.html
+++ /dev/null
@@ -1,347 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.SFTP</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Class&nbsp;SFTP
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/paramiko.SFTP-class.html">hide&nbsp;private</a>]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.SFTP-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type SFTP</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
- <a href="../private/paramiko.BaseSFTP-class.html"><code>BaseSFTP</code></a> --+
- |
- <a href="paramiko.SFTPClient-class.html"><code>SFTPClient</code></a> --+
- |
- <b>SFTP</b>
-</pre><br />
-
-<hr/>
-
-an alias for <a href="paramiko.SFTPClient-class.html"
-class="link"><code>SFTPClient</code></a> for backwards compatability
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from SFTPClient</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>sock</span>)</span></code>
-<br />
-Create an SFTP client from an existing <a
-href="paramiko.Channel-class.html"
-class="link"><code>Channel</code></a>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#__del__" class="summary-sig-name"><code>__del__</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#chdir" class="summary-sig-name"><code>chdir</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>)</span></code>
-<br />
-Change the &quot;current directory&quot; of this SFTP session.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#chmod" class="summary-sig-name"><code>chmod</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>,
- <span class=summary-sig-arg>mode</span>)</span></code>
-<br />
-Change the mode (permissions) of a file.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#chown" class="summary-sig-name"><code>chown</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>,
- <span class=summary-sig-arg>uid</span>,
- <span class=summary-sig-arg>gid</span>)</span></code>
-<br />
-Change the owner (<code>uid</code>) and group (<code>gid</code>) of a
-file.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#close" class="summary-sig-name"><code>close</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Close the SFTP session and its underlying channel.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> SFTPFile
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#file" class="summary-sig-name"><code>file</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>filename</span>,
- <span class=summary-sig-arg>mode</span>,
- <span class=summary-sig-arg>bufsize</span>)</span></code>
-<br />
-Open a file on the remote server.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> <a href="paramiko.SFTPClient-class.html"
- class="link"><code>SFTPClient</code></a>
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#from_transport" class="summary-sig-name"><code>from_transport</code></a>(<span class=summary-sig-arg>selfclass</span>,
- <span class=summary-sig-arg>t</span>)</span></code>
-<br />
-Create an SFTP client channel from an open <a
-href="paramiko.Transport-class.html"
-class="link"><code>Transport</code></a>. <i>(Class method)</i>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#get" class="summary-sig-name"><code>get</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>remotepath</span>,
- <span class=summary-sig-arg>localpath</span>)</span></code>
-<br />
-Copy a remote file (<code>remotepath</code>) from the SFTP server to
-the local host as <code>localpath</code>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#getcwd" class="summary-sig-name"><code>getcwd</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return the &quot;current working directory&quot; for this SFTP
-session, as emulated by paramiko.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> list of str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#listdir" class="summary-sig-name"><code>listdir</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>)</span></code>
-<br />
-Return a list containing the names of the entries in the given
-<code>path</code>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> list of <a href="paramiko.SFTPAttributes-class.html"
- class="link"><code>SFTPAttributes</code></a>
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#listdir_attr" class="summary-sig-name"><code>listdir_attr</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>)</span></code>
-<br />
-Return a list containing <a href="paramiko.SFTPAttributes-class.html"
-class="link"><code>SFTPAttributes</code></a> objects corresponding to
-files in the given <code>path</code>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> SFTPAttributes
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#lstat" class="summary-sig-name"><code>lstat</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>)</span></code>
-<br />
-Retrieve information about a file on the remote system, without
-following symbolic links (shortcuts).</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#mkdir" class="summary-sig-name"><code>mkdir</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>,
- <span class=summary-sig-arg>mode</span>)</span></code>
-<br />
-Create a folder (directory) named <code>path</code> with numeric mode
-<code>mode</code>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#normalize" class="summary-sig-name"><code>normalize</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>)</span></code>
-<br />
-Return the normalized path (on the server) of a given path.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> SFTPFile
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#file" class="summary-sig-name"><code>open</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>filename</span>,
- <span class=summary-sig-arg>mode</span>,
- <span class=summary-sig-arg>bufsize</span>)</span></code>
-<br />
-Open a file on the remote server.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#put" class="summary-sig-name"><code>put</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>localpath</span>,
- <span class=summary-sig-arg>remotepath</span>)</span></code>
-<br />
-Copy a local file (<code>localpath</code>) to the SFTP server as
-<code>remotepath</code>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#readlink" class="summary-sig-name"><code>readlink</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>)</span></code>
-<br />
-Return the target of a symbolic link (shortcut).</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#remove" class="summary-sig-name"><code>remove</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>)</span></code>
-<br />
-Remove the file at the given path.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#rename" class="summary-sig-name"><code>rename</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>oldpath</span>,
- <span class=summary-sig-arg>newpath</span>)</span></code>
-<br />
-Rename a file or folder from <code>oldpath</code> to
-<code>newpath</code>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#rmdir" class="summary-sig-name"><code>rmdir</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>)</span></code>
-<br />
-Remove the folder named <code>path</code>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> SFTPAttributes
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#stat" class="summary-sig-name"><code>stat</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>)</span></code>
-<br />
-Retrieve information about a file on the remote system.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#symlink" class="summary-sig-name"><code>symlink</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>source</span>,
- <span class=summary-sig-arg>dest</span>)</span></code>
-<br />
-Create a symbolic link (shortcut) of the <code>source</code> path at
-<code>destination</code>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#remove" class="summary-sig-name"><code>unlink</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>)</span></code>
-<br />
-Remove the file at the given path.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#utime" class="summary-sig-name"><code>utime</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>,
- <span class=summary-sig-arg>times</span>)</span></code>
-<br />
-Set the access and modified times of the file specified by
-<code>path</code>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.SFTPClient-class.html#_adjust_cwd" class="summary-sig-name"><code>_adjust_cwd</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>)</span></code>
-<br />
-Return an adjusted path if we're emulating a &quot;current working
-directory&quot; for the server.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.SFTPClient-class.html#_async_request" class="summary-sig-name"><code>_async_request</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>fileobj</span>,
- <span class=summary-sig-arg>t</span>,
- <span class="summary-sig-vararg">*arg</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.SFTPClient-class.html#_convert_status" class="summary-sig-name"><code>_convert_status</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>msg</span>)</span></code>
-<br />
-Raises EOFError or IOError on error status; otherwise does
-nothing.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.SFTPClient-class.html#_finish_responses" class="summary-sig-name"><code>_finish_responses</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>fileobj</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.SFTPClient-class.html#_read_response" class="summary-sig-name"><code>_read_response</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>waitfor</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.SFTPClient-class.html#_request" class="summary-sig-name"><code>_request</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>t</span>,
- <span class="summary-sig-vararg">*arg</span>)</span></code>
-</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from BaseSFTP</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.BaseSFTP-class.html#_log" class="summary-sig-name"><code>_log</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>level</span>,
- <span class=summary-sig-arg>msg</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.BaseSFTP-class.html#_read_all" class="summary-sig-name"><code>_read_all</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>n</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.BaseSFTP-class.html#_read_packet" class="summary-sig-name"><code>_read_packet</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.BaseSFTP-class.html#_send_packet" class="summary-sig-name"><code>_send_packet</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>t</span>,
- <span class=summary-sig-arg>packet</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.BaseSFTP-class.html#_send_server_version" class="summary-sig-name"><code>_send_server_version</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.BaseSFTP-class.html#_send_version" class="summary-sig-name"><code>_send_version</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.BaseSFTP-class.html#_write_all" class="summary-sig-name"><code>_write_all</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>out</span>)</span></code>
-</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__repr__() &lt;==&gt; repr(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__str__() &lt;==&gt; str(x)</td></tr>
-</table><br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.SFTPAttributes-class.html b/docs/private/paramiko.SFTPAttributes-class.html
deleted file mode 100644
index a98d008..0000000
--- a/docs/private/paramiko.SFTPAttributes-class.html
+++ /dev/null
@@ -1,385 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.SFTPAttributes</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Class&nbsp;SFTPAttributes
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/paramiko.SFTPAttributes-class.html">hide&nbsp;private</a>]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.SFTPAttributes-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type SFTPAttributes</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
- <b>SFTPAttributes</b>
-</pre><br />
-
-<hr/>
-
-Representation of the attributes of a file (or proxied file) for SFTP
-in client or server mode. It attemps to mirror the object returned by
-<code>os.stat</code> as closely as possible, so it may have the following
-fields, with the same meanings as those returned by an
-<code>os.stat</code> object:
-<ul>
- <li>
- st_size
- </li>
- <li>
- st_uid
- </li>
- <li>
- st_gid
- </li>
- <li>
- st_mode
- </li>
- <li>
- st_atime
- </li>
- <li>
- st_mtime
- </li>
-</ul>
-Because SFTP allows flags to have other arbitrary named attributes,
-these are stored in a dict named <code>attr</code>. Occasionally, the
-filename is also stored, in <code>filename</code>.
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPAttributes-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Create a new (empty) SFTPAttributes object.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__repr__"></a><span class="summary-sig"><span class="summary-sig-name">__repr__</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPAttributes-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-create a unix-style long description of the file (like ls -l)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> <a href="paramiko.SFTPAttributes-class.html"
- class="link"><code>SFTPAttributes</code></a>
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPAttributes-class.html#from_stat" class="summary-sig-name"><code>from_stat</code></a>(<span class=summary-sig-arg>cls</span>,
- <span class=summary-sig-arg>obj</span>,
- <span class=summary-sig-arg>filename</span>)</span></code>
-<br />
-Create an SFTPAttributes object from an existing <code>stat</code>
-object (an object returned by <code>os.stat</code>). <i>(Class method)</i>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_debug_str"></a><span class="summary-sig"><span class="summary-sig-name">_debug_str</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_from_msg"></a><span class="summary-sig"><span class="summary-sig-name">_from_msg</span>(<span class=summary-sig-arg>cls</span>,
- <span class=summary-sig-arg>msg</span>,
- <span class=summary-sig-arg>filename</span>)</span></code>
-<br />
- <i>(Class method)</i>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_pack"></a><span class="summary-sig"><span class="summary-sig-name">_pack</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>msg</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_rwx"></a><span class="summary-sig"><span class="summary-sig-name">_rwx</span>(<span class=summary-sig-arg>n</span>,
- <span class=summary-sig-arg>suid</span>,
- <span class=summary-sig-arg>sticky</span>)</span></code>
-<br />
- <i>(Static method)</i>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_unpack"></a><span class="summary-sig"><span class="summary-sig-name">_unpack</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>msg</span>)</span></code>
-</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-</table><br />
-
-
-<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Class Variable Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.SFTPAttributes-class.html#FLAG_AMTIME"><code>FLAG_AMTIME</code></a></b> = <span title="8">8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>long</code></font></td>
-<td><b><a href="paramiko.SFTPAttributes-class.html#FLAG_EXTENDED"><code>FLAG_EXTENDED</code></a></b> = <span title="2147483648L"><code>2147483648L </code>
-</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.SFTPAttributes-class.html#FLAG_PERMISSIONS"><code>FLAG_PERMISSIONS</code></a></b> = <span title="4">4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.SFTPAttributes-class.html#FLAG_SIZE"><code>FLAG_SIZE</code></a></b> = <span title="1">1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.SFTPAttributes-class.html#FLAG_UIDGID"><code>FLAG_UIDGID</code></a></b> = <span title="2">2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-</table><br />
-
-
-<!-- =========== START OF INSTANCE METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Instance Method Details</th></tr>
-</table>
-
-<a name="__init__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__init__</span>(<span class=sig-arg>self</span>)</span>
- <br /><i>(Constructor)</i>
- </h3>
- Create a new (empty) SFTPAttributes object. All fields will be
- empty.
- <dl><dt></dt><dd>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="__builtin__.object-class.html#__init__"><code>__builtin__.object.__init__</code></a></dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="__str__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__str__</span>(<span class=sig-arg>self</span>)</span>
- <br /><i>(Informal representation operator)</i>
- </h3>
- create a unix-style long description of the file (like ls -l)
- <dl><dt></dt><dd>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="__builtin__.object-class.html#__str__"><code>__builtin__.object.__str__</code></a></dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF CLASS METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Class Method Details</th></tr>
-</table>
-
-<a name="from_stat"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">from_stat</span>(<span class=sig-arg>cls</span>,
- <span class=sig-arg>obj</span>,
- <span class=sig-arg>filename</span>=<span class=sig-default>None</span>)</span>
- </h3>
- Create an SFTPAttributes object from an existing <code>stat</code>
- object (an object returned by <code>os.stat</code>).
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>obj</b></code> -
- an object returned by <code>os.stat</code> (or
- equivalent).
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=object)</i>
- <dd><code><b>filename</b></code> -
- the filename associated with this file.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- new <a href="paramiko.SFTPAttributes-class.html"
- class="link"><code>SFTPAttributes</code></a> object with the same
- attribute fields.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.SFTPAttributes-class.html"
- class="link"><code>SFTPAttributes</code></a>)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF CLASS VARIABLE DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Class Variable Details</th></tr>
-</table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="FLAG_AMTIME"></a>
-<h3>FLAG_AMTIME</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="8"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="FLAG_EXTENDED"></a>
-<h3>FLAG_EXTENDED</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>long</code>
-
- </dd>
-<span title="2147483648L"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-2147483648L </pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="FLAG_PERMISSIONS"></a>
-<h3>FLAG_PERMISSIONS</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="4"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="FLAG_SIZE"></a>
-<h3>FLAG_SIZE</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="1"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="FLAG_UIDGID"></a>
-<h3>FLAG_UIDGID</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="2"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.SFTPClient-class.html b/docs/private/paramiko.SFTPClient-class.html
deleted file mode 100644
index a6ed5c0..0000000
--- a/docs/private/paramiko.SFTPClient-class.html
+++ /dev/null
@@ -1,1091 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.SFTPClient</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Class&nbsp;SFTPClient
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/paramiko.SFTPClient-class.html">hide&nbsp;private</a>]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.SFTPClient-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type SFTPClient</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
- <a href="../private/paramiko.BaseSFTP-class.html"><code>BaseSFTP</code></a> --+
- |
- <b>SFTPClient</b>
-</pre><br />
-
-<dl><dt><b>Known Subclasses:</b></dt>
-<dd>
- <a href="paramiko.SFTP-class.html"><code>SFTP</code></a></dd></dl>
-
-<hr/>
-
-SFTP client object. <code>SFTPClient</code> is used to open an sftp
-session across an open ssh <a href="paramiko.Transport-class.html"
-class="link"><code>Transport</code></a> and do remote file
-operations.
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>sock</span>)</span></code>
-<br />
-Create an SFTP client from an existing <a
-href="paramiko.Channel-class.html"
-class="link"><code>Channel</code></a>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__del__"></a><span class="summary-sig"><span class="summary-sig-name">__del__</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#chdir" class="summary-sig-name"><code>chdir</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>)</span></code>
-<br />
-Change the &quot;current directory&quot; of this SFTP session.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#chmod" class="summary-sig-name"><code>chmod</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>,
- <span class=summary-sig-arg>mode</span>)</span></code>
-<br />
-Change the mode (permissions) of a file.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#chown" class="summary-sig-name"><code>chown</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>,
- <span class=summary-sig-arg>uid</span>,
- <span class=summary-sig-arg>gid</span>)</span></code>
-<br />
-Change the owner (<code>uid</code>) and group (<code>gid</code>) of a
-file.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#close" class="summary-sig-name"><code>close</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Close the SFTP session and its underlying channel.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> SFTPFile
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#file" class="summary-sig-name"><code>file</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>filename</span>,
- <span class=summary-sig-arg>mode</span>,
- <span class=summary-sig-arg>bufsize</span>)</span></code>
-<br />
-Open a file on the remote server.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> <a href="paramiko.SFTPClient-class.html"
- class="link"><code>SFTPClient</code></a>
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#from_transport" class="summary-sig-name"><code>from_transport</code></a>(<span class=summary-sig-arg>selfclass</span>,
- <span class=summary-sig-arg>t</span>)</span></code>
-<br />
-Create an SFTP client channel from an open <a
-href="paramiko.Transport-class.html"
-class="link"><code>Transport</code></a>. <i>(Class method)</i>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#get" class="summary-sig-name"><code>get</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>remotepath</span>,
- <span class=summary-sig-arg>localpath</span>)</span></code>
-<br />
-Copy a remote file (<code>remotepath</code>) from the SFTP server to
-the local host as <code>localpath</code>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#getcwd" class="summary-sig-name"><code>getcwd</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return the &quot;current working directory&quot; for this SFTP
-session, as emulated by paramiko.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> list of str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#listdir" class="summary-sig-name"><code>listdir</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>)</span></code>
-<br />
-Return a list containing the names of the entries in the given
-<code>path</code>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> list of <a href="paramiko.SFTPAttributes-class.html"
- class="link"><code>SFTPAttributes</code></a>
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#listdir_attr" class="summary-sig-name"><code>listdir_attr</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>)</span></code>
-<br />
-Return a list containing <a href="paramiko.SFTPAttributes-class.html"
-class="link"><code>SFTPAttributes</code></a> objects corresponding to
-files in the given <code>path</code>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> SFTPAttributes
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#lstat" class="summary-sig-name"><code>lstat</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>)</span></code>
-<br />
-Retrieve information about a file on the remote system, without
-following symbolic links (shortcuts).</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#mkdir" class="summary-sig-name"><code>mkdir</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>,
- <span class=summary-sig-arg>mode</span>)</span></code>
-<br />
-Create a folder (directory) named <code>path</code> with numeric mode
-<code>mode</code>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#normalize" class="summary-sig-name"><code>normalize</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>)</span></code>
-<br />
-Return the normalized path (on the server) of a given path.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> SFTPFile
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#file" class="summary-sig-name"><code>open</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>filename</span>,
- <span class=summary-sig-arg>mode</span>,
- <span class=summary-sig-arg>bufsize</span>)</span></code>
-<br />
-Open a file on the remote server.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#put" class="summary-sig-name"><code>put</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>localpath</span>,
- <span class=summary-sig-arg>remotepath</span>)</span></code>
-<br />
-Copy a local file (<code>localpath</code>) to the SFTP server as
-<code>remotepath</code>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#readlink" class="summary-sig-name"><code>readlink</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>)</span></code>
-<br />
-Return the target of a symbolic link (shortcut).</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#remove" class="summary-sig-name"><code>remove</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>)</span></code>
-<br />
-Remove the file at the given path.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#rename" class="summary-sig-name"><code>rename</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>oldpath</span>,
- <span class=summary-sig-arg>newpath</span>)</span></code>
-<br />
-Rename a file or folder from <code>oldpath</code> to
-<code>newpath</code>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#rmdir" class="summary-sig-name"><code>rmdir</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>)</span></code>
-<br />
-Remove the folder named <code>path</code>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> SFTPAttributes
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#stat" class="summary-sig-name"><code>stat</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>)</span></code>
-<br />
-Retrieve information about a file on the remote system.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#symlink" class="summary-sig-name"><code>symlink</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>source</span>,
- <span class=summary-sig-arg>dest</span>)</span></code>
-<br />
-Create a symbolic link (shortcut) of the <code>source</code> path at
-<code>destination</code>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#remove" class="summary-sig-name"><code>unlink</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>)</span></code>
-<br />
-Remove the file at the given path.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#utime" class="summary-sig-name"><code>utime</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>,
- <span class=summary-sig-arg>times</span>)</span></code>
-<br />
-Set the access and modified times of the file specified by
-<code>path</code>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.SFTPClient-class.html#_adjust_cwd" class="summary-sig-name"><code>_adjust_cwd</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>)</span></code>
-<br />
-Return an adjusted path if we're emulating a &quot;current working
-directory&quot; for the server.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_async_request"></a><span class="summary-sig"><span class="summary-sig-name">_async_request</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>fileobj</span>,
- <span class=summary-sig-arg>t</span>,
- <span class="summary-sig-vararg">*arg</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.SFTPClient-class.html#_convert_status" class="summary-sig-name"><code>_convert_status</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>msg</span>)</span></code>
-<br />
-Raises EOFError or IOError on error status; otherwise does
-nothing.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_finish_responses"></a><span class="summary-sig"><span class="summary-sig-name">_finish_responses</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>fileobj</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_read_response"></a><span class="summary-sig"><span class="summary-sig-name">_read_response</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>waitfor</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_request"></a><span class="summary-sig"><span class="summary-sig-name">_request</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>t</span>,
- <span class="summary-sig-vararg">*arg</span>)</span></code>
-</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from BaseSFTP</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.BaseSFTP-class.html#_log" class="summary-sig-name"><code>_log</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>level</span>,
- <span class=summary-sig-arg>msg</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.BaseSFTP-class.html#_read_all" class="summary-sig-name"><code>_read_all</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>n</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.BaseSFTP-class.html#_read_packet" class="summary-sig-name"><code>_read_packet</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.BaseSFTP-class.html#_send_packet" class="summary-sig-name"><code>_send_packet</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>t</span>,
- <span class=summary-sig-arg>packet</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.BaseSFTP-class.html#_send_server_version" class="summary-sig-name"><code>_send_server_version</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.BaseSFTP-class.html#_send_version" class="summary-sig-name"><code>_send_version</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.BaseSFTP-class.html#_write_all" class="summary-sig-name"><code>_write_all</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>out</span>)</span></code>
-</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__repr__() &lt;==&gt; repr(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__str__() &lt;==&gt; str(x)</td></tr>
-</table><br />
-
-
-<!-- =========== START OF INSTANCE METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Instance Method Details</th></tr>
-</table>
-
-<a name="__init__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__init__</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>sock</span>)</span>
- <br /><i>(Constructor)</i>
- </h3>
- <p>Create an SFTP client from an existing <a
- href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a>. The channel should already have
- requested the <code>&quot;sftp&quot;</code> subsystem.</p>
- An alternate way to create an SFTP client context is by using <a
- href="paramiko.SFTPClient-class.html#from_transport"
- class="link"><code>from_transport</code></a>.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>sock</b></code> -
- an open <a href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a> using the
- <code>&quot;sftp&quot;</code> subsystem.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a>)</i>
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="../private/paramiko.BaseSFTP-class.html#__init__"><code>paramiko.BaseSFTP.__init__</code></a></dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="chdir"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">chdir</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>path</span>)</span>
- </h3>
- Change the &quot;current directory&quot; 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.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>path</b></code> -
- new current working directory
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>IOError</b></code> -
- if the requested path doesn't exist on the server
- </dl>
-<p><b>Since:</b> 1.4
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="chmod"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">chmod</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>path</span>,
- <span class=sig-arg>mode</span>)</span>
- </h3>
- Change the mode (permissions) of a file. The permissions are
- unix-style and identical to those used by python's
- <code>os.chmod</code> function.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>path</b></code> -
- path of the file to change the permissions of.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- <dd><code><b>mode</b></code> -
- new permissions.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="chown"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">chown</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>path</span>,
- <span class=sig-arg>uid</span>,
- <span class=sig-arg>gid</span>)</span>
- </h3>
- Change the owner (<code>uid</code>) and group (<code>gid</code>) of
- a file. As with python's <code>os.chown</code> function, you must pass
- both arguments, so if you only want to change one, use <a
- href="paramiko.SFTPClient-class.html#stat"
- class="link"><code>stat</code></a> first to retrieve the current owner
- and group.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>path</b></code> -
- path of the file to change the owner and group of.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- <dd><code><b>uid</b></code> -
- new owner's uid
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- <dd><code><b>gid</b></code> -
- new group id
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="close"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">close</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Close the SFTP session and its underlying channel.
- <dl><dt></dt><dd>
-<p><b>Since:</b> 1.4
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="file"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">file</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>filename</span>,
- <span class=sig-arg>mode</span>=<span class=sig-default>'r'</span>,
- <span class=sig-arg>bufsize</span>=<span class=sig-default>-1</span>)</span>
- </h3>
- <p>Open a file on the remote server. The arguments are the same as for
- python's built-in <code>file</code> (aka <code>open</code>). A
- file-like object is returned, which closely mimics the behavior of a
- normal python file object.</p>
- <p>The mode indicates how the file is to be opened: <code>'r'</code>
- for reading, <code>'w'</code> for writing (truncating an existing
- file), <code>'a'</code> for appending, <code>'r+'</code> for
- reading/writing, <code>'w+'</code> for reading/writing (truncating an
- existing file), <code>'a+'</code> for reading/appending. The python
- <code>'b'</code> flag is ignored, since SSH treats all files as binary.
- The <code>'U'</code> flag is supported in a compatible way.</p>
- <p>Since 1.5.2, an <code>'x'</code> 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 <code>O_EXCL</code> flag in posix.</p>
- The file will be buffered in standard python style by default, but
- can be altered with the <code>bufsize</code> parameter. <code>0</code>
- turns off buffering, <code>1</code> uses line buffering, and any number
- greater than 1 (<code>&gt;1</code>) uses that specific buffer size.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>filename</b></code> -
- name of the file to open.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- <dd><code><b>mode</b></code> -
- mode (python-style) to open in.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- <dd><code><b>bufsize</b></code> -
- desired buffering (-1 = default buffer size)
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- a file object representing the open file.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=SFTPFile)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>IOError</b></code> -
- if the file could not be opened.
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="get"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>remotepath</span>,
- <span class=sig-arg>localpath</span>)</span>
- </h3>
- Copy a remote file (<code>remotepath</code>) from the SFTP server to
- the local host as <code>localpath</code>. Any exception raised by
- operations will be passed through. This method is primarily provided as
- a convenience.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>remotepath</b></code> -
- the remote file to copy
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>localpath</b></code> -
- the destination path on the local host
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
-<p><b>Since:</b> 1.4
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="getcwd"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">getcwd</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Return the &quot;current working directory&quot; for this SFTP
- session, as emulated by paramiko. If no directory has been set with <a
- href="paramiko.SFTPClient-class.html#chdir"
- class="link"><code>chdir</code></a>, this method will return
- <code>None</code>.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- the current working directory on the server, or
- <code>None</code>
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
-<p><b>Since:</b> 1.4
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="listdir"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">listdir</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>path</span>=<span class=sig-default>'.'</span>)</span>
- </h3>
- Return a list containing the names of the entries in the given
- <code>path</code>. The list is in arbitrary order. It does not include
- the special entries <code>'.'</code> and <code>'..'</code> even if they
- are present in the folder. This method is meant to mirror
- <code>os.listdir</code> as closely as possible. For a list of full <a
- href="paramiko.SFTPAttributes-class.html"
- class="link"><code>SFTPAttributes</code></a> objects, see <a
- href="paramiko.SFTPClient-class.html#listdir_attr"
- class="link"><code>listdir_attr</code></a>.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>path</b></code> -
- path to list (defaults to <code>'.'</code>)
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- list of filenames
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=list of str)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="listdir_attr"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">listdir_attr</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>path</span>=<span class=sig-default>'.'</span>)</span>
- </h3>
- Return a list containing <a
- href="paramiko.SFTPAttributes-class.html"
- class="link"><code>SFTPAttributes</code></a> objects corresponding to
- files in the given <code>path</code>. The list is in arbitrary order.
- It does not include the special entries <code>'.'</code> and
- <code>'..'</code> even if they are present in the folder.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>path</b></code> -
- path to list (defaults to <code>'.'</code>)
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- list of attributes
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=list of <a href="paramiko.SFTPAttributes-class.html"
- class="link"><code>SFTPAttributes</code></a>)</i>
- </dd>
- </dl>
-<p><b>Since:</b> 1.2
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="lstat"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">lstat</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>path</span>)</span>
- </h3>
- Retrieve information about a file on the remote system, without
- following symbolic links (shortcuts). This otherwise behaves exactly
- the same as <a href="paramiko.SFTPClient-class.html#stat"
- class="link"><code>stat</code></a>.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>path</b></code> -
- the filename to stat.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- an object containing attributes about the given file.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=SFTPAttributes)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="mkdir"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">mkdir</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>path</span>,
- <span class=sig-arg>mode</span>=<span class=sig-default>511</span>)</span>
- </h3>
- Create a folder (directory) named <code>path</code> with numeric
- mode <code>mode</code>. The default mode is 0777 (octal). On some
- systems, mode is ignored. Where it is used, the current umask value is
- first masked out.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>path</b></code> -
- name of the folder to create.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- <dd><code><b>mode</b></code> -
- permissions (posix-style) for the newly-created folder.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="normalize"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">normalize</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>path</span>)</span>
- </h3>
- Return the normalized path (on the server) of a given path. This can
- be used to quickly resolve symbolic links or determine what the server
- is considering to be the &quot;current folder&quot; (by passing
- <code>'.'</code> as <code>path</code>).
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>path</b></code> -
- path to be normalized.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- normalized form of the given path.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>IOError</b></code> -
- if the path can't be resolved on the server
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="file"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">open</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>filename</span>,
- <span class=sig-arg>mode</span>=<span class=sig-default>'r'</span>,
- <span class=sig-arg>bufsize</span>=<span class=sig-default>-1</span>)</span>
- </h3>
- <p>Open a file on the remote server. The arguments are the same as for
- python's built-in <code>file</code> (aka <code>open</code>). A
- file-like object is returned, which closely mimics the behavior of a
- normal python file object.</p>
- <p>The mode indicates how the file is to be opened: <code>'r'</code>
- for reading, <code>'w'</code> for writing (truncating an existing
- file), <code>'a'</code> for appending, <code>'r+'</code> for
- reading/writing, <code>'w+'</code> for reading/writing (truncating an
- existing file), <code>'a+'</code> for reading/appending. The python
- <code>'b'</code> flag is ignored, since SSH treats all files as binary.
- The <code>'U'</code> flag is supported in a compatible way.</p>
- <p>Since 1.5.2, an <code>'x'</code> 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 <code>O_EXCL</code> flag in posix.</p>
- The file will be buffered in standard python style by default, but
- can be altered with the <code>bufsize</code> parameter. <code>0</code>
- turns off buffering, <code>1</code> uses line buffering, and any number
- greater than 1 (<code>&gt;1</code>) uses that specific buffer size.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>filename</b></code> -
- name of the file to open.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- <dd><code><b>mode</b></code> -
- mode (python-style) to open in.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- <dd><code><b>bufsize</b></code> -
- desired buffering (-1 = default buffer size)
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- a file object representing the open file.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=SFTPFile)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>IOError</b></code> -
- if the file could not be opened.
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="put"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">put</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>localpath</span>,
- <span class=sig-arg>remotepath</span>)</span>
- </h3>
- <p>Copy a local file (<code>localpath</code>) to the SFTP server as
- <code>remotepath</code>. Any exception raised by operations will be
- passed through. This method is primarily provided as a convenience.</p>
- The SFTP operations use pipelining for speed.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>localpath</b></code> -
- the local file to copy
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>remotepath</b></code> -
- the destination path on the SFTP server
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
-<p><b>Since:</b> 1.4
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="readlink"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">readlink</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>path</span>)</span>
- </h3>
- Return the target of a symbolic link (shortcut). You can use <a
- href="paramiko.SFTPClient-class.html#symlink"
- class="link"><code>symlink</code></a> to create these. The result may
- be either an absolute or relative pathname.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>path</b></code> -
- path of the symbolic link file.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- target path.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="remove"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">remove</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>path</span>)</span>
- </h3>
- Remove the file at the given path.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>path</b></code> -
- path (absolute or relative) of the file to remove.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>IOError</b></code> -
- if the path refers to a folder (directory). Use <a
- href="paramiko.SFTPClient-class.html#rmdir"
- class="link"><code>rmdir</code></a> to remove a folder.
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="rename"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">rename</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>oldpath</span>,
- <span class=sig-arg>newpath</span>)</span>
- </h3>
- Rename a file or folder from <code>oldpath</code> to
- <code>newpath</code>.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>oldpath</b></code> -
- existing name of the file or folder.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- <dd><code><b>newpath</b></code> -
- new name for the file or folder.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>IOError</b></code> -
- if <code>newpath</code> is a folder, or something else goes
- wrong.
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="rmdir"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">rmdir</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>path</span>)</span>
- </h3>
- Remove the folder named <code>path</code>.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>path</b></code> -
- name of the folder to remove.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="stat"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">stat</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>path</span>)</span>
- </h3>
- <p>Retrieve information about a file on the remote system. The return
- value is an object whose attributes correspond to the attributes of
- python's <code>stat</code> structure as returned by
- <code>os.stat</code>, except that it contains fewer fields. An SFTP
- server may return as much or as little info as it wants, so the results
- may vary from server to server.</p>
- <p>Unlike a python <code>stat</code> object, the result may not be
- accessed as a tuple. This is mostly due to the author's slack
- factor.</p>
- The fields supported are: <code>st_mode</code>,
- <code>st_size</code>, <code>st_uid</code>, <code>st_gid</code>,
- <code>st_atime</code>, and <code>st_mtime</code>.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>path</b></code> -
- the filename to stat.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- an object containing attributes about the given file.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=SFTPAttributes)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="symlink"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">symlink</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>source</span>,
- <span class=sig-arg>dest</span>)</span>
- </h3>
- Create a symbolic link (shortcut) of the <code>source</code> path at
- <code>destination</code>.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>source</b></code> -
- path of the original file.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- <dd><code><b>dest</b></code> -
- path of the newly created symlink.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="remove"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">unlink</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>path</span>)</span>
- </h3>
- Remove the file at the given path.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>path</b></code> -
- path (absolute or relative) of the file to remove.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>IOError</b></code> -
- if the path refers to a folder (directory). Use <a
- href="paramiko.SFTPClient-class.html#rmdir"
- class="link"><code>rmdir</code></a> to remove a folder.
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="utime"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">utime</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>path</span>,
- <span class=sig-arg>times</span>)</span>
- </h3>
- Set the access and modified times of the file specified by
- <code>path</code>. If <code>times</code> is <code>None</code>, then the
- file's access and modified times are set to the current time.
- Otherwise, <code>times</code> must be a 2-tuple of numbers, of the form
- <code>(atime, mtime)</code>, which is used to set the access and
- modified times, respectively. This bizarre API is mimicked from python
- for the sake of consistency -- I apologize.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>path</b></code> -
- path of the file to modify.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- <dd><code><b>times</b></code> -
- <code>None</code> or a tuple of (access time, modified time)
- in standard internet epoch time (seconds since 01 January 1970
- GMT).
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=tuple of int)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="_adjust_cwd"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">_adjust_cwd</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>path</span>)</span>
- </h3>
- Return an adjusted path if we're emulating a &quot;current working
- directory&quot; for the server.
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-
-<a name="_convert_status"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">_convert_status</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>msg</span>)</span>
- </h3>
- Raises EOFError or IOError on error status; otherwise does
- nothing.
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF CLASS METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Class Method Details</th></tr>
-</table>
-
-<a name="from_transport"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">from_transport</span>(<span class=sig-arg>selfclass</span>,
- <span class=sig-arg>t</span>)</span>
- </h3>
- Create an SFTP client channel from an open <a
- href="paramiko.Transport-class.html"
- class="link"><code>Transport</code></a>.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>t</b></code> -
- an open <a href="paramiko.Transport-class.html"
- class="link"><code>Transport</code></a> which is already
- authenticated.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.Transport-class.html"
- class="link"><code>Transport</code></a>)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- a new <a href="paramiko.SFTPClient-class.html"
- class="link"><code>SFTPClient</code></a> object, referring to an
- sftp session (channel) across the transport.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.SFTPClient-class.html"
- class="link"><code>SFTPClient</code></a>)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.SFTPError-class.html b/docs/private/paramiko.SFTPError-class.html
deleted file mode 100644
index 2b7aa97..0000000
--- a/docs/private/paramiko.SFTPError-class.html
+++ /dev/null
@@ -1,85 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.SFTPError</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Class&nbsp;SFTPError
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/paramiko.SFTPError-class.html">hide&nbsp;private</a>]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.SFTPError-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Class SFTPError</h2>
-
-<pre class="base-tree">
-<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+
- |
- <b>SFTPError</b>
-</pre><br />
-
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-</td></tr>
-</table><br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.SFTPFile-class.html b/docs/private/paramiko.SFTPFile-class.html
deleted file mode 100644
index 0c59d5f..0000000
--- a/docs/private/paramiko.SFTPFile-class.html
+++ /dev/null
@@ -1,667 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.SFTPFile</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Class&nbsp;SFTPFile
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/paramiko.SFTPFile-class.html">hide&nbsp;private</a>]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.SFTPFile-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type SFTPFile</h2>
-
-<pre class="base-tree">
- <a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
-<a href="paramiko.BufferedFile-class.html"><code>BufferedFile</code></a> --+
- |
- <b>SFTPFile</b>
-</pre><br />
-
-<hr/>
-
-Proxy object for a file on the remote server, in client mode SFTP.
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__init__"></a><span class="summary-sig"><span class="summary-sig-name">__init__</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>sftp</span>,
- <span class=summary-sig-arg>handle</span>,
- <span class=summary-sig-arg>mode</span>,
- <span class=summary-sig-arg>bufsize</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__del__"></a><span class="summary-sig"><span class="summary-sig-name">__del__</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPFile-class.html#check" class="summary-sig-name"><code>check</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>hash_algorithm</span>,
- <span class=summary-sig-arg>offset</span>,
- <span class=summary-sig-arg>length</span>,
- <span class=summary-sig-arg>block_size</span>)</span></code>
-<br />
-Ask the server for a hash of a section of this file.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPFile-class.html#close" class="summary-sig-name"><code>close</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Close the file.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> float
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPFile-class.html#gettimeout" class="summary-sig-name"><code>gettimeout</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Returns the timeout in seconds (as a float) associated with the socket
-or ssh <a href="paramiko.Channel-class.html"
-class="link"><code>Channel</code></a> used for this file.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPFile-class.html#prefetch" class="summary-sig-name"><code>prefetch</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Pre-fetch the remaining contents of this file in anticipation of
-future <a href="paramiko.BufferedFile-class.html#read"
-class="link"><code>read</code></a> calls.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPFile-class.html#seek" class="summary-sig-name"><code>seek</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>offset</span>,
- <span class=summary-sig-arg>whence</span>)</span></code>
-<br />
-Set the file's current position, like stdio's <code>fseek</code>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPFile-class.html#set_pipelined" class="summary-sig-name"><code>set_pipelined</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>pipelined</span>)</span></code>
-<br />
-Turn on/off the pipelining of write operations to this file.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPFile-class.html#setblocking" class="summary-sig-name"><code>setblocking</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>blocking</span>)</span></code>
-<br />
-Set blocking or non-blocking mode on the underiying socket or ssh <a
-href="paramiko.Channel-class.html"
-class="link"><code>Channel</code></a>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPFile-class.html#settimeout" class="summary-sig-name"><code>settimeout</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>timeout</span>)</span></code>
-<br />
-Set a timeout on read/write operations on the underlying socket or ssh
-<a href="paramiko.Channel-class.html"
-class="link"><code>Channel</code></a>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> SFTPAttributes
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPFile-class.html#stat" class="summary-sig-name"><code>stat</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Retrieve information about this file from the remote system.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_async_response"></a><span class="summary-sig"><span class="summary-sig-name">_async_response</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>t</span>,
- <span class=summary-sig-arg>msg</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.SFTPFile-class.html#_check_exception" class="summary-sig-name"><code>_check_exception</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-if there's a saved exception, raise &amp; clear it</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.SFTPFile-class.html#_get_size" class="summary-sig-name"><code>_get_size</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-<i>(subclass override)</i> Return the size of the file.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_prefetch"></a><span class="summary-sig"><span class="summary-sig-name">_prefetch</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.SFTPFile-class.html#_read" class="summary-sig-name"><code>_read</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>size</span>)</span></code>
-<br />
-<i>(subclass override)</i> Read data from the stream.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_read_prefetch"></a><span class="summary-sig"><span class="summary-sig-name">_read_prefetch</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>size</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.SFTPFile-class.html#_write" class="summary-sig-name"><code>_write</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>data</span>)</span></code>
-<br />
-<i>(subclass override)</i> Write data into the stream.</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from BufferedFile</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> iterator
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#__iter__" class="summary-sig-name"><code>__iter__</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Returns an iterator that can be used to iterate over the lines in this
-file.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#flush" class="summary-sig-name"><code>flush</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Write out any data in the write buffer.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#next" class="summary-sig-name"><code>next</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Returns the next line from the input, or raises
-<code>StopIteration</code> when EOF is hit.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#read" class="summary-sig-name"><code>read</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>size</span>)</span></code>
-<br />
-Read at most <code>size</code> bytes from the file (less if we hit the
-end of the file first).</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#readline" class="summary-sig-name"><code>readline</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>size</span>)</span></code>
-<br />
-Read one entire line from the file.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> list
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#readlines" class="summary-sig-name"><code>readlines</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>sizehint</span>)</span></code>
-<br />
-Read all remaining lines using <a
-href="paramiko.BufferedFile-class.html#readline"
-class="link"><code>readline</code></a> and return them as a list.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> int
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#tell" class="summary-sig-name"><code>tell</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return the file's current position.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#write" class="summary-sig-name"><code>write</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>data</span>)</span></code>
-<br />
-Write data to the file.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#writelines" class="summary-sig-name"><code>writelines</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>sequence</span>)</span></code>
-<br />
-Write a sequence of strings to the file.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> iterator
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#xreadlines" class="summary-sig-name"><code>xreadlines</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Identical to <code>iter(f)</code>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.BufferedFile-class.html#_record_newline" class="summary-sig-name"><code>_record_newline</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>newline</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.BufferedFile-class.html#_set_mode" class="summary-sig-name"><code>_set_mode</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>mode</span>,
- <span class=summary-sig-arg>bufsize</span>)</span></code>
-<br />
-Subclasses call this method to initialize the BufferedFile.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.BufferedFile-class.html#_write_all" class="summary-sig-name"><code>_write_all</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>data</span>)</span></code>
-</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__repr__() &lt;==&gt; repr(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__str__() &lt;==&gt; str(x)</td></tr>
-</table><br />
-
-
-<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Class Variable Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.SFTPFile-class.html#MAX_REQUEST_SIZE"><code>MAX_REQUEST_SIZE</code></a></b> = <span title="32768">32768&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from BufferedFile</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.BufferedFile-class.html#SEEK_CUR"><code>SEEK_CUR</code></a></b> = <span title="1">1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.BufferedFile-class.html#SEEK_END"><code>SEEK_END</code></a></b> = <span title="2">2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.BufferedFile-class.html#SEEK_SET"><code>SEEK_SET</code></a></b> = <span title="0">0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.BufferedFile-class.html#_DEFAULT_BUFSIZE"><code>_DEFAULT_BUFSIZE</code></a></b> = <span title="8192">8192&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-</table><br />
-
-
-<!-- =========== START OF METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Method Details</th></tr>
-</table>
-
-<a name="check"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">check</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>hash_algorithm</span>,
- <span class=sig-arg>offset</span>=<span class=sig-default>0</span>,
- <span class=sig-arg>length</span>=<span class=sig-default>0</span>,
- <span class=sig-arg>block_size</span>=<span class=sig-default>0</span>)</span>
- </h3>
- <p>Ask the server for a hash of a section of this file. This can be
- used to verify a successful upload or download, or for various
- rsync-like operations.</p>
- <p>The file is hashed from <code>offset</code>, for <code>length</code>
- bytes. If <code>length</code> is 0, the remainder of the file is
- hashed. Thus, if both <code>offset</code> and <code>length</code> are
- zero, the entire file is hashed.</p>
- <p>Normally, <code>block_size</code> will be 0 (the default), and this
- method will return a byte string representing the requested hash (for
- example, a string of length 16 for MD5, or 20 for SHA-1). If a non-zero
- <code>block_size</code> is given, each chunk of the file (from
- <code>offset</code> to <code>offset + length</code>) of
- <code>block_size</code> bytes is computed as a separate hash. The hash
- results are all concatenated and returned as a single string.</p>
- For example, <code>check('sha1', 0, 1024, 512)</code> will return a
- string of length 40. The first 20 bytes will be the SHA-1 of the first
- 512 bytes of the file, and the last 20 bytes will be the SHA-1 of the
- next 512 bytes.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>hash_algorithm</b></code> -
- the name of the hash algorithm to use (normally
- <code>&quot;sha1&quot;</code> or
- <code>&quot;md5&quot;</code>)
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>offset</b></code> -
- offset into the file to begin hashing (0 means to start from
- the beginning)
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int or long)</i>
- <dd><code><b>length</b></code> -
- number of bytes to hash (0 means continue to the end of the
- file)
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int or long)</i>
- <dd><code><b>block_size</b></code> -
- number of bytes to hash per result (must not be less than 256;
- 0 means to compute only one hash of the entire segment)
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- string of bytes representing the hash of each block,
- concatenated together
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>IOError</b></code> -
- if the server doesn't support the &quot;check-file&quot;
- extension, or possibly doesn't support the hash algorithm
- requested
- </dl>
-<p><b>Note:</b> Many (most?) servers don't support this extension yet.
-</p>
-
-<p><b>Since:</b> 1.4
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="close"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">close</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>_async</span>=<span class=sig-default>False</span>)</span>
- </h3>
- Close the file. Future read and write operations will fail.
- <dl><dt></dt><dd>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="paramiko.BufferedFile-class.html#close"><code>paramiko.BufferedFile.close</code></a> <i>(inherited documentation)</i>
-</dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="gettimeout"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">gettimeout</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Returns the timeout in seconds (as a float) associated with the
- socket or ssh <a href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a> used for this file.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- float
- </dd>
- </dl>
-<p><b>See Also:</b> <a href="paramiko.Channel-class.html#gettimeout"
-class="link"><code>Channel.gettimeout</code></a>
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="prefetch"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">prefetch</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Pre-fetch the remaining contents of this file in anticipation of
- future <a href="paramiko.BufferedFile-class.html#read"
- class="link"><code>read</code></a> calls. If reading the entire file,
- pre-fetching can dramatically improve the download speed by avoiding
- roundtrip latency. The file's contents are incrementally buffered in a
- background thread.
- <dl><dt></dt><dd>
-<p><b>Since:</b> 1.5.1
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="seek"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">seek</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>offset</span>,
- <span class=sig-arg>whence</span>=<span class=sig-default>0</span>)</span>
- </h3>
- Set the file's current position, like stdio's <code>fseek</code>.
- Not all file objects support seeking.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>offset</b></code> -
- position to move to within the file, relative to
- <code>whence</code>.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- <dd><code><b>whence</b></code> -
- type of movement: 0 = absolute; 1 = relative to the current
- position; 2 = relative to the end of the file.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>IOError</b></code> -
- if the file doesn't support random access.
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="paramiko.BufferedFile-class.html#seek"><code>paramiko.BufferedFile.seek</code></a> <i>(inherited documentation)</i>
-</dd>
- </dl>
-<p><b>Note:</b> If a file is opened in append mode (<code>'a'</code> or
-<code>'a+'</code>), any seek operations will be undone at the next write
-(as the file position will move back to the end of the file).
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="set_pipelined"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">set_pipelined</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>pipelined</span>=<span class=sig-default>True</span>)</span>
- </h3>
- <p>Turn on/off the pipelining of write operations to this file. When
- pipelining is on, paramiko won't wait for the server response after
- each write operation. Instead, they're collected as they come in. At
- the first non-write operation (including <a
- href="paramiko.SFTPFile-class.html#close"
- class="link"><code>close</code></a>), all remaining server responses
- are collected. This means that if there was an error with one of your
- later writes, an exception might be thrown from within <a
- href="paramiko.SFTPFile-class.html#close"
- class="link"><code>close</code></a> instead of <a
- href="paramiko.BufferedFile-class.html#write"
- class="link"><code>write</code></a>.</p>
- By default, files are <i>not</i> pipelined.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>pipelined</b></code> -
- <code>True</code> if pipelining should be turned on for this
- file; <code>False</code> otherwise
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=bool)</i>
- </dd>
- </dl>
-<p><b>Since:</b> 1.5
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="setblocking"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">setblocking</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>blocking</span>)</span>
- </h3>
- Set blocking or non-blocking mode on the underiying socket or ssh <a
- href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a>.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>blocking</b></code> -
- 0 to set non-blocking mode; non-0 to set blocking mode.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
-<p><b>See Also:</b> <a href="paramiko.Channel-class.html#setblocking"
-class="link"><code>Channel.setblocking</code></a>
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="settimeout"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">settimeout</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>timeout</span>)</span>
- </h3>
- Set a timeout on read/write operations on the underlying socket or
- ssh <a href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a>.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>timeout</b></code> -
- seconds to wait for a pending read/write operation before
- raising <code>socket.timeout</code>, or <code>None</code> for no
- timeout
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=float)</i>
- </dd>
- </dl>
-<p><b>See Also:</b> <a href="paramiko.Channel-class.html#settimeout"
-class="link"><code>Channel.settimeout</code></a>
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="stat"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">stat</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Retrieve information about this file from the remote system. This is
- exactly like <a href="paramiko.SFTP-class.html#stat"
- class="link"><code>SFTP.stat</code></a>, except that it operates on an
- already-open file.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- an object containing attributes about this file.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=SFTPAttributes)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="_check_exception"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">_check_exception</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- if there's a saved exception, raise &amp; clear it
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-
-<a name="_get_size"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">_get_size</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- <i>(subclass override)</i> Return the size of the file. This is
- called from within <a
- href="../private/paramiko.BufferedFile-class.html#_set_mode"
- class="link"><code>_set_mode</code></a> if the file is opened in append
- mode, so the file position can be tracked and <a
- href="paramiko.BufferedFile-class.html#seek"
- class="link"><code>seek</code></a> and <a
- href="paramiko.BufferedFile-class.html#tell"
- class="link"><code>tell</code></a> will work correctly. If the file is
- a stream that can't be randomly accessed, you don't need to override
- this method,
- <dl><dt></dt><dd>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="../private/paramiko.BufferedFile-class.html#_get_size"><code>paramiko.BufferedFile._get_size</code></a> <i>(inherited documentation)</i>
-</dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="_read"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">_read</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>size</span>)</span>
- </h3>
- <i>(subclass override)</i> Read data from the stream. Return
- <code>None</code> or raise <code>EOFError</code> to indicate EOF.
- <dl><dt></dt><dd>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="../private/paramiko.BufferedFile-class.html#_read"><code>paramiko.BufferedFile._read</code></a> <i>(inherited documentation)</i>
-</dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="_write"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">_write</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>data</span>)</span>
- </h3>
- <i>(subclass override)</i> Write data into the stream.
- <dl><dt></dt><dd>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="../private/paramiko.BufferedFile-class.html#_write"><code>paramiko.BufferedFile._write</code></a> <i>(inherited documentation)</i>
-</dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF CLASS VARIABLE DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Class Variable Details</th></tr>
-</table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="MAX_REQUEST_SIZE"></a>
-<h3>MAX_REQUEST_SIZE</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="32768"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-32768&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.SFTPHandle-class.html b/docs/private/paramiko.SFTPHandle-class.html
deleted file mode 100644
index 958dbba..0000000
--- a/docs/private/paramiko.SFTPHandle-class.html
+++ /dev/null
@@ -1,364 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.SFTPHandle</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Class&nbsp;SFTPHandle
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/paramiko.SFTPHandle-class.html">hide&nbsp;private</a>]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.SFTPHandle-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type SFTPHandle</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
- <b>SFTPHandle</b>
-</pre><br />
-
-<hr/>
-
-<p>Abstract object representing a handle to an open file (or folder) in
-an SFTP server implementation. Each handle has a string representation
-used by the client to refer to the underlying file.</p>
-Server implementations can (and should) subclass SFTPHandle to
-implement features of a file handle, like <a
-href="paramiko.SFTPHandle-class.html#stat"
-class="link"><code>stat</code></a> or <a
-href="paramiko.SFTPHandle-class.html#chattr"
-class="link"><code>chattr</code></a>.
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__init__"></a><span class="summary-sig"><span class="summary-sig-name">__init__</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> int
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPHandle-class.html#chattr" class="summary-sig-name"><code>chattr</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>attr</span>)</span></code>
-<br />
-Change the attributes of this file.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPHandle-class.html#close" class="summary-sig-name"><code>close</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-When a client closes a file, this method is called on the handle.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPHandle-class.html#read" class="summary-sig-name"><code>read</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>offset</span>,
- <span class=summary-sig-arg>length</span>)</span></code>
-<br />
-Read up to <code>length</code> bytes from this file, starting at
-position <code>offset</code>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> <a href="paramiko.SFTPAttributes-class.html"
- class="link"><code>SFTPAttributes</code></a> <i>or error
- code</i>
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPHandle-class.html#stat" class="summary-sig-name"><code>stat</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return an <a href="paramiko.SFTPAttributes-class.html"
-class="link"><code>SFTPAttributes</code></a> object referring to this
-open file, or an error code.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPHandle-class.html#write" class="summary-sig-name"><code>write</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>offset</span>,
- <span class=summary-sig-arg>data</span>)</span></code>
-<br />
-Write <code>data</code> into this file at position
-<code>offset</code>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_get_name"></a><span class="summary-sig"><span class="summary-sig-name">_get_name</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.SFTPHandle-class.html#_get_next_files" class="summary-sig-name"><code>_get_next_files</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Used by the SFTP server code to retreive a cached directory
-listing.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.SFTPHandle-class.html#_set_files" class="summary-sig-name"><code>_set_files</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>files</span>)</span></code>
-<br />
-Used by the SFTP server code to cache a directory listing.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_set_name"></a><span class="summary-sig"><span class="summary-sig-name">_set_name</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>name</span>)</span></code>
-</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__repr__() &lt;==&gt; repr(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__str__() &lt;==&gt; str(x)</td></tr>
-</table><br />
-
-
-<!-- =========== START OF METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Method Details</th></tr>
-</table>
-
-<a name="chattr"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">chattr</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>attr</span>)</span>
- </h3>
- Change the attributes of this file. The <code>attr</code> object
- will contain only those fields provided by the client in its request,
- so you should check for the presence of fields before using them.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>attr</b></code> -
- the attributes to change on this file.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.SFTPAttributes-class.html"
- class="link"><code>SFTPAttributes</code></a>)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- an error code like <a
- href="../private/paramiko-module.html#SFTP_OK"
- class="link"><code>SFTP_OK</code></a>.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="close"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">close</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- <p>When a client closes a file, this method is called on the handle.
- Normally you would use this method to close the underlying OS level
- file object(s).</p>
- The default implementation checks for attributes on
- <code>self</code> named <code>readfile</code> and/or
- <code>writefile</code>, and if either or both are present, their
- <code>close()</code> methods are called. This means that if you are
- using the default implementations of <a
- href="paramiko.SFTPHandle-class.html#read"
- class="link"><code>read</code></a> and <a
- href="paramiko.SFTPHandle-class.html#write"
- class="link"><code>write</code></a>, this method's default
- implementation should be fine also.
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-
-<a name="read"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">read</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>offset</span>,
- <span class=sig-arg>length</span>)</span>
- </h3>
- <p>Read up to <code>length</code> bytes from this file, starting at
- position <code>offset</code>. The offset may be a python long, since
- SFTP allows it to be 64 bits.</p>
- <p>If the end of the file has been reached, this method may return an
- empty string to signify EOF, or it may also return <a
- href="../private/paramiko-module.html#SFTP_EOF"
- class="link"><code>SFTP_EOF</code></a>.</p>
- The default implementation checks for an attribute on
- <code>self</code> named <code>readfile</code>, and if present, performs
- the read operation on the python file-like object found there. (This is
- meant as a time saver for the common case where you are wrapping a
- python file object.)
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>offset</b></code> -
- position in the file to start reading from.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int or long)</i>
- <dd><code><b>length</b></code> -
- number of bytes to attempt to read.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- data read from the file, or an SFTP error code.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="stat"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">stat</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Return an <a href="paramiko.SFTPAttributes-class.html"
- class="link"><code>SFTPAttributes</code></a> object referring to this
- open file, or an error code. This is equivalent to <a
- href="../private/paramiko.SFTPServerInterface-class.html#stat"
- class="link"><code>SFTPServerInterface.stat</code></a>, except it's
- called on an open file instead of a path.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- an attributes object for the given file, or an SFTP error code
- (like <a
- href="../private/paramiko-module.html#SFTP_PERMISSION_DENIED"
- class="link"><code>SFTP_PERMISSION_DENIED</code></a>).
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.SFTPAttributes-class.html"
- class="link"><code>SFTPAttributes</code></a> <i>or error
- code</i>)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="write"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">write</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>offset</span>,
- <span class=sig-arg>data</span>)</span>
- </h3>
- <p>Write <code>data</code> into this file at position
- <code>offset</code>. Extending the file past its original end is
- expected. Unlike python's normal <code>write()</code> methods, this
- method cannot do a partial write: it must write all of
- <code>data</code> or else return an error.</p>
- The default implementation checks for an attribute on
- <code>self</code> named <code>writefile</code>, and if present,
- performs the write operation on the python file-like object found
- there. The attribute is named differently from <code>readfile</code> to
- make it easy to implement read-only (or write-only) files, but if both
- attributes are present, they should refer to the same file.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>offset</b></code> -
- position in the file to start reading from.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int or long)</i>
- <dd><code><b>data</b></code> -
- data to write into the file.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- an SFTP error code like <a
- href="../private/paramiko-module.html#SFTP_OK"
- class="link"><code>SFTP_OK</code></a>.
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="_get_next_files"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">_get_next_files</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Used by the SFTP server code to retreive a cached directory
- listing.
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-
-<a name="_set_files"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">_set_files</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>files</span>)</span>
- </h3>
- Used by the SFTP server code to cache a directory listing. (In the
- SFTP protocol, listing a directory is a multi-stage process requiring a
- temporary handle.)
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.SFTPServer-class.html b/docs/private/paramiko.SFTPServer-class.html
deleted file mode 100644
index 07a16b0..0000000
--- a/docs/private/paramiko.SFTPServer-class.html
+++ /dev/null
@@ -1,511 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.SFTPServer</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Class&nbsp;SFTPServer
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/paramiko.SFTPServer-class.html">hide&nbsp;private</a>]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.SFTPServer-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type SFTPServer</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
- <a href="../private/threading._Verbose-class.html"><code>_Verbose</code></a> --+
- |
- <a href="threading.Thread-class.html"><code>Thread</code></a> --+
- |
- <a href="paramiko.SubsystemHandler-class.html"><code>SubsystemHandler</code></a> --+
- |
- <a href="__builtin__.object-class.html"><code>object</code></a> --+ |
- | |
- <a href="../private/paramiko.BaseSFTP-class.html"><code>BaseSFTP</code></a> --+
- |
- <b>SFTPServer</b>
-</pre><br />
-
-<hr/>
-
-Server-side SFTP subsystem support. Since this is a <a
-href="paramiko.SubsystemHandler-class.html"
-class="link"><code>SubsystemHandler</code></a>, it can be (and is meant
-to be) set as the handler for <code>&quot;sftp&quot;</code> requests. Use
-<a href="paramiko.Transport-class.html#set_subsystem_handler"
-class="link"><code>Transport.set_subsystem_handler</code></a> to activate
-this class.
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPServer-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>channel</span>,
- <span class=summary-sig-arg>name</span>,
- <span class=summary-sig-arg>server</span>,
- <span class=summary-sig-arg>sftp_si</span>,
- <span class="summary-sig-vararg">*largs</span>,
- <span class="summary-sig-kwarg">**kwargs</span>)</span></code>
-<br />
-The constructor for SFTPServer is meant to be called from within the
-<a href="paramiko.Transport-class.html"
-class="link"><code>Transport</code></a> as a subsystem handler.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> int
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPServer-class.html#convert_errno" class="summary-sig-name"><code>convert_errno</code></a>(<span class=summary-sig-arg>e</span>)</span></code>
-<br />
-Convert an errno value (as from an <code>OSError</code> or
-<code>IOError</code>) into a standard SFTP result code. <i>(Static method)</i>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPServer-class.html#finish_subsystem" class="summary-sig-name"><code>finish_subsystem</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Perform any cleanup at the end of a subsystem.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPServer-class.html#set_file_attr" class="summary-sig-name"><code>set_file_attr</code></a>(<span class=summary-sig-arg>filename</span>,
- <span class=summary-sig-arg>attr</span>)</span></code>
-<br />
-Change a file's attributes on the local filesystem. <i>(Static method)</i>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPServer-class.html#start_subsystem" class="summary-sig-name"><code>start_subsystem</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>name</span>,
- <span class=summary-sig-arg>transport</span>,
- <span class=summary-sig-arg>channel</span>)</span></code>
-<br />
-Process an ssh subsystem in server mode.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_check_file"></a><span class="summary-sig"><span class="summary-sig-name">_check_file</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>request_number</span>,
- <span class=summary-sig-arg>msg</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.SFTPServer-class.html#_convert_pflags" class="summary-sig-name"><code>_convert_pflags</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>pflags</span>)</span></code>
-<br />
-convert SFTP-style open() flags to python's os.open() flags</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_open_folder"></a><span class="summary-sig"><span class="summary-sig-name">_open_folder</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>request_number</span>,
- <span class=summary-sig-arg>path</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_process"></a><span class="summary-sig"><span class="summary-sig-name">_process</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>t</span>,
- <span class=summary-sig-arg>request_number</span>,
- <span class=summary-sig-arg>msg</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_read_folder"></a><span class="summary-sig"><span class="summary-sig-name">_read_folder</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>request_number</span>,
- <span class=summary-sig-arg>folder</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_response"></a><span class="summary-sig"><span class="summary-sig-name">_response</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>request_number</span>,
- <span class=summary-sig-arg>t</span>,
- <span class="summary-sig-vararg">*arg</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_send_handle_response"></a><span class="summary-sig"><span class="summary-sig-name">_send_handle_response</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>request_number</span>,
- <span class=summary-sig-arg>handle</span>,
- <span class=summary-sig-arg>folder</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_send_status"></a><span class="summary-sig"><span class="summary-sig-name">_send_status</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>request_number</span>,
- <span class=summary-sig-arg>code</span>,
- <span class=summary-sig-arg>desc</span>)</span></code>
-</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from BaseSFTP</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.BaseSFTP-class.html#_log" class="summary-sig-name"><code>_log</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>level</span>,
- <span class=summary-sig-arg>msg</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.BaseSFTP-class.html#_read_all" class="summary-sig-name"><code>_read_all</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>n</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.BaseSFTP-class.html#_read_packet" class="summary-sig-name"><code>_read_packet</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.BaseSFTP-class.html#_send_packet" class="summary-sig-name"><code>_send_packet</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>t</span>,
- <span class=summary-sig-arg>packet</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.BaseSFTP-class.html#_send_server_version" class="summary-sig-name"><code>_send_server_version</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.BaseSFTP-class.html#_send_version" class="summary-sig-name"><code>_send_version</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.BaseSFTP-class.html#_write_all" class="summary-sig-name"><code>_write_all</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>out</span>)</span></code>
-</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from SubsystemHandler</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> <a href="../private/paramiko.ServerInterface-class.html"
- class="link"><code>ServerInterface</code></a>
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SubsystemHandler-class.html#get_server" class="summary-sig-name"><code>get_server</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return the <a href="../private/paramiko.ServerInterface-class.html"
-class="link"><code>ServerInterface</code></a> object associated with this
-channel and subsystem.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.SubsystemHandler-class.html#_run" class="summary-sig-name"><code>_run</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Thread</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="threading.Thread-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="threading.Thread-class.html#getName" class="summary-sig-name"><code>getName</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="threading.Thread-class.html#isAlive" class="summary-sig-name"><code>isAlive</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="threading.Thread-class.html#isDaemon" class="summary-sig-name"><code>isDaemon</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="threading.Thread-class.html#join" class="summary-sig-name"><code>join</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>timeout</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="threading.Thread-class.html#run" class="summary-sig-name"><code>run</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="threading.Thread-class.html#setDaemon" class="summary-sig-name"><code>setDaemon</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>daemonic</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="threading.Thread-class.html#setName" class="summary-sig-name"><code>setName</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>name</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="threading.Thread-class.html#start" class="summary-sig-name"><code>start</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/threading.Thread-class.html#_set_daemon" class="summary-sig-name"><code>_set_daemon</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from _Verbose</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/threading._Verbose-class.html#_note" class="summary-sig-name"><code>_note</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>format</span>,
- <span class="summary-sig-vararg">*args</span>)</span></code>
-</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__str__() &lt;==&gt; str(x)</td></tr>
-</table><br />
-
-
-<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Class Variable Summary</th></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Thread</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>bool</code></font></td>
-<td><b><a href="../private/threading.Thread-class.html#__initialized"><code>_Thread__initialized</code></a></b> = <span title="False"><code>False </code>
-</span></td></tr>
-</table><br />
-
-
-<!-- =========== START OF INSTANCE METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Instance Method Details</th></tr>
-</table>
-
-<a name="__init__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__init__</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>channel</span>,
- <span class=sig-arg>name</span>,
- <span class=sig-arg>server</span>,
- <span class=sig-arg>sftp_si</span>=<span class=sig-default>&lt;class&nbsp;'paramiko.SFTPServerInterface'&gt;</span>,
- <span class="sig-vararg">*largs</span>,
- <span class="sig-kwarg">**kwargs</span>)</span>
- <br /><i>(Constructor)</i>
- </h3>
- The constructor for SFTPServer is meant to be called from within the
- <a href="paramiko.Transport-class.html"
- class="link"><code>Transport</code></a> as a subsystem handler.
- <code>server</code> and any additional parameters or keyword parameters
- are passed from the original call to <a
- href="paramiko.Transport-class.html#set_subsystem_handler"
- class="link"><code>Transport.set_subsystem_handler</code></a>.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>channel</b></code> -
- channel passed from the <a
- href="paramiko.Transport-class.html"
- class="link"><code>Transport</code></a>.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a>)</i>
- <dd><code><b>name</b></code> -
- name of the requested subsystem.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>server</b></code> -
- the server object associated with this channel and
- subsystem
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="../private/paramiko.ServerInterface-class.html"
- class="link"><code>ServerInterface</code></a>)</i>
- <dd><code><b>sftp_si</b></code> -
- a subclass of <a
- href="../private/paramiko.SFTPServerInterface-class.html"
- class="link"><code>SFTPServerInterface</code></a> to use for
- handling individual requests.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=class)</i>
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="../private/paramiko.BaseSFTP-class.html#__init__"><code>paramiko.BaseSFTP.__init__</code></a></dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="finish_subsystem"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">finish_subsystem</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Perform any cleanup at the end of a subsystem. The default
- implementation just closes the channel.
- <dl><dt></dt><dd>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="paramiko.SubsystemHandler-class.html#finish_subsystem"><code>paramiko.SubsystemHandler.finish_subsystem</code></a> <i>(inherited documentation)</i>
-</dd>
- </dl>
-<p><b>Since:</b> 1.1
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="start_subsystem"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">start_subsystem</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>name</span>,
- <span class=sig-arg>transport</span>,
- <span class=sig-arg>channel</span>)</span>
- </h3>
- <p>Process an ssh subsystem in server mode. This method is called on a
- new object (and in a new thread) for each subsystem request. It is
- assumed that all subsystem logic will take place here, and when the
- subsystem is finished, this method will return. After this method
- returns, the channel is closed.</p>
- The combination of <code>transport</code> and <code>channel</code>
- are unique; this handler corresponds to exactly one <a
- href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a> on one <a
- href="paramiko.Transport-class.html"
- class="link"><code>Transport</code></a>.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>name</b></code> -
- name of the requested subsystem.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>transport</b></code> -
- the server-mode <a href="paramiko.Transport-class.html"
- class="link"><code>Transport</code></a>.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.Transport-class.html"
- class="link"><code>Transport</code></a>)</i>
- <dd><code><b>channel</b></code> -
- the channel associated with this subsystem request.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a>)</i>
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="paramiko.SubsystemHandler-class.html#start_subsystem"><code>paramiko.SubsystemHandler.start_subsystem</code></a> <i>(inherited documentation)</i>
-</dd>
- </dl>
-<p><b>Note:</b> It is the responsibility of this method to exit if the underlying <a
-href="paramiko.Transport-class.html"
-class="link"><code>Transport</code></a> is closed. This can be done by
-checking <a href="paramiko.Transport-class.html#is_active"
-class="link"><code>Transport.is_active</code></a> or noticing an EOF on
-the <a href="paramiko.Channel-class.html"
-class="link"><code>Channel</code></a>. If this method loops forever
-without checking for this case, your python interpreter may refuse to
-exit because this thread will still be running.
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="_convert_pflags"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">_convert_pflags</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>pflags</span>)</span>
- </h3>
- convert SFTP-style open() flags to python's os.open() flags
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF STATIC METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Static Method Details</th></tr>
-</table>
-
-<a name="convert_errno"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">convert_errno</span>(<span class=sig-arg>e</span>)</span>
- </h3>
- Convert an errno value (as from an <code>OSError</code> or
- <code>IOError</code>) into a standard SFTP result code. This is a
- convenience function for trapping exceptions in server code and
- returning an appropriate result.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>e</b></code> -
- an errno code, as from <code>OSError.errno</code>.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- an SFTP error code like <a
- href="../private/paramiko-module.html#SFTP_NO_SUCH_FILE"
- class="link"><code>SFTP_NO_SUCH_FILE</code></a>.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="set_file_attr"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">set_file_attr</span>(<span class=sig-arg>filename</span>,
- <span class=sig-arg>attr</span>)</span>
- </h3>
- <p>Change a file's attributes on the local filesystem. The contents of
- <code>attr</code> are used to change the permissions, owner, group
- ownership, and/or modification &amp; access time of the file, depending
- on which attributes are present in <code>attr</code>.</p>
- This is meant to be a handy helper function for translating SFTP
- file requests into local file operations.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>filename</b></code> -
- name of the file to alter (should usually be an absolute
- path).
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>attr</b></code> -
- attributes to change.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.SFTPAttributes-class.html"
- class="link"><code>SFTPAttributes</code></a>)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.SFTPServerInterface-class.html b/docs/private/paramiko.SFTPServerInterface-class.html
deleted file mode 100644
index a0bd429..0000000
--- a/docs/private/paramiko.SFTPServerInterface-class.html
+++ /dev/null
@@ -1,744 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.SFTPServerInterface</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Class&nbsp;SFTPServerInterface
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<b>show&nbsp;private</b>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="../private/paramiko.SFTPServerInterface-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type SFTPServerInterface</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
- <b>SFTPServerInterface</b>
-</pre><br />
-
-<hr/>
-
-<p>This class defines an interface for controlling the behavior of
-paramiko when using the <a href="paramiko.SFTPServer-class.html"
-class="link"><code>SFTPServer</code></a> subsystem to provide an SFTP
-server.</p>
-Methods on this class are called from the SFTP session's thread, so
-you can block as long as necessary without affecting other sessions (even
-other SFTP sessions). However, raising an exception will usually cause
-the SFTP session to abruptly end, so you will usually want to catch
-exceptions and return an appropriate error code.
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.SFTPServerInterface-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>server</span>,
- <span class="summary-sig-vararg">*largs</span>,
- <span class="summary-sig-kwarg">**kwargs</span>)</span></code>
-<br />
-Create a new SFTPServerInterface object.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.SFTPServerInterface-class.html#canonicalize" class="summary-sig-name"><code>canonicalize</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>)</span></code>
-<br />
-Return the canonical form of a path on the server.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> int
-</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.SFTPServerInterface-class.html#chattr" class="summary-sig-name"><code>chattr</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>,
- <span class=summary-sig-arg>attr</span>)</span></code>
-<br />
-Change the attributes of a file.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> list of <a href="paramiko.SFTPAttributes-class.html"
- class="link"><code>SFTPAttributes</code></a> <i>or error
- code</i>
-</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.SFTPServerInterface-class.html#list_folder" class="summary-sig-name"><code>list_folder</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>)</span></code>
-<br />
-Return a list of files within a given folder.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> <a href="paramiko.SFTPAttributes-class.html"
- class="link"><code>SFTPAttributes</code></a> <i>or error
- code</i>
-</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.SFTPServerInterface-class.html#lstat" class="summary-sig-name"><code>lstat</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>)</span></code>
-<br />
-Return an <a href="paramiko.SFTPAttributes-class.html"
-class="link"><code>SFTPAttributes</code></a> object for a path on the
-server, or an error code.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> int
-</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.SFTPServerInterface-class.html#mkdir" class="summary-sig-name"><code>mkdir</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>,
- <span class=summary-sig-arg>attr</span>)</span></code>
-<br />
-Create a new directory with the given attributes.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.SFTPServerInterface-class.html#open" class="summary-sig-name"><code>open</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>,
- <span class=summary-sig-arg>flags</span>,
- <span class=summary-sig-arg>attr</span>)</span></code>
-<br />
-Open a file on the server and create a handle for future operations on
-that file.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str <i>or error code</i>
-</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.SFTPServerInterface-class.html#readlink" class="summary-sig-name"><code>readlink</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>)</span></code>
-<br />
-Return the target of a symbolic link (or shortcut) on the server.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> int
-</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.SFTPServerInterface-class.html#remove" class="summary-sig-name"><code>remove</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>)</span></code>
-<br />
-Delete a file, if possible.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> int
-</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.SFTPServerInterface-class.html#rename" class="summary-sig-name"><code>rename</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>oldpath</span>,
- <span class=summary-sig-arg>newpath</span>)</span></code>
-<br />
-Rename (or move) a file.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> int
-</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.SFTPServerInterface-class.html#rmdir" class="summary-sig-name"><code>rmdir</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>)</span></code>
-<br />
-Remove a directory if it exists.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.SFTPServerInterface-class.html#session_ended" class="summary-sig-name"><code>session_ended</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-The SFTP server session has just ended, either cleanly or via an
-exception.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.SFTPServerInterface-class.html#session_started" class="summary-sig-name"><code>session_started</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-The SFTP server session has just started.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> <a href="paramiko.SFTPAttributes-class.html"
- class="link"><code>SFTPAttributes</code></a> <i>or error
- code</i>
-</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.SFTPServerInterface-class.html#stat" class="summary-sig-name"><code>stat</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>)</span></code>
-<br />
-Return an <a href="paramiko.SFTPAttributes-class.html"
-class="link"><code>SFTPAttributes</code></a> object for a path on the
-server, or an error code.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> int
-</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.SFTPServerInterface-class.html#symlink" class="summary-sig-name"><code>symlink</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>target_path</span>,
- <span class=summary-sig-arg>path</span>)</span></code>
-<br />
-Create a symbolic link on the server, as new pathname
-<code>path</code>, with <code>target_path</code> as the target of the
-link.</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__repr__() &lt;==&gt; repr(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__str__() &lt;==&gt; str(x)</td></tr>
-</table><br />
-
-
-<!-- =========== START OF METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Method Details</th></tr>
-</table>
-
-<a name="__init__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__init__</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>server</span>,
- <span class="sig-vararg">*largs</span>,
- <span class="sig-kwarg">**kwargs</span>)</span>
- <br /><i>(Constructor)</i>
- </h3>
- Create a new SFTPServerInterface object. This method does nothing by
- default and is meant to be overridden by subclasses.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>server</b></code> -
- the server object associated with this channel and SFTP
- subsystem
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="../private/paramiko.ServerInterface-class.html"
- class="link"><code>ServerInterface</code></a>)</i>
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="__builtin__.object-class.html#__init__"><code>__builtin__.object.__init__</code></a></dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="canonicalize"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">canonicalize</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>path</span>)</span>
- </h3>
- <p>Return the canonical form of a path on the server. For example, if
- the server's home folder is <code>/home/foo</code>, the path
- <code>&quot;../betty&quot;</code> would be canonicalized to
- <code>&quot;/home/betty&quot;</code>. Note the obvious security issues:
- if you're serving files only from a specific folder, you probably don't
- want this method to reveal path names outside that folder.</p>
- <p>You may find the python methods in <code>os.path</code> useful,
- especially <code>os.path.normpath</code> and
- <code>os.path.realpath</code>.</p>
- The default implementation returns <code>os.path.normpath('/' +
- path)</code>.
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-
-<a name="chattr"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">chattr</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>path</span>,
- <span class=sig-arg>attr</span>)</span>
- </h3>
- Change the attributes of a file. The <code>attr</code> object will
- contain only those fields provided by the client in its request, so you
- should check for the presence of fields before using them.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>path</b></code> -
- requested path (relative or absolute) of the file to
- change.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>attr</b></code> -
- requested attributes to change on the file.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.SFTPAttributes-class.html"
- class="link"><code>SFTPAttributes</code></a>)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- an error code like <a
- href="../private/paramiko-module.html#SFTP_OK"
- class="link"><code>SFTP_OK</code></a>.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="list_folder"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">list_folder</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>path</span>)</span>
- </h3>
- <p>Return a list of files within a given folder. The <code>path</code>
- will use posix notation (<code>&quot;/&quot;</code> separates folder
- names) and may be an absolute or relative path.</p>
- <p>The list of files is expected to be a list of <a
- href="paramiko.SFTPAttributes-class.html"
- class="link"><code>SFTPAttributes</code></a> objects, which are similar
- in structure to the objects returned by <code>os.stat</code>. In
- addition, each object should have its <code>filename</code> field
- filled in, since this is important to a directory listing and not
- normally present in <code>os.stat</code> results. The method
- <code>SFTPAttributes.from_stat</code> will usually do what you
- want.</p>
- In case of an error, you should return one of the
- <code>SFTP_*</code> error codes, such as <a
- href="../private/paramiko-module.html#SFTP_PERMISSION_DENIED"
- class="link"><code>SFTP_PERMISSION_DENIED</code></a>.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>path</b></code> -
- the requested path (relative or absolute) to be listed.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- a list of the files in the given folder, using <a
- href="paramiko.SFTPAttributes-class.html"
- class="link"><code>SFTPAttributes</code></a> objects.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=list of <a href="paramiko.SFTPAttributes-class.html"
- class="link"><code>SFTPAttributes</code></a> <i>or error
- code</i>)</i>
- </dd>
- </dl>
-<p><b>Note:</b> You should normalize the given <code>path</code> first (see the
-<code>os.path</code> module) and check appropriate permissions before
-returning the list of files. Be careful of malicious clients attempting
-to use relative paths to escape restricted folders, if you're doing a
-direct translation from the SFTP server path to your local
-filesystem.
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="lstat"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">lstat</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>path</span>)</span>
- </h3>
- Return an <a href="paramiko.SFTPAttributes-class.html"
- class="link"><code>SFTPAttributes</code></a> object for a path on the
- server, or an error code. If your server supports symbolic links (also
- known as &quot;aliases&quot;), you should <i>not</i> follow them --
- instead, you should return data on the symlink or alias itself. (<a
- href="../private/paramiko.SFTPServerInterface-class.html#stat"
- class="link"><code>stat</code></a> is the corresponding call that
- follows symlinks/aliases.)
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>path</b></code> -
- the requested path (relative or absolute) to fetch file
- statistics for.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- an attributes object for the given file, or an SFTP error code
- (like <a
- href="../private/paramiko-module.html#SFTP_PERMISSION_DENIED"
- class="link"><code>SFTP_PERMISSION_DENIED</code></a>).
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.SFTPAttributes-class.html"
- class="link"><code>SFTPAttributes</code></a> <i>or error
- code</i>)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="mkdir"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">mkdir</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>path</span>,
- <span class=sig-arg>attr</span>)</span>
- </h3>
- <p>Create a new directory with the given attributes. The
- <code>attr</code> object may be considered a &quot;hint&quot; and
- ignored.</p>
- The <code>attr</code> object will contain only those fields provided
- by the client in its request, so you should use <code>hasattr</code> to
- check for the presense of fields before using them. In some cases, the
- <code>attr</code> object may be completely empty.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>path</b></code> -
- requested path (relative or absolute) of the new folder.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>attr</b></code> -
- requested attributes of the new folder.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.SFTPAttributes-class.html"
- class="link"><code>SFTPAttributes</code></a>)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- an SFTP error code like <a
- href="../private/paramiko-module.html#SFTP_OK"
- class="link"><code>SFTP_OK</code></a>.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="open"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">open</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>path</span>,
- <span class=sig-arg>flags</span>,
- <span class=sig-arg>attr</span>)</span>
- </h3>
- <p>Open a file on the server and create a handle for future operations
- on that file. On success, a new object subclassed from <a
- href="paramiko.SFTPHandle-class.html"
- class="link"><code>SFTPHandle</code></a> should be returned. This
- handle will be used for future operations on the file (read, write,
- etc). On failure, an error code such as <a
- href="../private/paramiko-module.html#SFTP_PERMISSION_DENIED"
- class="link"><code>SFTP_PERMISSION_DENIED</code></a> should be
- returned.</p>
- <code>flags</code> contains the requested mode for opening
- (read-only, write-append, etc) as a bitset of flags from the
- <code>os</code> module:
- <ul>
- <li>
- <code>os.O_RDONLY</code>
- </li>
- <li>
- <code>os.O_WRONLY</code>
- </li>
- <li>
- <code>os.O_RDWR</code>
- </li>
- <li>
- <code>os.O_APPEND</code>
- </li>
- <li>
- <code>os.O_CREAT</code>
- </li>
- <li>
- <code>os.O_TRUNC</code>
- </li>
- <li>
- <code>os.O_EXCL</code>
- </li>
- </ul>
- <p>(One of <code>os.O_RDONLY</code>, <code>os.O_WRONLY</code>, or
- <code>os.O_RDWR</code> will always be set.)</p>
- The <code>attr</code> object contains requested attributes of the
- file if it has to be created. Some or all attribute fields may be
- missing if the client didn't specify them.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>path</b></code> -
- the requested path (relative or absolute) of the file to be
- opened.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>flags</b></code> -
- flags or'd together from the <code>os</code> module indicating
- the requested mode for opening the file.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- <dd><code><b>attr</b></code> -
- requested attributes of the file if it is newly created.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.SFTPAttributes-class.html"
- class="link"><code>SFTPAttributes</code></a>)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- a new <a href="paramiko.SFTPHandle-class.html"
- class="link"><code>SFTPHandle</code></a> <i>or error code</i>.
- &#64;rtype <a href="paramiko.SFTPHandle-class.html"
- class="link"><code>SFTPHandle</code></a>
- </dd>
- </dl>
-<p><b>Note:</b> The SFTP protocol defines all files to be in &quot;binary&quot; mode.
-There is no equivalent to python's &quot;text&quot; mode.
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="readlink"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">readlink</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>path</span>)</span>
- </h3>
- Return the target of a symbolic link (or shortcut) on the server. If
- the specified path doesn't refer to a symbolic link, an error should be
- returned.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>path</b></code> -
- path (relative or absolute) of the symbolic link.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- the target path of the symbolic link, or an error code like <a
- href="../private/paramiko-module.html#SFTP_NO_SUCH_FILE"
- class="link"><code>SFTP_NO_SUCH_FILE</code></a>.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str <i>or error code</i>)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="remove"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">remove</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>path</span>)</span>
- </h3>
- Delete a file, if possible.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>path</b></code> -
- the requested path (relative or absolute) of the file to
- delete.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- an SFTP error code like <a
- href="../private/paramiko-module.html#SFTP_OK"
- class="link"><code>SFTP_OK</code></a>.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="rename"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">rename</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>oldpath</span>,
- <span class=sig-arg>newpath</span>)</span>
- </h3>
- Rename (or move) a file. The SFTP specification implies that this
- method can be used to move an existing file into a different folder,
- and since there's no other (easy) way to move files via SFTP, it's
- probably a good idea to implement &quot;move&quot; in this method too,
- even for files that cross disk partition boundaries, if at all
- possible.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>oldpath</b></code> -
- the requested path (relative or absolute) of the existing
- file.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>newpath</b></code> -
- the requested new path of the file.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- an SFTP error code like <a
- href="../private/paramiko-module.html#SFTP_OK"
- class="link"><code>SFTP_OK</code></a>.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
-<p><b>Note:</b> You should return an error if a file with the same name as
-<code>newpath</code> already exists. (The rename operation should be
-non-desctructive.)
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="rmdir"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">rmdir</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>path</span>)</span>
- </h3>
- Remove a directory if it exists. The <code>path</code> should refer
- to an existing, empty folder -- otherwise this method should return an
- error.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>path</b></code> -
- requested path (relative or absolute) of the folder to
- remove.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- an SFTP error code like <a
- href="../private/paramiko-module.html#SFTP_OK"
- class="link"><code>SFTP_OK</code></a>.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="session_ended"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">session_ended</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- The SFTP server session has just ended, either cleanly or via an
- exception. This method is meant to be overridden to perform any
- necessary cleanup before this <code>SFTPServerInterface</code> object
- is destroyed.
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-
-<a name="session_started"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">session_started</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- The SFTP server session has just started. This method is meant to be
- overridden to perform any necessary setup before handling callbacks
- from SFTP operations.
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-
-<a name="stat"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">stat</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>path</span>)</span>
- </h3>
- Return an <a href="paramiko.SFTPAttributes-class.html"
- class="link"><code>SFTPAttributes</code></a> object for a path on the
- server, or an error code. If your server supports symbolic links (also
- known as &quot;aliases&quot;), you should follow them. (<a
- href="../private/paramiko.SFTPServerInterface-class.html#lstat"
- class="link"><code>lstat</code></a> is the corresponding call that
- doesn't follow symlinks/aliases.)
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>path</b></code> -
- the requested path (relative or absolute) to fetch file
- statistics for.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- an attributes object for the given file, or an SFTP error code
- (like <a
- href="../private/paramiko-module.html#SFTP_PERMISSION_DENIED"
- class="link"><code>SFTP_PERMISSION_DENIED</code></a>).
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.SFTPAttributes-class.html"
- class="link"><code>SFTPAttributes</code></a> <i>or error
- code</i>)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="symlink"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">symlink</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>target_path</span>,
- <span class=sig-arg>path</span>)</span>
- </h3>
- Create a symbolic link on the server, as new pathname
- <code>path</code>, with <code>target_path</code> as the target of the
- link.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>target_path</b></code> -
- path (relative or absolute) of the target for this new
- symbolic link.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>path</b></code> -
- path (relative or absolute) of the symbolic link to
- create.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- an error code like <code>SFTP_OK</code>.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:48 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.SSHException-class.html b/docs/private/paramiko.SSHException-class.html
deleted file mode 100644
index 74d34e6..0000000
--- a/docs/private/paramiko.SSHException-class.html
+++ /dev/null
@@ -1,95 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.SSHException</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Class&nbsp;SSHException
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/paramiko.SSHException-class.html">hide&nbsp;private</a>]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.SSHException-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Class SSHException</h2>
-
-<pre class="base-tree">
-<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+
- |
- <b>SSHException</b>
-</pre><br />
-
-<dl><dt><b>Known Subclasses:</b></dt>
-<dd>
- <a href="paramiko.BadAuthenticationType-class.html"><code>BadAuthenticationType</code></a>,
- <a href="paramiko.PasswordRequiredException-class.html"><code>PasswordRequiredException</code></a>,
- <a href="../private/paramiko.ssh_exception.PartialAuthentication-class.html"><code>PartialAuthentication</code></a></dd></dl>
-
-<hr/>
-
-Exception raised by failures in SSH2 protocol negotiation or logic
-errors.
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-</td></tr>
-</table><br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:48 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.SecurityOptions-class.html b/docs/private/paramiko.SecurityOptions-class.html
deleted file mode 100644
index 1763962..0000000
--- a/docs/private/paramiko.SecurityOptions-class.html
+++ /dev/null
@@ -1,373 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.SecurityOptions</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Class&nbsp;SecurityOptions
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/paramiko.SecurityOptions-class.html">hide&nbsp;private</a>]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.SecurityOptions-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type SecurityOptions</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
- <b>SecurityOptions</b>
-</pre><br />
-
-<hr/>
-
-<p>Simple object containing the security preferences of an ssh transport.
-These are tuples of acceptable ciphers, digests, key types, and key
-exchange algorithms, listed in order of preference.</p>
-Changing the contents and/or order of these fields affects the
-underlying <a href="paramiko.Transport-class.html"
-class="link"><code>Transport</code></a> (but only if you change them
-before starting the session). If you try to add an algorithm that
-paramiko doesn't recognize, <code>ValueError</code> will be raised. If
-you try to assign something besides a tuple to one of the fields,
-<code>TypeError</code> will be raised.
-<hr/>
-
-<p><b>Since:</b> ivysaur
-</p>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__init__"></a><span class="summary-sig"><span class="summary-sig-name">__init__</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>transport</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SecurityOptions-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Returns a string representation of this object, for debugging.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_get_ciphers"></a><span class="summary-sig"><span class="summary-sig-name">_get_ciphers</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_get_compression"></a><span class="summary-sig"><span class="summary-sig-name">_get_compression</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_get_digests"></a><span class="summary-sig"><span class="summary-sig-name">_get_digests</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_get_kex"></a><span class="summary-sig"><span class="summary-sig-name">_get_kex</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_get_key_types"></a><span class="summary-sig"><span class="summary-sig-name">_get_key_types</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_set"></a><span class="summary-sig"><span class="summary-sig-name">_set</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>name</span>,
- <span class=summary-sig-arg>orig</span>,
- <span class=summary-sig-arg>x</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_set_ciphers"></a><span class="summary-sig"><span class="summary-sig-name">_set_ciphers</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>x</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_set_compression"></a><span class="summary-sig"><span class="summary-sig-name">_set_compression</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>x</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_set_digests"></a><span class="summary-sig"><span class="summary-sig-name">_set_digests</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>x</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_set_kex"></a><span class="summary-sig"><span class="summary-sig-name">_set_kex</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>x</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_set_key_types"></a><span class="summary-sig"><span class="summary-sig-name">_set_key_types</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>x</span>)</span></code>
-</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__str__() &lt;==&gt; str(x)</td></tr>
-</table><br />
-
-
-<!-- =========== START OF PROPERTY SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Property Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><b><a href="paramiko.SecurityOptions-class.html#ciphers"><code>ciphers</code></a></b>: Symmetric encryption ciphers</td></tr><tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><b><a href="paramiko.SecurityOptions-class.html#compression"><code>compression</code></a></b>: Compression algorithms</td></tr><tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><b><a href="paramiko.SecurityOptions-class.html#digests"><code>digests</code></a></b>: Digest (one-way hash) algorithms</td></tr><tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><b><a href="paramiko.SecurityOptions-class.html#kex"><code>kex</code></a></b>: Key exchange algorithms</td></tr><tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><b><a href="paramiko.SecurityOptions-class.html#key_types"><code>key_types</code></a></b>: Public-key algorithms</td></tr></table><br />
-
-
-<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Class Variable Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>list</code></font></td>
-<td><b><a href="paramiko.SecurityOptions-class.html#__slots__"><code>__slots__</code></a></b> = <span title="['ciphers', 'digests', 'key_types', 'kex', 'compression', '_transport']"><code>['ciphers',&nbsp;'digests',&nbsp;'key_types',&nbsp;'kex',&nbsp;'<span class="variable-ellipsis">...</span></code>
-</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>member_descriptor</code></font></td>
-<td><b><a href="../private/paramiko.SecurityOptions-class.html#_transport"><code>_transport</code></a></b> = <span title="&lt;member '_transport' of 'SecurityOptions' objects&gt;"><code>&lt;member&nbsp;'_transport'&nbsp;of&nbsp;'SecurityOptions'&nbsp;o<span class="variable-ellipsis">...</span></code>
-</span></td></tr>
-</table><br />
-
-
-<!-- =========== START OF METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Method Details</th></tr>
-</table>
-
-<a name="__repr__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__repr__</span>(<span class=sig-arg>self</span>)</span>
- <br /><i>(Representation operator)</i>
- </h3>
- Returns a string representation of this object, for debugging.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- str
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="__builtin__.object-class.html#__repr__"><code>__builtin__.object.__repr__</code></a></dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF PROPERTY DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Property Details</th></tr>
-</table>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-
-<a name="ciphers"></a>
-<h3>ciphers</h3>
-Symmetric encryption ciphers
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Get Method:</b></dt>
- <dd><span class="summary-sig"><a href="../private/paramiko.SecurityOptions-class.html#_get_ciphers" class="summary-sig-name"><code>_get_ciphers</code></a>(<span class=summary-sig-arg>self</span>)</span>
- </dd>
- <dt><b>Set Method:</b></dt>
- <dd><span class="summary-sig"><a href="../private/paramiko.SecurityOptions-class.html#_set_ciphers" class="summary-sig-name"><code>_set_ciphers</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>x</span>)</span>
- </dd>
- </dl>
- </dd>
-</dl></td></tr></table><table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-
-<a name="compression"></a>
-<h3>compression</h3>
-Compression algorithms
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Get Method:</b></dt>
- <dd><span class="summary-sig"><a href="../private/paramiko.SecurityOptions-class.html#_get_compression" class="summary-sig-name"><code>_get_compression</code></a>(<span class=summary-sig-arg>self</span>)</span>
- </dd>
- <dt><b>Set Method:</b></dt>
- <dd><span class="summary-sig"><a href="../private/paramiko.SecurityOptions-class.html#_set_compression" class="summary-sig-name"><code>_set_compression</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>x</span>)</span>
- </dd>
- </dl>
- </dd>
-</dl></td></tr></table><table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-
-<a name="digests"></a>
-<h3>digests</h3>
-Digest (one-way hash) algorithms
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Get Method:</b></dt>
- <dd><span class="summary-sig"><a href="../private/paramiko.SecurityOptions-class.html#_get_digests" class="summary-sig-name"><code>_get_digests</code></a>(<span class=summary-sig-arg>self</span>)</span>
- </dd>
- <dt><b>Set Method:</b></dt>
- <dd><span class="summary-sig"><a href="../private/paramiko.SecurityOptions-class.html#_set_digests" class="summary-sig-name"><code>_set_digests</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>x</span>)</span>
- </dd>
- </dl>
- </dd>
-</dl></td></tr></table><table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-
-<a name="kex"></a>
-<h3>kex</h3>
-Key exchange algorithms
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Get Method:</b></dt>
- <dd><span class="summary-sig"><a href="../private/paramiko.SecurityOptions-class.html#_get_kex" class="summary-sig-name"><code>_get_kex</code></a>(<span class=summary-sig-arg>self</span>)</span>
- </dd>
- <dt><b>Set Method:</b></dt>
- <dd><span class="summary-sig"><a href="../private/paramiko.SecurityOptions-class.html#_set_kex" class="summary-sig-name"><code>_set_kex</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>x</span>)</span>
- </dd>
- </dl>
- </dd>
-</dl></td></tr></table><table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-
-<a name="key_types"></a>
-<h3>key_types</h3>
-Public-key algorithms
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Get Method:</b></dt>
- <dd><span class="summary-sig"><a href="../private/paramiko.SecurityOptions-class.html#_get_key_types" class="summary-sig-name"><code>_get_key_types</code></a>(<span class=summary-sig-arg>self</span>)</span>
- </dd>
- <dt><b>Set Method:</b></dt>
- <dd><span class="summary-sig"><a href="../private/paramiko.SecurityOptions-class.html#_set_key_types" class="summary-sig-name"><code>_set_key_types</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>x</span>)</span>
- </dd>
- </dl>
- </dd>
-</dl></td></tr></table><br />
-
-
-<!-- =========== START OF CLASS VARIABLE DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Class Variable Details</th></tr>
-</table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="__slots__"></a>
-<h3>__slots__</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>list</code>
-
- </dd>
-<span title="['ciphers', 'digests', 'key_types', 'kex', 'compression', '_transport']"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-['ciphers', 'digests', 'key_types', 'kex', 'compression', '_transport'<span class="variable-linewrap">\</span>
-] </pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="_transport"></a>
-<h3>_transport</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>member_descriptor</code>
-
- </dd>
-<span title="&lt;member '_transport' of 'SecurityOptions' objects&gt;"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-&lt;member '_transport' of 'SecurityOptions' objects&gt; </pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.ServerInterface-class.html b/docs/private/paramiko.ServerInterface-class.html
deleted file mode 100644
index 5cf358f..0000000
--- a/docs/private/paramiko.ServerInterface-class.html
+++ /dev/null
@@ -1,894 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.ServerInterface</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Class&nbsp;ServerInterface
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<b>show&nbsp;private</b>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="../private/paramiko.ServerInterface-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type ServerInterface</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
- <b>ServerInterface</b>
-</pre><br />
-
-<hr/>
-
-<p>This class defines an interface for controlling the behavior of
-paramiko in server mode.</p>
-Methods on this class are called from paramiko's primary thread, so
-you shouldn't do too much work in them. (Certainly nothing that blocks or
-sleeps.)
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> int or <a href="paramiko.server.InteractiveQuery-class.html"
- class="link"><code>InteractiveQuery</code></a>
-</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.ServerInterface-class.html#check_auth_interactive" class="summary-sig-name"><code>check_auth_interactive</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>username</span>,
- <span class=summary-sig-arg>submethods</span>)</span></code>
-<br />
-Begin an interactive authentication challenge, if supported.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> int or <a href="paramiko.server.InteractiveQuery-class.html"
- class="link"><code>InteractiveQuery</code></a>
-</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.ServerInterface-class.html#check_auth_interactive_response" class="summary-sig-name"><code>check_auth_interactive_response</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>responses</span>)</span></code>
-<br />
-Continue or finish an interactive authentication challenge, if
-supported.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> int
-</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.ServerInterface-class.html#check_auth_none" class="summary-sig-name"><code>check_auth_none</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>username</span>)</span></code>
-<br />
-Determine if a client may open channels with no (further)
-authentication.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> int
-</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.ServerInterface-class.html#check_auth_password" class="summary-sig-name"><code>check_auth_password</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>username</span>,
- <span class=summary-sig-arg>password</span>)</span></code>
-<br />
-Determine if a given username and password supplied by the client is
-acceptable for use in authentication.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> int
-</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.ServerInterface-class.html#check_auth_publickey" class="summary-sig-name"><code>check_auth_publickey</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>username</span>,
- <span class=summary-sig-arg>key</span>)</span></code>
-<br />
-Determine if a given key supplied by the client is acceptable for use
-in authentication.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> bool
-</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.ServerInterface-class.html#check_channel_exec_request" class="summary-sig-name"><code>check_channel_exec_request</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>channel</span>,
- <span class=summary-sig-arg>command</span>)</span></code>
-<br />
-Determine if a shell command will be executed for the client.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> bool
-</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.ServerInterface-class.html#check_channel_pty_request" class="summary-sig-name"><code>check_channel_pty_request</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>channel</span>,
- <span class=summary-sig-arg>term</span>,
- <span class=summary-sig-arg>width</span>,
- <span class=summary-sig-arg>height</span>,
- <span class=summary-sig-arg>pixelwidth</span>,
- <span class=summary-sig-arg>pixelheight</span>,
- <span class=summary-sig-arg>modes</span>)</span></code>
-<br />
-Determine if a pseudo-terminal of the given dimensions (usually
-requested for shell access) can be provided on the given channel.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> int
-</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.ServerInterface-class.html#check_channel_request" class="summary-sig-name"><code>check_channel_request</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>kind</span>,
- <span class=summary-sig-arg>chanid</span>)</span></code>
-<br />
-Determine if a channel request of a given type will be granted, and
-return <code>OPEN_SUCCEEDED</code> or an error code.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> bool
-</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.ServerInterface-class.html#check_channel_shell_request" class="summary-sig-name"><code>check_channel_shell_request</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>channel</span>)</span></code>
-<br />
-Determine if a shell will be provided to the client on the given
-channel.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> bool
-</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.ServerInterface-class.html#check_channel_subsystem_request" class="summary-sig-name"><code>check_channel_subsystem_request</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>channel</span>,
- <span class=summary-sig-arg>name</span>)</span></code>
-<br />
-Determine if a requested subsystem will be provided to the client on
-the given channel.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> bool
-</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.ServerInterface-class.html#check_channel_window_change_request" class="summary-sig-name"><code>check_channel_window_change_request</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>channel</span>,
- <span class=summary-sig-arg>width</span>,
- <span class=summary-sig-arg>height</span>,
- <span class=summary-sig-arg>pixelwidth</span>,
- <span class=summary-sig-arg>pixelheight</span>)</span></code>
-<br />
-Determine if the pseudo-terminal on the given channel can be
-resized.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> bool
-</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.ServerInterface-class.html#check_global_request" class="summary-sig-name"><code>check_global_request</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>kind</span>,
- <span class=summary-sig-arg>msg</span>)</span></code>
-<br />
-Handle a global request of the given <code>kind</code>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.ServerInterface-class.html#get_allowed_auths" class="summary-sig-name"><code>get_allowed_auths</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>username</span>)</span></code>
-<br />
-Return a list of authentication methods supported by the server.</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__init__(...) initializes x; see x.__class__.__doc__ for
-signature</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__repr__() &lt;==&gt; repr(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__str__() &lt;==&gt; str(x)</td></tr>
-</table><br />
-
-
-<!-- =========== START OF METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Method Details</th></tr>
-</table>
-
-<a name="check_auth_interactive"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">check_auth_interactive</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>username</span>,
- <span class=sig-arg>submethods</span>)</span>
- </h3>
- <p>Begin an interactive authentication challenge, if supported. You
- should override this method in server mode if you want to support the
- <code>&quot;keyboard-interactive&quot;</code> auth type, which requires
- you to send a series of questions for the client to answer.</p>
- <p>Return <a href="../private/paramiko-module.html#AUTH_FAILED"
- class="link"><code>AUTH_FAILED</code></a> if this auth method isn't
- supported. Otherwise, you should return an <a
- href="paramiko.server.InteractiveQuery-class.html"
- class="link"><code>InteractiveQuery</code></a> object containing the
- prompts and instructions for the user. The response will be sent via a
- call to <a
- href="../private/paramiko.ServerInterface-class.html#check_auth_interactive_response"
- class="link"><code>check_auth_interactive_response</code></a>.</p>
- The default implementation always returns <a
- href="../private/paramiko-module.html#AUTH_FAILED"
- class="link"><code>AUTH_FAILED</code></a>.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>username</b></code> -
- the username of the authenticating client
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>submethods</b></code> -
- a comma-separated list of methods preferred by the client
- (usually empty)
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- <a href="../private/paramiko-module.html#AUTH_FAILED"
- class="link"><code>AUTH_FAILED</code></a> if this auth method
- isn't supported; otherwise an object containing queries for the
- user
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int or <a href="paramiko.server.InteractiveQuery-class.html"
- class="link"><code>InteractiveQuery</code></a>)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="check_auth_interactive_response"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">check_auth_interactive_response</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>responses</span>)</span>
- </h3>
- <p>Continue or finish an interactive authentication challenge, if
- supported. You should override this method in server mode if you want
- to support the <code>&quot;keyboard-interactive&quot;</code> auth
- type.</p>
- <p>Return <a href="../private/paramiko-module.html#AUTH_FAILED"
- class="link"><code>AUTH_FAILED</code></a> if the responses are not
- accepted, <a href="../private/paramiko-module.html#AUTH_SUCCESSFUL"
- class="link"><code>AUTH_SUCCESSFUL</code></a> if the responses are
- accepted and complete the authentication, or <a
- href="../private/paramiko-module.html#AUTH_PARTIALLY_SUCCESSFUL"
- class="link"><code>AUTH_PARTIALLY_SUCCESSFUL</code></a> if your
- authentication is stateful, and this set of responses is accepted for
- authentication, but more authentication is required. (In this latter
- case, <a
- href="../private/paramiko.ServerInterface-class.html#get_allowed_auths"
- class="link"><code>get_allowed_auths</code></a> will be called to
- report to the client what options it has for continuing the
- authentication.)</p>
- <p>If you wish to continue interactive authentication with more
- questions, you may return an <a
- href="paramiko.server.InteractiveQuery-class.html"
- class="link"><code>InteractiveQuery</code></a> object, which should
- cause the client to respond with more answers, calling this method
- again. This cycle can continue indefinitely.</p>
- The default implementation always returns <a
- href="../private/paramiko-module.html#AUTH_FAILED"
- class="link"><code>AUTH_FAILED</code></a>.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>responses</b></code> -
- list of responses from the client
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=list(str))</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- <a href="../private/paramiko-module.html#AUTH_FAILED"
- class="link"><code>AUTH_FAILED</code></a> if the authentication
- fails; <a href="../private/paramiko-module.html#AUTH_SUCCESSFUL"
- class="link"><code>AUTH_SUCCESSFUL</code></a> if it succeeds; <a
- href="../private/paramiko-module.html#AUTH_PARTIALLY_SUCCESSFUL"
- class="link"><code>AUTH_PARTIALLY_SUCCESSFUL</code></a> if the
- interactive auth is successful, but authentication must continue;
- otherwise an object containing queries for the user
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int or <a href="paramiko.server.InteractiveQuery-class.html"
- class="link"><code>InteractiveQuery</code></a>)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="check_auth_none"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">check_auth_none</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>username</span>)</span>
- </h3>
- <p>Determine if a client may open channels with no (further)
- authentication.</p>
- <p>Return <a href="../private/paramiko-module.html#AUTH_FAILED"
- class="link"><code>AUTH_FAILED</code></a> if the client must
- authenticate, or <a
- href="../private/paramiko-module.html#AUTH_SUCCESSFUL"
- class="link"><code>AUTH_SUCCESSFUL</code></a> if it's okay for the
- client to not authenticate.</p>
- The default implementation always returns <a
- href="../private/paramiko-module.html#AUTH_FAILED"
- class="link"><code>AUTH_FAILED</code></a>.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>username</b></code> -
- the username of the client.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- <a href="../private/paramiko-module.html#AUTH_FAILED"
- class="link"><code>AUTH_FAILED</code></a> if the authentication
- fails; <a href="../private/paramiko-module.html#AUTH_SUCCESSFUL"
- class="link"><code>AUTH_SUCCESSFUL</code></a> if it succeeds.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="check_auth_password"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">check_auth_password</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>username</span>,
- <span class=sig-arg>password</span>)</span>
- </h3>
- <p>Determine if a given username and password supplied by the client is
- acceptable for use in authentication.</p>
- <p>Return <a href="../private/paramiko-module.html#AUTH_FAILED"
- class="link"><code>AUTH_FAILED</code></a> if the password is not
- accepted, <a href="../private/paramiko-module.html#AUTH_SUCCESSFUL"
- class="link"><code>AUTH_SUCCESSFUL</code></a> if the password is
- accepted and completes the authentication, or <a
- href="../private/paramiko-module.html#AUTH_PARTIALLY_SUCCESSFUL"
- class="link"><code>AUTH_PARTIALLY_SUCCESSFUL</code></a> if your
- authentication is stateful, and this key is accepted for
- authentication, but more authentication is required. (In this latter
- case, <a
- href="../private/paramiko.ServerInterface-class.html#get_allowed_auths"
- class="link"><code>get_allowed_auths</code></a> will be called to
- report to the client what options it has for continuing the
- authentication.)</p>
- The default implementation always returns <a
- href="../private/paramiko-module.html#AUTH_FAILED"
- class="link"><code>AUTH_FAILED</code></a>.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>username</b></code> -
- the username of the authenticating client.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>password</b></code> -
- the password given by the client.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- <a href="../private/paramiko-module.html#AUTH_FAILED"
- class="link"><code>AUTH_FAILED</code></a> if the authentication
- fails; <a href="../private/paramiko-module.html#AUTH_SUCCESSFUL"
- class="link"><code>AUTH_SUCCESSFUL</code></a> if it succeeds; <a
- href="../private/paramiko-module.html#AUTH_PARTIALLY_SUCCESSFUL"
- class="link"><code>AUTH_PARTIALLY_SUCCESSFUL</code></a> if the
- password auth is successful, but authentication must
- continue.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="check_auth_publickey"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">check_auth_publickey</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>username</span>,
- <span class=sig-arg>key</span>)</span>
- </h3>
- <p>Determine if a given key supplied by the client is acceptable for
- use in authentication. You should override this method in server mode
- to check the username and key and decide if you would accept a
- signature made using this key.</p>
- <p>Return <a href="../private/paramiko-module.html#AUTH_FAILED"
- class="link"><code>AUTH_FAILED</code></a> if the key is not accepted,
- <a href="../private/paramiko-module.html#AUTH_SUCCESSFUL"
- class="link"><code>AUTH_SUCCESSFUL</code></a> if the key is accepted
- and completes the authentication, or <a
- href="../private/paramiko-module.html#AUTH_PARTIALLY_SUCCESSFUL"
- class="link"><code>AUTH_PARTIALLY_SUCCESSFUL</code></a> if your
- authentication is stateful, and this password is accepted for
- authentication, but more authentication is required. (In this latter
- case, <a
- href="../private/paramiko.ServerInterface-class.html#get_allowed_auths"
- class="link"><code>get_allowed_auths</code></a> will be called to
- report to the client what options it has for continuing the
- authentication.)</p>
- <p>Note that you don't have to actually verify any key signtature here.
- If you're willing to accept the key, paramiko will do the work of
- verifying the client's signature.</p>
- The default implementation always returns <a
- href="../private/paramiko-module.html#AUTH_FAILED"
- class="link"><code>AUTH_FAILED</code></a>.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>username</b></code> -
- the username of the authenticating client
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>key</b></code> -
- the key object provided by the client
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="../private/paramiko.PKey-class.html"
- class="link"><code>PKey</code></a>)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- <a href="../private/paramiko-module.html#AUTH_FAILED"
- class="link"><code>AUTH_FAILED</code></a> if the client can't
- authenticate with this key; <a
- href="../private/paramiko-module.html#AUTH_SUCCESSFUL"
- class="link"><code>AUTH_SUCCESSFUL</code></a> if it can; <a
- href="../private/paramiko-module.html#AUTH_PARTIALLY_SUCCESSFUL"
- class="link"><code>AUTH_PARTIALLY_SUCCESSFUL</code></a> if it can
- authenticate with this key but must continue with
- authentication
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="check_channel_exec_request"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">check_channel_exec_request</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>channel</span>,
- <span class=sig-arg>command</span>)</span>
- </h3>
- <p>Determine if a shell command will be executed for the client. If
- this method returns <code>True</code>, the channel should be connected
- to the stdin, stdout, and stderr of the shell command.</p>
- The default implementation always returns <code>False</code>.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>channel</b></code> -
- the <a href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a> the request arrived on.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a>)</i>
- <dd><code><b>command</b></code> -
- the command to execute.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- <code>True</code> if this channel is now hooked up to the
- stdin, stdout, and stderr of the executing command;
- <code>False</code> if the command will not be executed.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=bool)</i>
- </dd>
- </dl>
-<p><b>Since:</b> 1.1
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="check_channel_pty_request"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">check_channel_pty_request</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>channel</span>,
- <span class=sig-arg>term</span>,
- <span class=sig-arg>width</span>,
- <span class=sig-arg>height</span>,
- <span class=sig-arg>pixelwidth</span>,
- <span class=sig-arg>pixelheight</span>,
- <span class=sig-arg>modes</span>)</span>
- </h3>
- <p>Determine if a pseudo-terminal of the given dimensions (usually
- requested for shell access) can be provided on the given channel.</p>
- The default implementation always returns <code>False</code>.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>channel</b></code> -
- the <a href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a> the pty request arrived
- on.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a>)</i>
- <dd><code><b>term</b></code> -
- type of terminal requested (for example,
- <code>&quot;vt100&quot;</code>).
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>width</b></code> -
- width of screen in characters.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- <dd><code><b>height</b></code> -
- height of screen in characters.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- <dd><code><b>pixelwidth</b></code> -
- width of screen in pixels, if known (may be <code>0</code> if
- unknown).
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- <dd><code><b>pixelheight</b></code> -
- height of screen in pixels, if known (may be <code>0</code> if
- unknown).
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- <code>True</code> if the psuedo-terminal has been allocated;
- <code>False</code> otherwise.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=bool)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="check_channel_request"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">check_channel_request</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>kind</span>,
- <span class=sig-arg>chanid</span>)</span>
- </h3>
- <p>Determine if a channel request of a given type will be granted, and
- return <code>OPEN_SUCCEEDED</code> or an error code. This method is
- called in server mode when the client requests a channel, after
- authentication is complete.</p>
- If you allow channel requests (and an ssh server that didn't would
- be useless), you should also override some of the channel request
- methods below, which are used to determine which services will be
- allowed on a given channel:
- <ul>
- <li>
- <a
- href="../private/paramiko.ServerInterface-class.html#check_channel_pty_request"
- class="link"><code>check_channel_pty_request</code></a>
- </li>
- <li>
- <a
- href="../private/paramiko.ServerInterface-class.html#check_channel_shell_request"
- class="link"><code>check_channel_shell_request</code></a>
- </li>
- <li>
- <a
- href="../private/paramiko.ServerInterface-class.html#check_channel_subsystem_request"
- class="link"><code>check_channel_subsystem_request</code></a>
- </li>
- <li>
- <a
- href="../private/paramiko.ServerInterface-class.html#check_channel_window_change_request"
- class="link"><code>check_channel_window_change_request</code></a>
- </li>
- </ul>
- <p>The <code>chanid</code> parameter is a small number that uniquely
- identifies the channel within a <a href="paramiko.Transport-class.html"
- class="link"><code>Transport</code></a>. A <a
- href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a> object is not created unless this
- method returns <code>OPEN_SUCCEEDED</code> -- once a <a
- href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a> object is created, you can call
- <a href="paramiko.Channel-class.html#get_id"
- class="link"><code>Channel.get_id</code></a> to retrieve the channel
- ID.</p>
- The return value should either be <code>OPEN_SUCCEEDED</code> (or
- <code>0</code>) to allow the channel request, or one of the following
- error codes to reject it:
- <ul>
- <li>
- <code>OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED</code>
- </li>
- <li>
- <code>OPEN_FAILED_CONNECT_FAILED</code>
- </li>
- <li>
- <code>OPEN_FAILED_UNKNOWN_CHANNEL_TYPE</code>
- </li>
- <li>
- <code>OPEN_FAILED_RESOURCE_SHORTAGE</code>
- </li>
- </ul>
- The default implementation always returns
- <code>OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED</code>.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>kind</b></code> -
- the kind of channel the client would like to open (usually
- <code>&quot;session&quot;</code>).
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>chanid</b></code> -
- ID of the channel
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- a success or failure code (listed above)
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="check_channel_shell_request"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">check_channel_shell_request</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>channel</span>)</span>
- </h3>
- <p>Determine if a shell will be provided to the client on the given
- channel. If this method returns <code>True</code>, the channel should
- be connected to the stdin/stdout of a shell (or something that acts
- like a shell).</p>
- The default implementation always returns <code>False</code>.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>channel</b></code> -
- the <a href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a> the request arrived on.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a>)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- <code>True</code> if this channel is now hooked up to a shell;
- <code>False</code> if a shell can't or won't be provided.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=bool)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="check_channel_subsystem_request"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">check_channel_subsystem_request</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>channel</span>,
- <span class=sig-arg>name</span>)</span>
- </h3>
- <p>Determine if a requested subsystem will be provided to the client on
- the given channel. If this method returns <code>True</code>, all future
- I/O through this channel will be assumed to be connected to the
- requested subsystem. An example of a subsystem is
- <code>sftp</code>.</p>
- The default implementation checks for a subsystem handler assigned
- via <a href="paramiko.Transport-class.html#set_subsystem_handler"
- class="link"><code>Transport.set_subsystem_handler</code></a>. If one
- has been set, the handler is invoked and this method returns
- <code>True</code>. Otherwise it returns <code>False</code>.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>channel</b></code> -
- the <a href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a> the pty request arrived
- on.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a>)</i>
- <dd><code><b>name</b></code> -
- name of the requested subsystem.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- <code>True</code> if this channel is now hooked up to the
- requested subsystem; <code>False</code> if that subsystem can't
- or won't be provided.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=bool)</i>
- </dd>
- </dl>
-<p><b>Note:</b> Because the default implementation uses the <a
-href="paramiko.Transport-class.html"
-class="link"><code>Transport</code></a> to identify valid subsystems, you
-probably won't need to override this method.
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="check_channel_window_change_request"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">check_channel_window_change_request</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>channel</span>,
- <span class=sig-arg>width</span>,
- <span class=sig-arg>height</span>,
- <span class=sig-arg>pixelwidth</span>,
- <span class=sig-arg>pixelheight</span>)</span>
- </h3>
- <p>Determine if the pseudo-terminal on the given channel can be
- resized. This only makes sense if a pty was previously allocated on
- it.</p>
- The default implementation always returns <code>False</code>.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>channel</b></code> -
- the <a href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a> the pty request arrived
- on.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a>)</i>
- <dd><code><b>width</b></code> -
- width of screen in characters.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- <dd><code><b>height</b></code> -
- height of screen in characters.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- <dd><code><b>pixelwidth</b></code> -
- width of screen in pixels, if known (may be <code>0</code> if
- unknown).
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- <dd><code><b>pixelheight</b></code> -
- height of screen in pixels, if known (may be <code>0</code> if
- unknown).
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- <code>True</code> if the terminal was resized;
- <code>False</code> if not.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=bool)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="check_global_request"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">check_global_request</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>kind</span>,
- <span class=sig-arg>msg</span>)</span>
- </h3>
- <p>Handle a global request of the given <code>kind</code>. This method
- is called in server mode and client mode, whenever the remote host
- makes a global request. If there are any arguments to the request, they
- will be in <code>msg</code>.</p>
- <p>There aren't any useful global requests defined, aside from port
- forwarding, so usually this type of request is an extension to the
- protocol.</p>
- <p>If the request was successful and you would like to return
- contextual data to the remote host, return a tuple. Items in the tuple
- will be sent back with the successful result. (Note that the items in
- the tuple can only be strings, ints, longs, or bools.)</p>
- The default implementation always returns <code>False</code>,
- indicating that it does not support any global requests.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>kind</b></code> -
- the kind of global request being made.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>msg</b></code> -
- any extra arguments to the request.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.Message-class.html"
- class="link"><code>Message</code></a>)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- <code>True</code> or a tuple of data if the request was
- granted; <code>False</code> otherwise.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=bool)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="get_allowed_auths"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_allowed_auths</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>username</span>)</span>
- </h3>
- <p>Return a list of authentication methods supported by the server.
- This list is sent to clients attempting to authenticate, to inform them
- of authentication methods that might be successful.</p>
- <p>The &quot;list&quot; is actually a string of comma-separated names
- of types of authentication. Possible values are
- <code>&quot;password&quot;</code>, <code>&quot;publickey&quot;</code>,
- and <code>&quot;none&quot;</code>.</p>
- The default implementation always returns
- <code>&quot;password&quot;</code>.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>username</b></code> -
- the username requesting authentication.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- a comma-separated list of authentication types
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.SubsystemHandler-class.html b/docs/private/paramiko.SubsystemHandler-class.html
deleted file mode 100644
index 1d8116a..0000000
--- a/docs/private/paramiko.SubsystemHandler-class.html
+++ /dev/null
@@ -1,352 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.SubsystemHandler</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Class&nbsp;SubsystemHandler
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/paramiko.SubsystemHandler-class.html">hide&nbsp;private</a>]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.SubsystemHandler-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type SubsystemHandler</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
- <a href="../private/threading._Verbose-class.html"><code>_Verbose</code></a> --+
- |
- <a href="threading.Thread-class.html"><code>Thread</code></a> --+
- |
- <b>SubsystemHandler</b>
-</pre><br />
-
-<dl><dt><b>Known Subclasses:</b></dt>
-<dd>
- <a href="paramiko.SFTPServer-class.html"><code>SFTPServer</code></a></dd></dl>
-
-<hr/>
-
-<p>Handler for a subsytem in server mode. If you create a subclass of
-this class and pass it to <a
-href="paramiko.Transport-class.html#set_subsystem_handler"
-class="link"><code>Transport.set_subsystem_handler</code></a>, an object
-of this class will be created for each request for this subsystem. Each
-new object will be executed within its own new thread by calling <a
-href="paramiko.SubsystemHandler-class.html#start_subsystem"
-class="link"><code>start_subsystem</code></a>. When that method
-completes, the channel is closed.</p>
-For example, if you made a subclass <code>MP3Handler</code> and
-registered it as the handler for subsystem <code>&quot;mp3&quot;</code>,
-then whenever a client has successfully authenticated and requests
-subsytem <code>&quot;mp3&quot;</code>, an object of class
-<code>MP3Handler</code> will be created, and <a
-href="paramiko.SubsystemHandler-class.html#start_subsystem"
-class="link"><code>start_subsystem</code></a> will be called on it from a
-new thread.
-<hr/>
-
-<p><b>Since:</b> ivysaur
-</p>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SubsystemHandler-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>channel</span>,
- <span class=summary-sig-arg>name</span>,
- <span class=summary-sig-arg>server</span>)</span></code>
-<br />
-Create a new handler for a channel.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SubsystemHandler-class.html#finish_subsystem" class="summary-sig-name"><code>finish_subsystem</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Perform any cleanup at the end of a subsystem.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> <a href="../private/paramiko.ServerInterface-class.html"
- class="link"><code>ServerInterface</code></a>
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SubsystemHandler-class.html#get_server" class="summary-sig-name"><code>get_server</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return the <a href="../private/paramiko.ServerInterface-class.html"
-class="link"><code>ServerInterface</code></a> object associated with this
-channel and subsystem.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SubsystemHandler-class.html#start_subsystem" class="summary-sig-name"><code>start_subsystem</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>name</span>,
- <span class=summary-sig-arg>transport</span>,
- <span class=summary-sig-arg>channel</span>)</span></code>
-<br />
-Process an ssh subsystem in server mode.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_run"></a><span class="summary-sig"><span class="summary-sig-name">_run</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Thread</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="threading.Thread-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="threading.Thread-class.html#getName" class="summary-sig-name"><code>getName</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="threading.Thread-class.html#isAlive" class="summary-sig-name"><code>isAlive</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="threading.Thread-class.html#isDaemon" class="summary-sig-name"><code>isDaemon</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="threading.Thread-class.html#join" class="summary-sig-name"><code>join</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>timeout</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="threading.Thread-class.html#run" class="summary-sig-name"><code>run</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="threading.Thread-class.html#setDaemon" class="summary-sig-name"><code>setDaemon</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>daemonic</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="threading.Thread-class.html#setName" class="summary-sig-name"><code>setName</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>name</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="threading.Thread-class.html#start" class="summary-sig-name"><code>start</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/threading.Thread-class.html#_set_daemon" class="summary-sig-name"><code>_set_daemon</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from _Verbose</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/threading._Verbose-class.html#_note" class="summary-sig-name"><code>_note</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>format</span>,
- <span class="summary-sig-vararg">*args</span>)</span></code>
-</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__str__() &lt;==&gt; str(x)</td></tr>
-</table><br />
-
-
-<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Class Variable Summary</th></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Thread</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>bool</code></font></td>
-<td><b><a href="../private/threading.Thread-class.html#__initialized"><code>_Thread__initialized</code></a></b> = <span title="False"><code>False </code>
-</span></td></tr>
-</table><br />
-
-
-<!-- =========== START OF METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Method Details</th></tr>
-</table>
-
-<a name="__init__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__init__</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>channel</span>,
- <span class=sig-arg>name</span>,
- <span class=sig-arg>server</span>)</span>
- <br /><i>(Constructor)</i>
- </h3>
- Create a new handler for a channel. This is used by <a
- href="../private/paramiko.ServerInterface-class.html"
- class="link"><code>ServerInterface</code></a> to start up a new handler
- when a channel requests this subsystem. You don't need to override this
- method, but if you do, be sure to pass the <code>channel</code> and
- <code>name</code> parameters through to the original
- <code>__init__</code> method here.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>channel</b></code> -
- the channel associated with this subsystem request.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a>)</i>
- <dd><code><b>name</b></code> -
- name of the requested subsystem.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>server</b></code> -
- the server object for the session that started this
- subsystem
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="../private/paramiko.ServerInterface-class.html"
- class="link"><code>ServerInterface</code></a>)</i>
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="threading.Thread-class.html#__init__"><code>threading.Thread.__init__</code></a></dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="finish_subsystem"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">finish_subsystem</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Perform any cleanup at the end of a subsystem. The default
- implementation just closes the channel.
- <dl><dt></dt><dd>
-<p><b>Since:</b> 1.1
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="get_server"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_server</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Return the <a href="../private/paramiko.ServerInterface-class.html"
- class="link"><code>ServerInterface</code></a> object associated with
- this channel and subsystem.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- <a href="../private/paramiko.ServerInterface-class.html"
- class="link"><code>ServerInterface</code></a>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="start_subsystem"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">start_subsystem</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>name</span>,
- <span class=sig-arg>transport</span>,
- <span class=sig-arg>channel</span>)</span>
- </h3>
- <p>Process an ssh subsystem in server mode. This method is called on a
- new object (and in a new thread) for each subsystem request. It is
- assumed that all subsystem logic will take place here, and when the
- subsystem is finished, this method will return. After this method
- returns, the channel is closed.</p>
- The combination of <code>transport</code> and <code>channel</code>
- are unique; this handler corresponds to exactly one <a
- href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a> on one <a
- href="paramiko.Transport-class.html"
- class="link"><code>Transport</code></a>.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>name</b></code> -
- name of the requested subsystem.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>transport</b></code> -
- the server-mode <a href="paramiko.Transport-class.html"
- class="link"><code>Transport</code></a>.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.Transport-class.html"
- class="link"><code>Transport</code></a>)</i>
- <dd><code><b>channel</b></code> -
- the channel associated with this subsystem request.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a>)</i>
- </dd>
- </dl>
-<p><b>Note:</b> It is the responsibility of this method to exit if the underlying <a
-href="paramiko.Transport-class.html"
-class="link"><code>Transport</code></a> is closed. This can be done by
-checking <a href="paramiko.Transport-class.html#is_active"
-class="link"><code>Transport.is_active</code></a> or noticing an EOF on
-the <a href="paramiko.Channel-class.html"
-class="link"><code>Channel</code></a>. If this method loops forever
-without checking for this case, your python interpreter may refuse to
-exit because this thread will still be running.
-</p>
-
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:48 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.Transport-class.html b/docs/private/paramiko.Transport-class.html
deleted file mode 100644
index 5b96b90..0000000
--- a/docs/private/paramiko.Transport-class.html
+++ /dev/null
@@ -1,2151 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.Transport</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Class&nbsp;Transport
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/paramiko.Transport-class.html">hide&nbsp;private</a>]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.Transport-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type Transport</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
- <a href="../private/threading._Verbose-class.html"><code>_Verbose</code></a> --+
- |
- <a href="threading.Thread-class.html"><code>Thread</code></a> --+
- |
- <b>Transport</b>
-</pre><br />
-
-<hr/>
-
-An SSH Transport attaches to a stream (usually a socket), negotiates
-an encrypted session, authenticates, and then creates stream tunnels,
-called <a href="paramiko.Channel-class.html"
-class="link"><code>Channel</code></a>s, across the session. Multiple
-channels can be multiplexed across a single session (and often are, in
-the case of port forwardings).
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>sock</span>)</span></code>
-<br />
-Create a new SSH session over an existing socket, or socket-like
-object.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__del__"></a><span class="summary-sig"><span class="summary-sig-name">__del__</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Returns a string representation of this object, for debugging.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> <a href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a>
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#accept" class="summary-sig-name"><code>accept</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>timeout</span>)</span></code>
-<br />
-Return the next channel opened by the client over this transport, in
-server mode.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#add_server_key" class="summary-sig-name"><code>add_server_key</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>key</span>)</span></code>
-<br />
-Add a host key to the list of keys used for server mode.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> list
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#auth_interactive" class="summary-sig-name"><code>auth_interactive</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>username</span>,
- <span class=summary-sig-arg>handler</span>,
- <span class=summary-sig-arg>submethods</span>)</span></code>
-<br />
-Authenticate to the server interactively.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> list
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#auth_none" class="summary-sig-name"><code>auth_none</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>username</span>)</span></code>
-<br />
-Try to authenticate to the server using no authentication at all.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> list
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#auth_password" class="summary-sig-name"><code>auth_password</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>username</span>,
- <span class=summary-sig-arg>password</span>,
- <span class=summary-sig-arg>event</span>,
- <span class=summary-sig-arg>fallback</span>)</span></code>
-<br />
-Authenticate to the server using a password.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> list
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#auth_publickey" class="summary-sig-name"><code>auth_publickey</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>username</span>,
- <span class=summary-sig-arg>key</span>,
- <span class=summary-sig-arg>event</span>)</span></code>
-<br />
-Authenticate to the server using a private key.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#close" class="summary-sig-name"><code>close</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Close this session, and any open channels that are tied to it.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#connect" class="summary-sig-name"><code>connect</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>hostkey</span>,
- <span class=summary-sig-arg>username</span>,
- <span class=summary-sig-arg>password</span>,
- <span class=summary-sig-arg>pkey</span>)</span></code>
-<br />
-Negotiate an SSH2 session, and optionally verify the server's host key
-and authenticate using a password or private key.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> Exception
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#get_exception" class="summary-sig-name"><code>get_exception</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return any exception that happened during the last server request.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> bool
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#get_hexdump" class="summary-sig-name"><code>get_hexdump</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return <code>True</code> if the transport is currently logging hex
-dumps of protocol traffic.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#get_log_channel" class="summary-sig-name"><code>get_log_channel</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return the channel name used for this transport's logging.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> <a href="../private/paramiko.PKey-class.html"
- class="link"><code>PKey</code></a>
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#get_remote_server_key" class="summary-sig-name"><code>get_remote_server_key</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return the host key of the server (in client mode).</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> <a href="paramiko.SecurityOptions-class.html"
- class="link"><code>SecurityOptions</code></a>
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#get_security_options" class="summary-sig-name"><code>get_security_options</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return a <a href="paramiko.SecurityOptions-class.html"
-class="link"><code>SecurityOptions</code></a> object which can be used to
-tweak the encryption algorithms this transport will permit, and the order
-of preference for them.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> <a href="../private/paramiko.PKey-class.html"
- class="link"><code>PKey</code></a>
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#get_server_key" class="summary-sig-name"><code>get_server_key</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return the active host key, in server mode.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> string
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#get_username" class="summary-sig-name"><code>get_username</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return the username this connection is authenticated for.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> <a href="paramiko.Message-class.html"
- class="link"><code>Message</code></a>
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#global_request" class="summary-sig-name"><code>global_request</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>kind</span>,
- <span class=summary-sig-arg>data</span>,
- <span class=summary-sig-arg>wait</span>)</span></code>
-<br />
-Make a global request to the remote host.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> bool
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#is_active" class="summary-sig-name"><code>is_active</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return true if this session is active (open).</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> bool
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#is_authenticated" class="summary-sig-name"><code>is_authenticated</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return true if this session is active and authenticated.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> bool
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#load_server_moduli" class="summary-sig-name"><code>load_server_moduli</code></a>(<span class=summary-sig-arg>filename</span>)</span></code>
-<br />
-<i>(optional)</i> Load a file of prime moduli for use in doing
-group-exchange key negotiation in server mode. <i>(Static method)</i>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> <a href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a>
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#open_channel" class="summary-sig-name"><code>open_channel</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>kind</span>,
- <span class=summary-sig-arg>dest_addr</span>,
- <span class=summary-sig-arg>src_addr</span>)</span></code>
-<br />
-Request a new channel to the server.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> <a href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a>
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#open_session" class="summary-sig-name"><code>open_session</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Request a new channel to the server, of type
-<code>&quot;session&quot;</code>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> <a href="paramiko.SFTPClient-class.html"
- class="link"><code>SFTPClient</code></a>
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#open_sftp_client" class="summary-sig-name"><code>open_sftp_client</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Create an SFTP client channel from an open transport.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> bool
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#renegotiate_keys" class="summary-sig-name"><code>renegotiate_keys</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Force this session to switch to new keys.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="run"></a><span class="summary-sig"><span class="summary-sig-name">run</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#send_ignore" class="summary-sig-name"><code>send_ignore</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>bytes</span>)</span></code>
-<br />
-Send a junk packet across the encrypted link.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#set_hexdump" class="summary-sig-name"><code>set_hexdump</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>hexdump</span>)</span></code>
-<br />
-Turn on/off logging a hex dump of protocol traffic at DEBUG level in
-the logs.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#set_keepalive" class="summary-sig-name"><code>set_keepalive</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>interval</span>)</span></code>
-<br />
-Turn on/off keepalive packets (default is off).</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#set_log_channel" class="summary-sig-name"><code>set_log_channel</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>name</span>)</span></code>
-<br />
-Set the channel for this transport's logging.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#set_subsystem_handler" class="summary-sig-name"><code>set_subsystem_handler</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>name</span>,
- <span class=summary-sig-arg>handler</span>,
- <span class="summary-sig-vararg">*larg</span>,
- <span class="summary-sig-kwarg">**kwarg</span>)</span></code>
-<br />
-Set the handler class for a subsystem in server mode.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#start_client" class="summary-sig-name"><code>start_client</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>event</span>)</span></code>
-<br />
-Negotiate a new SSH2 session as a client.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#start_server" class="summary-sig-name"><code>start_server</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>event</span>,
- <span class=summary-sig-arg>server</span>)</span></code>
-<br />
-Negotiate a new SSH2 session as a server.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="stop_thread"></a><span class="summary-sig"><span class="summary-sig-name">stop_thread</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#use_compression" class="summary-sig-name"><code>use_compression</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>compress</span>)</span></code>
-<br />
-Turn on/off compression.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.Transport-class.html#_activate_inbound" class="summary-sig-name"><code>_activate_inbound</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-switch on newly negotiated encryption parameters for inbound
-traffic</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.Transport-class.html#_activate_outbound" class="summary-sig-name"><code>_activate_outbound</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-switch on newly negotiated encryption parameters for outbound
-traffic</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_auth_trigger"></a><span class="summary-sig"><span class="summary-sig-name">_auth_trigger</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_check_banner"></a><span class="summary-sig"><span class="summary-sig-name">_check_banner</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.Transport-class.html#_compute_key" class="summary-sig-name"><code>_compute_key</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>id</span>,
- <span class=summary-sig-arg>nbytes</span>)</span></code>
-<br />
-id is 'A' - 'F' for the various keys used by ssh</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.Transport-class.html#_expect_packet" class="summary-sig-name"><code>_expect_packet</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>type</span>)</span></code>
-<br />
-used by a kex object to register the next packet type it expects to
-see</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_get_cipher"></a><span class="summary-sig"><span class="summary-sig-name">_get_cipher</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>name</span>,
- <span class=summary-sig-arg>key</span>,
- <span class=summary-sig-arg>iv</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.Transport-class.html#_get_modulus_pack" class="summary-sig-name"><code>_get_modulus_pack</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-used by KexGex to find primes for group exchange</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_get_subsystem_handler"></a><span class="summary-sig"><span class="summary-sig-name">_get_subsystem_handler</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>name</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_log"></a><span class="summary-sig"><span class="summary-sig-name">_log</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>level</span>,
- <span class=summary-sig-arg>msg</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_negotiate_keys"></a><span class="summary-sig"><span class="summary-sig-name">_negotiate_keys</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>m</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_parse_channel_open"></a><span class="summary-sig"><span class="summary-sig-name">_parse_channel_open</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>m</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_parse_channel_open_failure"></a><span class="summary-sig"><span class="summary-sig-name">_parse_channel_open_failure</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>m</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_parse_channel_open_success"></a><span class="summary-sig"><span class="summary-sig-name">_parse_channel_open_success</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>m</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_parse_debug"></a><span class="summary-sig"><span class="summary-sig-name">_parse_debug</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>m</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_parse_disconnect"></a><span class="summary-sig"><span class="summary-sig-name">_parse_disconnect</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>m</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_parse_global_request"></a><span class="summary-sig"><span class="summary-sig-name">_parse_global_request</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>m</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_parse_kex_init"></a><span class="summary-sig"><span class="summary-sig-name">_parse_kex_init</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>m</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_parse_newkeys"></a><span class="summary-sig"><span class="summary-sig-name">_parse_newkeys</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>m</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_parse_request_failure"></a><span class="summary-sig"><span class="summary-sig-name">_parse_request_failure</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>m</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_parse_request_success"></a><span class="summary-sig"><span class="summary-sig-name">_parse_request_success</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>m</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.Transport-class.html#_send_kex_init" class="summary-sig-name"><code>_send_kex_init</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-announce to the other side that we'd like to negotiate keys, and what
-kind of key negotiation we support.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_send_message"></a><span class="summary-sig"><span class="summary-sig-name">_send_message</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>data</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.Transport-class.html#_send_user_message" class="summary-sig-name"><code>_send_user_message</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>data</span>)</span></code>
-<br />
-send a message, but block if we're in key negotiation.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.Transport-class.html#_set_K_H" class="summary-sig-name"><code>_set_K_H</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>k</span>,
- <span class=summary-sig-arg>h</span>)</span></code>
-<br />
-used by a kex object to set the K (root key) and H (exchange hash)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.Transport-class.html#_unlink_channel" class="summary-sig-name"><code>_unlink_channel</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>chanid</span>)</span></code>
-<br />
-used by a Channel to remove itself from the active channel list</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_verify_key"></a><span class="summary-sig"><span class="summary-sig-name">_verify_key</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>host_key</span>,
- <span class=summary-sig-arg>sig</span>)</span></code>
-</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Thread</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="threading.Thread-class.html#getName" class="summary-sig-name"><code>getName</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="threading.Thread-class.html#isAlive" class="summary-sig-name"><code>isAlive</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="threading.Thread-class.html#isDaemon" class="summary-sig-name"><code>isDaemon</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="threading.Thread-class.html#join" class="summary-sig-name"><code>join</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>timeout</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="threading.Thread-class.html#setDaemon" class="summary-sig-name"><code>setDaemon</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>daemonic</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="threading.Thread-class.html#setName" class="summary-sig-name"><code>setName</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>name</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="threading.Thread-class.html#start" class="summary-sig-name"><code>start</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/threading.Thread-class.html#_set_daemon" class="summary-sig-name"><code>_set_daemon</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from _Verbose</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/threading._Verbose-class.html#_note" class="summary-sig-name"><code>_note</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>format</span>,
- <span class="summary-sig-vararg">*args</span>)</span></code>
-</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__str__() &lt;==&gt; str(x)</td></tr>
-</table><br />
-
-
-<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Class Variable Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>dict</code></font></td>
-<td><b><a href="../private/paramiko.Transport-class.html#_channel_handler_table"><code>_channel_handler_table</code></a></b> = <span title="{96: &lt;unbound method Channel._handle_eof&gt;, 97: &lt;unbound method Channel._handle_close&gt;, 98: &lt;unbound method Channel._handle_request&gt;, 99: &lt;unbound method Channel._request_success&gt;, 100: &lt;unbound method Channel._request_failed&gt;, 93: &lt;unbound method Channel._window_adjust&gt;, 94: &lt;unbound method Channel._feed&gt;, 95: &lt;unbound method Channel._feed_extended&gt;}"><code>{96:&nbsp;&lt;unbound&nbsp;method&nbsp;Channel._h<span class="variable-ellipsis">...</span></code>
-</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>dict</code></font></td>
-<td><b><a href="../private/paramiko.Transport-class.html#_cipher_info"><code>_cipher_info</code></a></b> = <span title="{'blowfish-cbc': {'block-size': 8, 'key-size': 16, 'class': &lt;module 'Crypto.Cipher.Blowfish' from '/usr/lib/python2.4/site-packages/Crypto/Cipher/Blowfish.so'&gt;, 'mode': 2}, '3des-cbc': {'block-size': 8, 'key-size': 24, 'class': &lt;module 'Crypto.Cipher.DES3' from '/usr/lib/python2.4/site-packages/Crypto/Cipher/DES3.so'&gt;, 'mode': 2}, 'aes256-cbc': {'block-size': 16, 'key-size': 32, 'class': &lt;module 'Crypto.Cipher.AES' from '/usr/lib/python2.4/site-packages/Crypto/Cipher/AES.so'&gt;, 'mode': 2}, 'aes128-cbc': {'block-size': 16, 'key-size': 16, 'class': &lt;module 'Crypto.Cipher.AES' from '/usr/lib/py..."><code>{'blowfish-cbc':&nbsp;{'block-size':&nbsp;8,&nbsp;'key-s<span class="variable-ellipsis">...</span></code>
-</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
-<td><b><a href="../private/paramiko.Transport-class.html#_CLIENT_ID"><code>_CLIENT_ID</code></a></b> = <span title="'paramiko_1.5.2'"><code><span class="variable-quote">'</span>paramiko_1.5.2<span class="variable-quote">'</span> </code>
-</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>dict</code></font></td>
-<td><b><a href="../private/paramiko.Transport-class.html#_compression_info"><code>_compression_info</code></a></b> = <span title="{'none': (None, None), 'zlib': (&lt;class 'paramiko.compress.ZlibCompressor'&gt;, &lt;class 'paramiko.compress.ZlibDecompressor'&gt;), 'zlib@openssh.com': (&lt;class 'paramiko.compress.ZlibCompressor'&gt;, &lt;class 'paramiko.compress.ZlibDecompressor'&gt;)}"><code>{'none':&nbsp;(None,&nbsp;None),&nbsp;'zlib':&nbsp;(&lt;cla<span class="variable-ellipsis">...</span></code>
-</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>dict</code></font></td>
-<td><b><a href="../private/paramiko.Transport-class.html#_handler_table"><code>_handler_table</code></a></b> = <span title="{80: &lt;function _parse_global_request at 0xb7b13fb4&gt;, 81: &lt;function _parse_request_success at 0xb7b1e02c&gt;, 82: &lt;function _parse_request_failure at 0xb7b1e064&gt;, 20: &lt;function _negotiate_keys at 0xb7b13dbc&gt;, 21: &lt;function _parse_newkeys at 0xb7b13f44&gt;, 90: &lt;function _parse_channel_open at 0xb7b1e10c&gt;, 91: &lt;function _parse_channel_open_success at 0xb7b1e09c&gt;, 92: &lt;function _parse_channel_open_failure at 0xb7b1e0d4&gt;}"><code>{80:&nbsp;&lt;function&nbsp;_parse_global_request&nbsp;at<span class="variable-ellipsis">...</span></code>
-</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>dict</code></font></td>
-<td><b><a href="../private/paramiko.Transport-class.html#_kex_info"><code>_kex_info</code></a></b> = <span title="{'diffie-hellman-group1-sha1': &lt;class 'paramiko.kex_group1.KexGroup1'&gt;, 'diffie-hellman-group-exchange-sha1': &lt;class 'paramiko.kex_gex.KexGex'&gt;}"><code>{'diffie-hellman-group1-sha1':&nbsp;&lt;class&nbsp;'param<span class="variable-ellipsis">...</span></code>
-</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>dict</code></font></td>
-<td><b><a href="../private/paramiko.Transport-class.html#_key_info"><code>_key_info</code></a></b> = <span title="{'ssh-dss': &lt;class 'paramiko.DSSKey'&gt;, 'ssh-rsa': &lt;class 'paramiko.RSAKey'&gt;}"><code>{'ssh-dss':&nbsp;&lt;class&nbsp;'paramiko.DSSKey'&gt;,&nbsp;'ssh-<span class="variable-ellipsis">...</span></code>
-</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>dict</code></font></td>
-<td><b><a href="../private/paramiko.Transport-class.html#_mac_info"><code>_mac_info</code></a></b> = <span title="{'hmac-sha1': {'class': &lt;module 'Crypto.Hash.SHA' from '/usr/lib/python2.4/site-packages/Crypto/Hash/SHA.pyc'&gt;, 'size': 20}, 'hmac-md5-96': {'class': &lt;module 'Crypto.Hash.MD5' from '/usr/lib/python2.4/site-packages/Crypto/Hash/MD5.pyc'&gt;, 'size': 12}, 'hmac-sha1-96': {'class': &lt;module 'Crypto.Hash.SHA' from '/usr/lib/python2.4/site-packages/Crypto/Hash/SHA.pyc'&gt;, 'size': 12}, 'hmac-md5': {'class': &lt;module 'Crypto.Hash.MD5' from '/usr/lib/python2.4/site-packages/Crypto/Hash/MD5.pyc'&gt;, 'size': 16}}"><code>{'hmac-sha1':&nbsp;{'class':&nbsp;&lt;module&nbsp;'Crypto.Hash<span class="variable-ellipsis">...</span></code>
-</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>NoneType</code></font></td>
-<td><b><a href="../private/paramiko.Transport-class.html#_modulus_pack"><code>_modulus_pack</code></a></b> = <span title="None">None&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>tuple</code></font></td>
-<td><b><a href="../private/paramiko.Transport-class.html#_preferred_ciphers"><code>_preferred_ciphers</code></a></b> = <span title="('aes128-cbc', 'blowfish-cbc', 'aes256-cbc', '3des-cbc')"><code>('aes128-cbc',&nbsp;'blowfish-cbc',&nbsp;'aes<span class="variable-ellipsis">...</span></code>
-</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>tuple</code></font></td>
-<td><b><a href="../private/paramiko.Transport-class.html#_preferred_compression"><code>_preferred_compression</code></a></b> = <span title="('none',)"><code>('none',) </code>
-</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>tuple</code></font></td>
-<td><b><a href="../private/paramiko.Transport-class.html#_preferred_kex"><code>_preferred_kex</code></a></b> = <span title="('diffie-hellman-group1-sha1', 'diffie-hellman-group-exchange-sha1')"><code>('diffie-hellman-group1-sha1',&nbsp;'diffie-<span class="variable-ellipsis">...</span></code>
-</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>tuple</code></font></td>
-<td><b><a href="../private/paramiko.Transport-class.html#_preferred_keys"><code>_preferred_keys</code></a></b> = <span title="('ssh-rsa', 'ssh-dss')"><code>('ssh-rsa',&nbsp;'ssh-dss') </code>
-</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>tuple</code></font></td>
-<td><b><a href="../private/paramiko.Transport-class.html#_preferred_macs"><code>_preferred_macs</code></a></b> = <span title="('hmac-sha1', 'hmac-md5', 'hmac-sha1-96', 'hmac-md5-96')"><code>('hmac-sha1',&nbsp;'hmac-md5',&nbsp;'hmac-sha1-9<span class="variable-ellipsis">...</span></code>
-</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
-<td><b><a href="../private/paramiko.Transport-class.html#_PROTO_ID"><code>_PROTO_ID</code></a></b> = <span title="'2.0'"><code><span class="variable-quote">'</span>2.0<span class="variable-quote">'</span> </code>
-</span></td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Thread</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>bool</code></font></td>
-<td><b><a href="../private/threading.Thread-class.html#__initialized"><code>_Thread__initialized</code></a></b> = <span title="False"><code>False </code>
-</span></td></tr>
-</table><br />
-
-
-<!-- =========== START OF INSTANCE METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Instance Method Details</th></tr>
-</table>
-
-<a name="__init__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__init__</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>sock</span>)</span>
- <br /><i>(Constructor)</i>
- </h3>
- <p>Create a new SSH session over an existing socket, or socket-like
- object. This only creates the Transport object; it doesn't begin the
- SSH session yet. Use <a href="paramiko.Transport-class.html#connect"
- class="link"><code>connect</code></a> or <a
- href="paramiko.Transport-class.html#start_client"
- class="link"><code>start_client</code></a> to begin a client session,
- or <a href="paramiko.Transport-class.html#start_server"
- class="link"><code>start_server</code></a> to begin a server
- session.</p>
- If the object is not actually a socket, it must have the following
- methods:
- <ul>
- <li>
- <code>send(str)</code>: Writes from 1 to <code>len(str)</code>
- bytes, and returns an int representing the number of bytes written.
- Returns 0 or raises <code>EOFError</code> if the stream has been
- closed.
- </li>
- <li>
- <code>recv(int)</code>: Reads from 1 to <code>int</code> bytes
- and returns them as a string. Returns 0 or raises
- <code>EOFError</code> if the stream has been closed.
- </li>
- <li>
- <code>close()</code>: Closes the socket.
- </li>
- <li>
- <code>settimeout(n)</code>: Sets a (float) timeout on I/O
- operations.
- </li>
- </ul>
- For ease of use, you may also pass in an address (as a tuple) or a
- host string as the <code>sock</code> argument. (A host string is a
- hostname with an optional port (separated by
- <code>&quot;:&quot;</code>) which will be converted into a tuple of
- <code>(hostname, port)</code>.) A socket will be connected to this
- address and used for communication. Exceptions from the
- <code>socket</code> call may be thrown in this case.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>sock</b></code> -
- a socket or socket-like object to create the session over.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=socket)</i>
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="threading.Thread-class.html#__init__"><code>threading.Thread.__init__</code></a></dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="__repr__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__repr__</span>(<span class=sig-arg>self</span>)</span>
- <br /><i>(Representation operator)</i>
- </h3>
- Returns a string representation of this object, for debugging.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- str
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="threading.Thread-class.html#__repr__"><code>threading.Thread.__repr__</code></a></dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="accept"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">accept</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>timeout</span>=<span class=sig-default>None</span>)</span>
- </h3>
- Return the next channel opened by the client over this transport, in
- server mode. If no channel is opened before the given timeout,
- <code>None</code> is returned.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>timeout</b></code> -
- seconds to wait for a channel, or <code>None</code> to wait
- forever
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- a new Channel opened by the client
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a>)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="add_server_key"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">add_server_key</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>key</span>)</span>
- </h3>
- Add a host key to the list of keys used for server mode. When
- behaving as a server, the host key is used to sign certain packets
- during the SSH2 negotiation, so that the client can trust that we are
- who we say 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.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>key</b></code> -
- the host key to add, usually an <a
- href="paramiko.RSAKey-class.html"
- class="link"><code>RSAKey</code></a> or <a
- href="paramiko.DSSKey-class.html"
- class="link"><code>DSSKey</code></a>.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="../private/paramiko.PKey-class.html"
- class="link"><code>PKey</code></a>)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="auth_interactive"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">auth_interactive</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>username</span>,
- <span class=sig-arg>handler</span>,
- <span class=sig-arg>submethods</span>=<span class=sig-default>''</span>)</span>
- </h3>
- <p>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.</p>
- <p>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.</p>
- <p>The handler is expected to be a callable that will handle calls of
- the form: <code>handler(title, instructions, prompt_list)</code>. The
- <code>title</code> is meant to be a dialog-window title, and the
- <code>instructions</code> are user instructions (both are strings).
- <code>prompt_list</code> will be a list of prompts, each prompt being a
- tuple of <code>(str, bool)</code>. The string is the prompt and the
- boolean indicates whether the user text should be echoed.</p>
- <p>A sample call would thus be: <code>handler('title', 'instructions',
- [('Password:', False)])</code>.</p>
- <p>The handler should return a list or tuple of answers to the server's
- questions.</p>
- 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.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>username</b></code> -
- the username to authenticate as
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- <dd><code><b>handler</b></code> -
- a handler for responding to server questions
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=callable)</i>
- <dd><code><b>submethods</b></code> -
- a string list of desired submethods (optional)
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- list of auth types permissible for the next stage of
- authentication (normally empty).
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=list)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>BadAuthenticationType</b></code> -
- if public-key authentication isn't allowed by the server for
- this user
- <dd><code><b>SSHException</b></code> -
- if the authentication failed
- </dl>
-<p><b>Since:</b> 1.5
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="auth_none"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">auth_none</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>username</span>)</span>
- </h3>
- Try to authenticate to the server using no authentication at all.
- This will almost always fail. It may be useful for determining the list
- of authentication types supported by the server, by catching the <a
- href="paramiko.BadAuthenticationType-class.html"
- class="link"><code>BadAuthenticationType</code></a> exception
- raised.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>username</b></code> -
- the username to authenticate as
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- list of auth types permissible for the next stage of
- authentication (normally empty)
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=list)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>BadAuthenticationType</b></code> -
- if &quot;none&quot; authentication isn't allowed by the server
- for this user
- <dd><code><b>SSHException</b></code> -
- if the authentication failed due to a network error
- </dl>
-<p><b>Since:</b> 1.5
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="auth_password"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">auth_password</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>username</span>,
- <span class=sig-arg>password</span>,
- <span class=sig-arg>event</span>=<span class=sig-default>None</span>,
- <span class=sig-arg>fallback</span>=<span class=sig-default>True</span>)</span>
- </h3>
- <p>Authenticate to the server using a password. The username and
- password are sent over an encrypted link.</p>
- <p>If an <code>event</code> is passed in, this method will return
- immediately, and the event will be triggered once authentication
- succeeds or fails. On success, <a
- href="paramiko.Transport-class.html#is_authenticated"
- class="link"><code>is_authenticated</code></a> will return
- <code>True</code>. On failure, you may use <a
- href="paramiko.Transport-class.html#get_exception"
- class="link"><code>get_exception</code></a> to get more detailed error
- information.</p>
- <p>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.</p>
- <p>Since 1.5, if no event is passed and <code>fallback</code> is
- <code>True</code> (the default), if the server doesn't support plain
- password authentication but does support so-called
- &quot;keyboard-interactive&quot; mode, an attempt will be made to
- authenticate using this interactive mode. If it fails, the normal
- exception will be thrown as if the attempt had never been 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 &quot;more secure&quot;. (It's not.)</p>
- 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.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>username</b></code> -
- the username to authenticate as
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- <dd><code><b>password</b></code> -
- the password to authenticate with
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- <dd><code><b>event</b></code> -
- an event to trigger when the authentication attempt is
- complete (whether it was successful or not)
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=threading.Event)</i>
- <dd><code><b>fallback</b></code> -
- <code>True</code> if an attempt at an automated
- &quot;interactive&quot; password auth should be made if the
- server doesn't support normal password auth
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=bool)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- list of auth types permissible for the next stage of
- authentication (normally empty)
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=list)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>BadAuthenticationType</b></code> -
- if password authentication isn't allowed by the server for
- this user (and no event was passed in)
- <dd><code><b>SSHException</b></code> -
- if the authentication failed (and no event was passed in)
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="auth_publickey"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">auth_publickey</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>username</span>,
- <span class=sig-arg>key</span>,
- <span class=sig-arg>event</span>=<span class=sig-default>None</span>)</span>
- </h3>
- <p>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.</p>
- <p>If an <code>event</code> is passed in, this method will return
- immediately, and the event will be triggered once authentication
- succeeds or fails. On success, <a
- href="paramiko.Transport-class.html#is_authenticated"
- class="link"><code>is_authenticated</code></a> will return
- <code>True</code>. On failure, you may use <a
- href="paramiko.Transport-class.html#get_exception"
- class="link"><code>get_exception</code></a> to get more detailed error
- information.</p>
- <p>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.</p>
- 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.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>username</b></code> -
- the username to authenticate as
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- <dd><code><b>key</b></code> -
- the private key to authenticate with
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="../private/paramiko.PKey-class.html"
- class="link"><code>PKey</code></a>)</i>
- <dd><code><b>event</b></code> -
- an event to trigger when the authentication attempt is
- complete (whether it was successful or not)
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=threading.Event)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- list of auth types permissible for the next stage of
- authentication (normally empty).
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=list)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>BadAuthenticationType</b></code> -
- if public-key authentication isn't allowed by the server for
- this user (and no event was passed in).
- <dd><code><b>SSHException</b></code> -
- if the authentication failed (and no event was passed in).
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="close"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">close</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Close this session, and any open channels that are tied to it.
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-
-<a name="connect"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">connect</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>hostkey</span>=<span class=sig-default>None</span>,
- <span class=sig-arg>username</span>=<span class=sig-default>''</span>,
- <span class=sig-arg>password</span>=<span class=sig-default>None</span>,
- <span class=sig-arg>pkey</span>=<span class=sig-default>None</span>)</span>
- </h3>
- <p>Negotiate an SSH2 session, and optionally verify the server's host
- key and authenticate using a password or private key. This is a
- shortcut for <a href="paramiko.Transport-class.html#start_client"
- class="link"><code>start_client</code></a>, <a
- href="paramiko.Transport-class.html#get_remote_server_key"
- class="link"><code>get_remote_server_key</code></a>, and <a
- href="paramiko.Transport-class.html#auth_password"
- class="link"><code>Transport.auth_password</code></a> or <a
- href="paramiko.Transport-class.html#auth_publickey"
- class="link"><code>Transport.auth_publickey</code></a>. Use those
- methods if you want more control.</p>
- You can use this method immediately after creating a Transport to
- negotiate encryption with a server. If it fails, an exception will be
- thrown. On success, the method will return cleanly, and an encrypted
- session exists. You may immediately call <a
- href="paramiko.Transport-class.html#open_channel"
- class="link"><code>open_channel</code></a> or <a
- href="paramiko.Transport-class.html#open_session"
- class="link"><code>open_session</code></a> to get a <a
- href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a> object, which is used for data
- transfer.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>hostkey</b></code> -
- the host key expected from the server, or <code>None</code> if
- you don't want to do host key verification.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="../private/paramiko.PKey-class.html"
- class="link"><code>PKey</code></a>)</i>
- <dd><code><b>username</b></code> -
- the username to authenticate as.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>password</b></code> -
- a password to use for authentication, if you want to use
- password authentication; otherwise <code>None</code>.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>pkey</b></code> -
- a private key to use for authentication, if you want to use
- private key authentication; otherwise <code>None</code>.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="../private/paramiko.PKey-class.html"
- class="link"><code>PKey</code></a>)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>SSHException</b></code> -
- if the SSH2 negotiation fails, the host key supplied by the
- server is incorrect, or authentication fails.
- </dl>
-<p><b>Note:</b> If you fail to supply a password or private key, this method may
-succeed, but a subsequent <a
-href="paramiko.Transport-class.html#open_channel"
-class="link"><code>open_channel</code></a> or <a
-href="paramiko.Transport-class.html#open_session"
-class="link"><code>open_session</code></a> call may fail because you
-haven't authenticated yet.
-</p>
-
-<p><b>Since:</b> doduo
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="get_exception"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_exception</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Return any exception that happened during the last server request.
- This can be used to fetch more specific error information after using
- calls like <a href="paramiko.Transport-class.html#start_client"
- class="link"><code>start_client</code></a>. The exception (if any) is
- cleared after this call.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- an exception, or <code>None</code> if there is no stored
- exception.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=Exception)</i>
- </dd>
- </dl>
-<p><b>Since:</b> 1.1
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="get_hexdump"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_hexdump</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Return <code>True</code> if the transport is currently logging hex
- dumps of protocol traffic.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- <code>True</code> if hex dumps are being logged
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=bool)</i>
- </dd>
- </dl>
-<p><b>Since:</b> 1.4
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="get_log_channel"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_log_channel</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Return the channel name used for this transport's logging.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- channel name.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
-<p><b>Since:</b> 1.2
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="get_remote_server_key"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_remote_server_key</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Return the host key of the server (in client mode).
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- public key of the remote server.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="../private/paramiko.PKey-class.html"
- class="link"><code>PKey</code></a>)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>SSHException</b></code> -
- if no session is currently active.
- </dl>
-<p><b>Note:</b> Previously this call returned a tuple of (key type, key string). You
-can get the same effect by calling <a
-href="../private/paramiko.PKey-class.html#get_name"
-class="link"><code>PKey.get_name</code></a> for the key type, and
-<code>str(key)</code> for the key string.
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="get_security_options"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_security_options</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Return a <a href="paramiko.SecurityOptions-class.html"
- class="link"><code>SecurityOptions</code></a> object which can be used
- to tweak the encryption algorithms this transport will permit, and the
- order of preference for them.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- an object that can be used to change the preferred algorithms
- for encryption, digest (hash), public key, and key exchange.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.SecurityOptions-class.html"
- class="link"><code>SecurityOptions</code></a>)</i>
- </dd>
- </dl>
-<p><b>Since:</b> ivysaur
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="get_server_key"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_server_key</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Return the active host key, in server mode. After negotiating with
- the client, this method will return the negotiated host key. If only
- one type of host key was set with <a
- href="paramiko.Transport-class.html#add_server_key"
- class="link"><code>add_server_key</code></a>, that's the only key that
- will ever be returned. But in cases where you have set more than one
- type of host key (for example, an RSA key and a DSS key), the key type
- will be negotiated by the client, and this method will return the key
- of the type agreed on. If the host key has not been negotiated yet,
- <code>None</code> is returned. In client mode, the behavior is
- undefined.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- host key of the type negotiated by the client, or
- <code>None</code>.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="../private/paramiko.PKey-class.html"
- class="link"><code>PKey</code></a>)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="get_username"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_username</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Return the username this connection is authenticated for. If the
- session is not authenticated (or authentication failed), this method
- returns <code>None</code>.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- username that was authenticated, or <code>None</code>.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- </dd>
- </dl>
-<p><b>Since:</b> fearow
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="global_request"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">global_request</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>kind</span>,
- <span class=sig-arg>data</span>=<span class=sig-default>None</span>,
- <span class=sig-arg>wait</span>=<span class=sig-default>True</span>)</span>
- </h3>
- Make a global request to the remote host. These are normally
- extensions to the SSH2 protocol.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>kind</b></code> -
- name of the request.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>data</b></code> -
- an optional tuple containing additional data to attach to the
- request.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=tuple)</i>
- <dd><code><b>wait</b></code> -
- <code>True</code> if this method should not return until a
- response is received; <code>False</code> otherwise.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=bool)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- a <a href="paramiko.Message-class.html"
- class="link"><code>Message</code></a> containing possible
- additional data if the request was successful (or an empty <a
- href="paramiko.Message-class.html"
- class="link"><code>Message</code></a> if <code>wait</code> was
- <code>False</code>); <code>None</code> if the request was
- denied.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.Message-class.html"
- class="link"><code>Message</code></a>)</i>
- </dd>
- </dl>
-<p><b>Since:</b> fearow
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="is_active"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">is_active</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Return true if this session is active (open).
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- True if the session is still active (open); False if the
- session is closed.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=bool)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="is_authenticated"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">is_authenticated</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Return true if this session is active and authenticated.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- True if the session is still open and has been authenticated
- successfully; False if authentication failed and/or the session
- is closed.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=bool)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="open_channel"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">open_channel</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>kind</span>,
- <span class=sig-arg>dest_addr</span>=<span class=sig-default>None</span>,
- <span class=sig-arg>src_addr</span>=<span class=sig-default>None</span>)</span>
- </h3>
- Request a new channel to the server. <a
- href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a>s are socket-like objects used for
- the actual transfer of data across the session. You may only request a
- channel after negotiating encryption (using <a
- href="paramiko.Transport-class.html#connect"
- class="link"><code>connect</code></a> or <a
- href="paramiko.Transport-class.html#start_client"
- class="link"><code>start_client</code></a>) and authenticating.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>kind</b></code> -
- the kind of channel requested (usually
- <code>&quot;session&quot;</code>,
- <code>&quot;forwarded-tcpip&quot;</code> or
- <code>&quot;direct-tcpip&quot;</code>).
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>dest_addr</b></code> -
- the destination address of this port forwarding, if
- <code>kind</code> is <code>&quot;forwarded-tcpip&quot;</code> or
- <code>&quot;direct-tcpip&quot;</code> (ignored for other channel
- types).
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=(str, int))</i>
- <dd><code><b>src_addr</b></code> -
- the source address of this port forwarding, if
- <code>kind</code> is <code>&quot;forwarded-tcpip&quot;</code> or
- <code>&quot;direct-tcpip&quot;</code>.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=(str, int))</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- a new <a href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a> on success, or
- <code>None</code> if the request is rejected or the session ends
- prematurely.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a>)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="open_session"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">open_session</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Request a new channel to the server, of type
- <code>&quot;session&quot;</code>. This is just an alias for
- <code>open_channel('session')</code>.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- a new <a href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a> on success, or
- <code>None</code> if the request is rejected or the session ends
- prematurely.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a>)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="open_sftp_client"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">open_sftp_client</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Create an SFTP client channel from an open transport. On success, an
- SFTP session will be opened with the remote host, and a new SFTPClient
- object will be returned.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- a new <a href="paramiko.SFTPClient-class.html"
- class="link"><code>SFTPClient</code></a> object, referring to an
- sftp session (channel) across this transport
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.SFTPClient-class.html"
- class="link"><code>SFTPClient</code></a>)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="renegotiate_keys"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">renegotiate_keys</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Force this session to switch to new keys. Normally this is done
- automatically after the session hits a certain number of packets or
- bytes sent or received, but this method gives you the option of forcing
- new keys whenever you want. Negotiating new keys causes a pause in
- traffic both ways as the two sides swap keys and do computations. This
- method returns when the session has switched to new keys, or the
- session has died mid-negotiation.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- True if the renegotiation was successful, and the link is
- using new keys; False if the session dropped during
- renegotiation.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=bool)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="send_ignore"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">send_ignore</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>bytes</span>=<span class=sig-default>None</span>)</span>
- </h3>
- Send a junk packet across the encrypted link. This is sometimes used
- to add &quot;noise&quot; to a connection to confuse would-be attackers.
- It can also be used as a keep-alive for long lived connections
- traversing firewalls.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>bytes</b></code> -
- the number of random bytes to send in the payload of the
- ignored packet -- defaults to a random number from 10 to 41.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
-<p><b>Since:</b> fearow
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="set_hexdump"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">set_hexdump</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>hexdump</span>)</span>
- </h3>
- Turn on/off logging a hex dump of protocol traffic at DEBUG level in
- the logs. Normally you would want this off (which is the default), but
- if you are debugging something, it may be useful.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>hexdump</b></code> -
- <code>True</code> to log protocol traffix (in hex) to the log;
- <code>False</code> otherwise.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=bool)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="set_keepalive"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">set_keepalive</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>interval</span>)</span>
- </h3>
- Turn on/off keepalive packets (default is off). If this is set,
- after <code>interval</code> seconds without sending any data over the
- connection, a &quot;keepalive&quot; packet will be sent (and ignored by
- the remote host). This can be useful to keep connections alive over a
- NAT, for example.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>interval</b></code> -
- seconds to wait before sending a keepalive packet (or 0 to
- disable keepalives).
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
-<p><b>Since:</b> fearow
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="set_log_channel"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">set_log_channel</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>name</span>)</span>
- </h3>
- Set the channel for this transport's logging. The default is
- <code>&quot;paramiko.transport&quot;</code> but it can be set to
- anything you want. (See the <code>logging</code> module for more info.)
- SSH Channels will log to a sub-channel of the one specified.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>name</b></code> -
- new channel name for logging.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
-<p><b>Since:</b> 1.1
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="set_subsystem_handler"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">set_subsystem_handler</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>name</span>,
- <span class=sig-arg>handler</span>,
- <span class="sig-vararg">*larg</span>,
- <span class="sig-kwarg">**kwarg</span>)</span>
- </h3>
- <p>Set the handler class for a subsystem in server mode. If a request
- for this subsystem is made on an open ssh channel later, this handler
- will be constructed and called -- see <a
- href="paramiko.SubsystemHandler-class.html"
- class="link"><code>SubsystemHandler</code></a> for more detailed
- documentation.</p>
- Any extra parameters (including keyword arguments) are saved and
- passed to the <a href="paramiko.SubsystemHandler-class.html"
- class="link"><code>SubsystemHandler</code></a> constructor later.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>name</b></code> -
- name of the subsystem.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>handler</b></code> -
- subclass of <a href="paramiko.SubsystemHandler-class.html"
- class="link"><code>SubsystemHandler</code></a> that handles this
- subsystem.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=class)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="start_client"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">start_client</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>event</span>=<span class=sig-default>None</span>)</span>
- </h3>
- <p>Negotiate a new SSH2 session as a client. This is the first step
- after creating a new <a href="paramiko.Transport-class.html"
- class="link"><code>Transport</code></a>. A separate thread is created
- for protocol negotiation.</p>
- <p>If an event is passed in, this method returns immediately. When
- negotiation is done (successful or not), the given <code>Event</code>
- will be triggered. On failure, <a
- href="paramiko.Transport-class.html#is_active"
- class="link"><code>is_active</code></a> will return
- <code>False</code>.</p>
- <p>(Since 1.4) If <code>event</code> is <code>None</code>, this method
- will not return until negotation is done. On success, the method
- returns normally. Otherwise an SSHException is raised.</p>
- After a successful negotiation, you will usually want to
- authenticate, calling <a
- href="paramiko.Transport-class.html#auth_password"
- class="link"><code>auth_password</code></a> or <a
- href="paramiko.Transport-class.html#auth_publickey"
- class="link"><code>auth_publickey</code></a>.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>event</b></code> -
- an event to trigger when negotiation is complete
- (optional)
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=threading.Event)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>SSHException</b></code> -
- if negotiation fails (and no <code>event</code> was passed
- in)
- </dl>
-<p><b>Notes:</b>
-<ul>
- <li><a href="paramiko.Transport-class.html#connect"
-class="link"><code>connect</code></a> is a simpler method for connecting
-as a client.
-</li>
- <li>After calling this method (or <a
-href="paramiko.Transport-class.html#start_server"
-class="link"><code>start_server</code></a> or <a
-href="paramiko.Transport-class.html#connect"
-class="link"><code>connect</code></a>), you should no longer directly
-read from or write to the original socket object.
-
- </li>
-</ul></p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="start_server"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">start_server</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>event</span>=<span class=sig-default>None</span>,
- <span class=sig-arg>server</span>=<span class=sig-default>None</span>)</span>
- </h3>
- <p>Negotiate a new SSH2 session as a server. This is the first step
- after creating a new <a href="paramiko.Transport-class.html"
- class="link"><code>Transport</code></a> and setting up your server host
- key(s). A separate thread is created for protocol negotiation.</p>
- <p>If an event is passed in, this method returns immediately. When
- negotiation is done (successful or not), the given <code>Event</code>
- will be triggered. On failure, <a
- href="paramiko.Transport-class.html#is_active"
- class="link"><code>is_active</code></a> will return
- <code>False</code>.</p>
- <p>(Since 1.4) If <code>event</code> is <code>None</code>, this method
- will not return until negotation is done. On success, the method
- returns normally. Otherwise an SSHException is raised.</p>
- <p>After a successful negotiation, the client will need to
- authenticate. Override the methods <a
- href="../private/paramiko.ServerInterface-class.html#get_allowed_auths"
- class="link"><code>get_allowed_auths</code></a>, <a
- href="../private/paramiko.ServerInterface-class.html#check_auth_none"
- class="link"><code>check_auth_none</code></a>, <a
- href="../private/paramiko.ServerInterface-class.html#check_auth_password"
- class="link"><code>check_auth_password</code></a>, and <a
- href="../private/paramiko.ServerInterface-class.html#check_auth_publickey"
- class="link"><code>check_auth_publickey</code></a> in the given
- <code>server</code> object to control the authentication process.</p>
- After a successful authentication, the client should request to open
- a channel. Override <a
- href="../private/paramiko.ServerInterface-class.html#check_channel_request"
- class="link"><code>check_channel_request</code></a> in the given
- <code>server</code> object to allow channels to be opened.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>event</b></code> -
- an event to trigger when negotiation is complete.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=threading.Event)</i>
- <dd><code><b>server</b></code> -
- an object used to perform authentication and create <a
- href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a>s.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="../private/paramiko.ServerInterface-class.html"
- class="link"><code>server.ServerInterface</code></a>)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>SSHException</b></code> -
- if negotiation fails (and no <code>event</code> was passed
- in)
- </dl>
-<p><b>Note:</b> After calling this method (or <a
-href="paramiko.Transport-class.html#start_client"
-class="link"><code>start_client</code></a> or <a
-href="paramiko.Transport-class.html#connect"
-class="link"><code>connect</code></a>), you should no longer directly
-read from or write to the original socket object.
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="use_compression"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">use_compression</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>compress</span>=<span class=sig-default>True</span>)</span>
- </h3>
- Turn on/off compression. This will only have an affect before
- starting the transport (ie before calling <a
- href="paramiko.Transport-class.html#connect"
- class="link"><code>connect</code></a>, etc). By default, compression is
- off since it negatively affects interactive sessions and is not fully
- tested.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>compress</b></code> -
- <code>True</code> to ask the remote client/server to compress
- traffic; <code>False</code> to refuse compression
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=bool)</i>
- </dd>
- </dl>
-<p><b>Since:</b> 1.5.2
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="_activate_inbound"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">_activate_inbound</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- switch on newly negotiated encryption parameters for inbound
- traffic
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-
-<a name="_activate_outbound"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">_activate_outbound</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- switch on newly negotiated encryption parameters for outbound
- traffic
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-
-<a name="_compute_key"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">_compute_key</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>id</span>,
- <span class=sig-arg>nbytes</span>)</span>
- </h3>
- id is 'A' - 'F' for the various keys used by ssh
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-
-<a name="_expect_packet"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">_expect_packet</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>type</span>)</span>
- </h3>
- used by a kex object to register the next packet type it expects to
- see
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-
-<a name="_get_modulus_pack"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">_get_modulus_pack</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- used by KexGex to find primes for group exchange
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-
-<a name="_send_kex_init"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">_send_kex_init</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- announce to the other side that we'd like to negotiate keys, and
- what kind of key negotiation we support.
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-
-<a name="_send_user_message"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">_send_user_message</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>data</span>)</span>
- </h3>
- send a message, but block if we're in key negotiation. this is used
- for user-initiated requests.
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-
-<a name="_set_K_H"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">_set_K_H</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>k</span>,
- <span class=sig-arg>h</span>)</span>
- </h3>
- used by a kex object to set the K (root key) and H (exchange
- hash)
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-
-<a name="_unlink_channel"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">_unlink_channel</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>chanid</span>)</span>
- </h3>
- used by a Channel to remove itself from the active channel list
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF STATIC METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Static Method Details</th></tr>
-</table>
-
-<a name="load_server_moduli"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">load_server_moduli</span>(<span class=sig-arg>filename</span>=<span class=sig-default>None</span>)</span>
- </h3>
- <p><i>(optional)</i> Load a file of prime moduli for use in doing
- group-exchange key negotiation in server mode. It's a rather obscure
- option and can be safely ignored.</p>
- In server mode, the remote client may request
- &quot;group-exchange&quot; key negotiation, which asks the server to
- send a random prime number that fits certain criteria. These primes are
- pretty difficult to compute, so they can't be generated on demand. But
- many systems contain a file of suitable primes (usually named something
- like <code>/etc/ssh/moduli</code>). If you call
- <code>load_server_moduli</code> and it returns <code>True</code>, then
- this file of primes has been loaded and we will support
- &quot;group-exchange&quot; in server mode. Otherwise server mode will
- just claim that it doesn't support that method of key negotiation.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>filename</b></code> -
- optional path to the moduli file, if you happen to know that
- it's not in a standard location.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- True if a moduli file was successfully loaded; False
- otherwise.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=bool)</i>
- </dd>
- </dl>
-<p><b>Note:</b> This has no effect when used in client mode.
-</p>
-
-<p><b>Since:</b> doduo
-</p>
-
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF CLASS VARIABLE DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Class Variable Details</th></tr>
-</table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="_channel_handler_table"></a>
-<h3>_channel_handler_table</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>dict</code>
-
- </dd>
-<span title="{96: &lt;unbound method Channel._handle_eof&gt;, 97: &lt;unbound method Channel._handle_close&gt;, 98: &lt;unbound method Channel._handle_request&gt;, 99: &lt;unbound method Channel._request_success&gt;, 100: &lt;unbound method Channel._request_failed&gt;, 93: &lt;unbound method Channel._window_adjust&gt;, 94: &lt;unbound method Channel._feed&gt;, 95: &lt;unbound method Channel._feed_extended&gt;}"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-{93: &lt;unbound method Channel._window_adjust&gt;,
- 94: &lt;unbound method Channel._feed&gt;,
- 95: &lt;unbound method Channel._feed_extended&gt;,
- 96: &lt;unbound method Channel._handle_eof&gt;,
- 97: &lt;unbound method Channel._handle_close&gt;,
- 98: &lt;unbound method Channel._handle_request&gt;,
- 99: &lt;unbound method Channel._request_success&gt;,
- 100: &lt;unbound method Channel._request_failed&gt;} </pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="_cipher_info"></a>
-<h3>_cipher_info</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>dict</code>
-
- </dd>
-<span title="{'blowfish-cbc': {'block-size': 8, 'key-size': 16, 'class': &lt;module 'Crypto.Cipher.Blowfish' from '/usr/lib/python2.4/site-packages/Crypto/Cipher/Blowfish.so'&gt;, 'mode': 2}, '3des-cbc': {'block-size': 8, 'key-size': 24, 'class': &lt;module 'Crypto.Cipher.DES3' from '/usr/lib/python2.4/site-packages/Crypto/Cipher/DES3.so'&gt;, 'mode': 2}, 'aes256-cbc': {'block-size': 16, 'key-size': 32, 'class': &lt;module 'Crypto.Cipher.AES' from '/usr/lib/python2.4/site-packages/Crypto/Cipher/AES.so'&gt;, 'mode': 2}, 'aes128-cbc': {'block-size': 16, 'key-size': 16, 'class': &lt;module 'Crypto.Cipher.AES' from '/usr/lib/py..."> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-{'3des-cbc': {'block-size': 8,
- 'class': &lt;module 'Crypto.Cipher.DES3' from '/usr/lib/pyt<span class="variable-linewrap">\</span>
-hon2.4/site-packages/Crypto/Cipher/DES3.so'&gt;,
- 'key-size': 24,
- 'mode': 2},
- 'aes128-cbc': {'block-size': 16,
- 'class': &lt;module 'Crypto.Cipher.AES' from '/usr/lib/py<span class="variable-linewrap">\</span>
-thon2.4/site-packages/Crypto/Cipher/AES.so'&gt;,
-<span class="variable-ellipsis">...</span> </pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="_CLIENT_ID"></a>
-<h3>_CLIENT_ID</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>str</code>
-
- </dd>
-<span title="'paramiko_1.5.2'"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-<span class="variable-quote">'</span>paramiko_1.5.2<span class="variable-quote">'</span> </pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="_compression_info"></a>
-<h3>_compression_info</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>dict</code>
-
- </dd>
-<span title="{'none': (None, None), 'zlib': (&lt;class 'paramiko.compress.ZlibCompressor'&gt;, &lt;class 'paramiko.compress.ZlibDecompressor'&gt;), 'zlib@openssh.com': (&lt;class 'paramiko.compress.ZlibCompressor'&gt;, &lt;class 'paramiko.compress.ZlibDecompressor'&gt;)}"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-{'none': (None, None),
- 'zlib': (&lt;class 'paramiko.compress.ZlibCompressor'&gt;,
- &lt;class 'paramiko.compress.ZlibDecompressor'&gt;),
- 'zlib&#64;openssh.com': (&lt;class 'paramiko.compress.ZlibCompressor'&gt;,
- &lt;class 'paramiko.compress.ZlibDecompressor'&gt;)} </pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="_handler_table"></a>
-<h3>_handler_table</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>dict</code>
-
- </dd>
-<span title="{80: &lt;function _parse_global_request at 0xb7b13fb4&gt;, 81: &lt;function _parse_request_success at 0xb7b1e02c&gt;, 82: &lt;function _parse_request_failure at 0xb7b1e064&gt;, 20: &lt;function _negotiate_keys at 0xb7b13dbc&gt;, 21: &lt;function _parse_newkeys at 0xb7b13f44&gt;, 90: &lt;function _parse_channel_open at 0xb7b1e10c&gt;, 91: &lt;function _parse_channel_open_success at 0xb7b1e09c&gt;, 92: &lt;function _parse_channel_open_failure at 0xb7b1e0d4&gt;}"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-{20: &lt;function _negotiate_keys at 0xb7b13dbc&gt;,
- 21: &lt;function _parse_newkeys at 0xb7b13f44&gt;,
- 80: &lt;function _parse_global_request at 0xb7b13fb4&gt;,
- 81: &lt;function _parse_request_success at 0xb7b1e02c&gt;,
- 82: &lt;function _parse_request_failure at 0xb7b1e064&gt;,
- 90: &lt;function _parse_channel_open at 0xb7b1e10c&gt;,
- 91: &lt;function _parse_channel_open_success at 0xb7b1e09c&gt;,
- 92: &lt;function _parse_channel_open_failure at 0xb7b1e0d4&gt;} </pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="_kex_info"></a>
-<h3>_kex_info</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>dict</code>
-
- </dd>
-<span title="{'diffie-hellman-group1-sha1': &lt;class 'paramiko.kex_group1.KexGroup1'&gt;, 'diffie-hellman-group-exchange-sha1': &lt;class 'paramiko.kex_gex.KexGex'&gt;}"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-{'diffie-hellman-group-exchange-sha1': &lt;class 'paramiko.kex_gex.KexGex<span class="variable-linewrap">\</span>
-'&gt;,
- 'diffie-hellman-group1-sha1': &lt;class 'paramiko.kex_group1.KexGroup1'&gt;<span class="variable-linewrap">\</span>
-} </pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="_key_info"></a>
-<h3>_key_info</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>dict</code>
-
- </dd>
-<span title="{'ssh-dss': &lt;class 'paramiko.DSSKey'&gt;, 'ssh-rsa': &lt;class 'paramiko.RSAKey'&gt;}"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-{'ssh-dss': &lt;class 'paramiko.DSSKey'&gt;, 'ssh-rsa': &lt;class 'paramiko.RSA<span class="variable-linewrap">\</span>
-Key'&gt;} </pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="_mac_info"></a>
-<h3>_mac_info</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>dict</code>
-
- </dd>
-<span title="{'hmac-sha1': {'class': &lt;module 'Crypto.Hash.SHA' from '/usr/lib/python2.4/site-packages/Crypto/Hash/SHA.pyc'&gt;, 'size': 20}, 'hmac-md5-96': {'class': &lt;module 'Crypto.Hash.MD5' from '/usr/lib/python2.4/site-packages/Crypto/Hash/MD5.pyc'&gt;, 'size': 12}, 'hmac-sha1-96': {'class': &lt;module 'Crypto.Hash.SHA' from '/usr/lib/python2.4/site-packages/Crypto/Hash/SHA.pyc'&gt;, 'size': 12}, 'hmac-md5': {'class': &lt;module 'Crypto.Hash.MD5' from '/usr/lib/python2.4/site-packages/Crypto/Hash/MD5.pyc'&gt;, 'size': 16}}"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-{'hmac-md5': {'class': &lt;module 'Crypto.Hash.MD5' from '/usr/lib/python<span class="variable-linewrap">\</span>
-2.4/site-packages/Crypto/Hash/MD5.pyc'&gt;,
- 'size': 16},
- 'hmac-md5-96': {'class': &lt;module 'Crypto.Hash.MD5' from '/usr/lib/pyt<span class="variable-linewrap">\</span>
-hon2.4/site-packages/Crypto/Hash/MD5.pyc'&gt;,
- 'size': 12},
- 'hmac-sha1': {'class': &lt;module 'Crypto.Hash.SHA' from '/usr/lib/pytho<span class="variable-linewrap">\</span>
-n2.4/site-packages/Crypto/Hash/SHA.pyc'&gt;,
-<span class="variable-ellipsis">...</span> </pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="_modulus_pack"></a>
-<h3>_modulus_pack</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>NoneType</code>
-
- </dd>
-<span title="None"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-None&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="_preferred_ciphers"></a>
-<h3>_preferred_ciphers</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>tuple</code>
-
- </dd>
-<span title="('aes128-cbc', 'blowfish-cbc', 'aes256-cbc', '3des-cbc')"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-('aes128-cbc', 'blowfish-cbc', 'aes256-cbc', '3des-cbc') </pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="_preferred_compression"></a>
-<h3>_preferred_compression</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>tuple</code>
-
- </dd>
-<span title="('none',)"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-('none',) </pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="_preferred_kex"></a>
-<h3>_preferred_kex</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>tuple</code>
-
- </dd>
-<span title="('diffie-hellman-group1-sha1', 'diffie-hellman-group-exchange-sha1')"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-('diffie-hellman-group1-sha1', 'diffie-hellman-group-exchange-sha1') </pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="_preferred_keys"></a>
-<h3>_preferred_keys</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>tuple</code>
-
- </dd>
-<span title="('ssh-rsa', 'ssh-dss')"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-('ssh-rsa', 'ssh-dss') </pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="_preferred_macs"></a>
-<h3>_preferred_macs</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>tuple</code>
-
- </dd>
-<span title="('hmac-sha1', 'hmac-md5', 'hmac-sha1-96', 'hmac-md5-96')"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-('hmac-sha1', 'hmac-md5', 'hmac-sha1-96', 'hmac-md5-96') </pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="_PROTO_ID"></a>
-<h3>_PROTO_ID</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>str</code>
-
- </dd>
-<span title="'2.0'"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-<span class="variable-quote">'</span>2.0<span class="variable-quote">'</span> </pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:48 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.agent-module.html b/docs/private/paramiko.agent-module.html
deleted file mode 100644
index 889d9ea..0000000
--- a/docs/private/paramiko.agent-module.html
+++ /dev/null
@@ -1,164 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.agent</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Module&nbsp;agent
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/paramiko.agent-module.html">hide&nbsp;private</a>]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.agent-module.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF MODULE DESCRIPTION =========== -->
-<h2 class="module">Module paramiko.agent</h2>
-
-SSH Agent interface for Unix clients.
-<hr/>
-
-<!-- =========== START OF VARIABLE SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Variable Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.agent-module.html#SSH2_AGENT_IDENTITIES_ANSWER"><code>SSH2_AGENT_IDENTITIES_ANSWER</code></a></b> = <span title="12">12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.agent-module.html#SSH2_AGENT_SIGN_RESPONSE"><code>SSH2_AGENT_SIGN_RESPONSE</code></a></b> = <span title="14">14&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.agent-module.html#SSH2_AGENTC_REQUEST_IDENTITIES"><code>SSH2_AGENTC_REQUEST_IDENTITIES</code></a></b> = <span title="11">11&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.agent-module.html#SSH2_AGENTC_SIGN_REQUEST"><code>SSH2_AGENTC_SIGN_REQUEST</code></a></b> = <span title="13">13&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-</table><br />
-
-
-<!-- =========== START OF VARIABLE DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Variable Details</th></tr>
-</table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="SSH2_AGENT_IDENTITIES_ANSWER"></a>
-<h3>SSH2_AGENT_IDENTITIES_ANSWER</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="12"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="SSH2_AGENT_SIGN_RESPONSE"></a>
-<h3>SSH2_AGENT_SIGN_RESPONSE</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="14"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-14&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="SSH2_AGENTC_REQUEST_IDENTITIES"></a>
-<h3>SSH2_AGENTC_REQUEST_IDENTITIES</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="11"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-11&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="SSH2_AGENTC_SIGN_REQUEST"></a>
-<h3>SSH2_AGENTC_SIGN_REQUEST</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="13"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-13&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.auth_handler-module.html b/docs/private/paramiko.auth_handler-module.html
deleted file mode 100644
index 464b764..0000000
--- a/docs/private/paramiko.auth_handler-module.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.auth_handler</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Module&nbsp;auth_handler
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<b>show&nbsp;private</b>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="../private/paramiko.auth_handler-module.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF MODULE DESCRIPTION =========== -->
-<h2 class="module">Module paramiko.auth_handler</h2>
-
-<a href="../private/paramiko.AuthHandler-class.html"
-class="link"><code>AuthHandler</code></a>
-<hr/>
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.ber-module.html b/docs/private/paramiko.ber-module.html
deleted file mode 100644
index 03d907b..0000000
--- a/docs/private/paramiko.ber-module.html
+++ /dev/null
@@ -1,79 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.ber</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Module&nbsp;ber
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<b>show&nbsp;private</b>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="../private/paramiko.ber-module.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF MODULE DESCRIPTION =========== -->
-<h2 class="module">Module paramiko.ber</h2>
-
-
-<!-- =========== START OF CLASSES =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Classes</th></tr>
-<tr><td width="15%">
- <b><a href="../private/paramiko.ber.BER-class.html"><code>BER</code></a></b></td>
- <td>Robey's tiny little attempt at a BER decoder.</td></tr>
-</table><br />
-
-
-<!-- =========== START OF EXCEPTIONS =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Exceptions</th></tr>
-<tr><td width="15%">
- <b><a href="../private/paramiko.ber.BERException-class.html"><code>BERException</code></a></b></td>
- <td>&nbsp;</td></tr>
-</table><br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.ber.BER-class.html b/docs/private/paramiko.ber.BER-class.html
deleted file mode 100644
index 79b10ba..0000000
--- a/docs/private/paramiko.ber.BER-class.html
+++ /dev/null
@@ -1,145 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.ber.BER</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- <a href="../private/paramiko.ber-module.html">Module&nbsp;ber</a> ::
- Class&nbsp;BER
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<b>show&nbsp;private</b>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="../private/paramiko.ber.BER-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type BER</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
- <b>BER</b>
-</pre><br />
-
-<hr/>
-
-Robey's tiny little attempt at a BER decoder.
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__init__"></a><span class="summary-sig"><span class="summary-sig-name">__init__</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>content</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__repr__"></a><span class="summary-sig"><span class="summary-sig-name">__repr__</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__str__"></a><span class="summary-sig"><span class="summary-sig-name">__str__</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="decode"></a><span class="summary-sig"><span class="summary-sig-name">decode</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="decode_next"></a><span class="summary-sig"><span class="summary-sig-name">decode_next</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="decode_sequence"></a><span class="summary-sig"><span class="summary-sig-name">decode_sequence</span>(<span class=summary-sig-arg>data</span>)</span></code>
-<br />
- <i>(Static method)</i>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="encode"></a><span class="summary-sig"><span class="summary-sig-name">encode</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>x</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="encode_sequence"></a><span class="summary-sig"><span class="summary-sig-name">encode_sequence</span>(<span class=summary-sig-arg>data</span>)</span></code>
-<br />
- <i>(Static method)</i>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="encode_tlv"></a><span class="summary-sig"><span class="summary-sig-name">encode_tlv</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>ident</span>,
- <span class=summary-sig-arg>val</span>)</span></code>
-</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-</table><br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.ber.BERException-class.html b/docs/private/paramiko.ber.BERException-class.html
deleted file mode 100644
index 9ae6fff..0000000
--- a/docs/private/paramiko.ber.BERException-class.html
+++ /dev/null
@@ -1,86 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.ber.BERException</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- <a href="../private/paramiko.ber-module.html">Module&nbsp;ber</a> ::
- Class&nbsp;BERException
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<b>show&nbsp;private</b>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="../private/paramiko.ber.BERException-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Class BERException</h2>
-
-<pre class="base-tree">
-<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+
- |
- <b>BERException</b>
-</pre><br />
-
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-</td></tr>
-</table><br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.channel-module.html b/docs/private/paramiko.channel-module.html
deleted file mode 100644
index bf3adc0..0000000
--- a/docs/private/paramiko.channel-module.html
+++ /dev/null
@@ -1,71 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.channel</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Module&nbsp;channel
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<b>show&nbsp;private</b>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="../private/paramiko.channel-module.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF MODULE DESCRIPTION =========== -->
-<h2 class="module">Module paramiko.channel</h2>
-
-Abstraction for an SSH2 channel.
-<hr/>
-
-<!-- =========== START OF CLASSES =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Classes</th></tr>
-<tr><td width="15%">
- <b><a href="../private/paramiko.channel.ChannelStderrFile-class.html"><code>ChannelStderrFile</code></a></b></td>
- <td>&nbsp;</td></tr>
-</table><br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.channel.ChannelStderrFile-class.html b/docs/private/paramiko.channel.ChannelStderrFile-class.html
deleted file mode 100644
index 646d24a..0000000
--- a/docs/private/paramiko.channel.ChannelStderrFile-class.html
+++ /dev/null
@@ -1,282 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.channel.ChannelStderrFile</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- <a href="../private/paramiko.channel-module.html">Module&nbsp;channel</a> ::
- Class&nbsp;ChannelStderrFile
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<b>show&nbsp;private</b>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="../private/paramiko.channel.ChannelStderrFile-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type ChannelStderrFile</h2>
-
-<pre class="base-tree">
- <a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
-<a href="paramiko.BufferedFile-class.html"><code>BufferedFile</code></a> --+
- |
- <a href="../private/paramiko.ChannelFile-class.html"><code>ChannelFile</code></a> --+
- |
- <b>ChannelStderrFile</b>
-</pre><br />
-
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__init__"></a><span class="summary-sig"><span class="summary-sig-name">__init__</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>channel</span>,
- <span class=summary-sig-arg>mode</span>,
- <span class=summary-sig-arg>bufsize</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.channel.ChannelStderrFile-class.html#_read" class="summary-sig-name"><code>_read</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>size</span>)</span></code>
-<br />
-<i>(subclass override)</i> Read data from the stream.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.channel.ChannelStderrFile-class.html#_write" class="summary-sig-name"><code>_write</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>data</span>)</span></code>
-<br />
-<i>(subclass override)</i> Write data into the stream.</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from ChannelFile</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.ChannelFile-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Returns a string representation of this object, for debugging.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.ChannelFile-class.html#seek" class="summary-sig-name"><code>seek</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>offset</span>,
- <span class=summary-sig-arg>whence</span>)</span></code>
-<br />
-Set the file's current position, like stdio's <code>fseek</code>.</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from BufferedFile</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#__del__" class="summary-sig-name"><code>__del__</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> iterator
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#__iter__" class="summary-sig-name"><code>__iter__</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Returns an iterator that can be used to iterate over the lines in this
-file.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#close" class="summary-sig-name"><code>close</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Close the file.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#flush" class="summary-sig-name"><code>flush</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Write out any data in the write buffer.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#next" class="summary-sig-name"><code>next</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Returns the next line from the input, or raises
-<code>StopIteration</code> when EOF is hit.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#read" class="summary-sig-name"><code>read</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>size</span>)</span></code>
-<br />
-Read at most <code>size</code> bytes from the file (less if we hit the
-end of the file first).</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#readline" class="summary-sig-name"><code>readline</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>size</span>)</span></code>
-<br />
-Read one entire line from the file.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> list
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#readlines" class="summary-sig-name"><code>readlines</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>sizehint</span>)</span></code>
-<br />
-Read all remaining lines using <a
-href="paramiko.BufferedFile-class.html#readline"
-class="link"><code>readline</code></a> and return them as a list.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> int
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#tell" class="summary-sig-name"><code>tell</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return the file's current position.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#write" class="summary-sig-name"><code>write</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>data</span>)</span></code>
-<br />
-Write data to the file.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#writelines" class="summary-sig-name"><code>writelines</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>sequence</span>)</span></code>
-<br />
-Write a sequence of strings to the file.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> iterator
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#xreadlines" class="summary-sig-name"><code>xreadlines</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Identical to <code>iter(f)</code>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.BufferedFile-class.html#_get_size" class="summary-sig-name"><code>_get_size</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-<i>(subclass override)</i> Return the size of the file.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.BufferedFile-class.html#_record_newline" class="summary-sig-name"><code>_record_newline</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>newline</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.BufferedFile-class.html#_set_mode" class="summary-sig-name"><code>_set_mode</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>mode</span>,
- <span class=summary-sig-arg>bufsize</span>)</span></code>
-<br />
-Subclasses call this method to initialize the BufferedFile.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.BufferedFile-class.html#_write_all" class="summary-sig-name"><code>_write_all</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>data</span>)</span></code>
-</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__str__() &lt;==&gt; str(x)</td></tr>
-</table><br />
-
-
-<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Class Variable Summary</th></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from BufferedFile</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.BufferedFile-class.html#SEEK_CUR"><code>SEEK_CUR</code></a></b> = <span title="1">1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.BufferedFile-class.html#SEEK_END"><code>SEEK_END</code></a></b> = <span title="2">2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.BufferedFile-class.html#SEEK_SET"><code>SEEK_SET</code></a></b> = <span title="0">0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.BufferedFile-class.html#_DEFAULT_BUFSIZE"><code>_DEFAULT_BUFSIZE</code></a></b> = <span title="8192">8192&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-</table><br />
-
-
-<!-- =========== START OF METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Method Details</th></tr>
-</table>
-
-<a name="_read"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">_read</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>size</span>)</span>
- </h3>
- <i>(subclass override)</i> Read data from the stream. Return
- <code>None</code> or raise <code>EOFError</code> to indicate EOF.
- <dl><dt></dt><dd>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="../private/paramiko.ChannelFile-class.html#_read"><code>paramiko.ChannelFile._read</code></a> <i>(inherited documentation)</i>
-</dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="_write"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">_write</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>data</span>)</span>
- </h3>
- <i>(subclass override)</i> Write data into the stream.
- <dl><dt></dt><dd>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="../private/paramiko.ChannelFile-class.html#_write"><code>paramiko.ChannelFile._write</code></a> <i>(inherited documentation)</i>
-</dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:46 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.common-module.html b/docs/private/paramiko.common-module.html
deleted file mode 100644
index 5422192..0000000
--- a/docs/private/paramiko.common-module.html
+++ /dev/null
@@ -1,1013 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.common</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Module&nbsp;common
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<b>show&nbsp;private</b>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="../private/paramiko.common-module.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF MODULE DESCRIPTION =========== -->
-<h2 class="module">Module paramiko.common</h2>
-
-Common constants and global variables.
-<hr/>
-
-<!-- =========== START OF VARIABLE SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Variable Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.common-module.html#AUTH_FAILED"><code>AUTH_FAILED</code></a></b> = <span title="2">2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.common-module.html#AUTH_PARTIALLY_SUCCESSFUL"><code>AUTH_PARTIALLY_SUCCESSFUL</code></a></b> = <span title="1">1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.common-module.html#AUTH_SUCCESSFUL"><code>AUTH_SUCCESSFUL</code></a></b> = <span title="0">0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>dict</code></font></td>
-<td><b><a href="../private/paramiko.common-module.html#CONNECTION_FAILED_CODE"><code>CONNECTION_FAILED_CODE</code></a></b> = <span title="{1: 'Administratively prohibited', 2: 'Connect failed', 3: 'Unknown channel type', 4: 'Resource shortage'}"><code>{1:&nbsp;'Administratively&nbsp;prohibite<span class="variable-ellipsis">...</span></code>
-</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.common-module.html#CRITICAL"><code>CRITICAL</code></a></b> = <span title="50">50&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.common-module.html#DEBUG"><code>DEBUG</code></a></b> = <span title="10">10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.common-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER"><code>DISCONNECT_AUTH_CANCELLED_BY_USER</code></a></b> = <span title="13">13&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.common-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE"><code>DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE</code></a></b> = <span title="14">14&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.common-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE"><code>DISCONNECT_SERVICE_NOT_AVAILABLE</code></a></b> = <span title="7">7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.common-module.html#ERROR"><code>ERROR</code></a></b> = <span title="40">40&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.common-module.html#INFO"><code>INFO</code></a></b> = <span title="20">20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.common-module.html#MSG_CHANNEL_CLOSE"><code>MSG_CHANNEL_CLOSE</code></a></b> = <span title="97">97&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.common-module.html#MSG_CHANNEL_DATA"><code>MSG_CHANNEL_DATA</code></a></b> = <span title="94">94&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.common-module.html#MSG_CHANNEL_EOF"><code>MSG_CHANNEL_EOF</code></a></b> = <span title="96">96&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.common-module.html#MSG_CHANNEL_EXTENDED_DATA"><code>MSG_CHANNEL_EXTENDED_DATA</code></a></b> = <span title="95">95&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.common-module.html#MSG_CHANNEL_FAILURE"><code>MSG_CHANNEL_FAILURE</code></a></b> = <span title="100">100&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.common-module.html#MSG_CHANNEL_OPEN"><code>MSG_CHANNEL_OPEN</code></a></b> = <span title="90">90&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.common-module.html#MSG_CHANNEL_OPEN_FAILURE"><code>MSG_CHANNEL_OPEN_FAILURE</code></a></b> = <span title="92">92&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.common-module.html#MSG_CHANNEL_OPEN_SUCCESS"><code>MSG_CHANNEL_OPEN_SUCCESS</code></a></b> = <span title="91">91&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.common-module.html#MSG_CHANNEL_REQUEST"><code>MSG_CHANNEL_REQUEST</code></a></b> = <span title="98">98&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.common-module.html#MSG_CHANNEL_SUCCESS"><code>MSG_CHANNEL_SUCCESS</code></a></b> = <span title="99">99&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.common-module.html#MSG_CHANNEL_WINDOW_ADJUST"><code>MSG_CHANNEL_WINDOW_ADJUST</code></a></b> = <span title="93">93&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.common-module.html#MSG_DEBUG"><code>MSG_DEBUG</code></a></b> = <span title="4">4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.common-module.html#MSG_DISCONNECT"><code>MSG_DISCONNECT</code></a></b> = <span title="1">1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.common-module.html#MSG_GLOBAL_REQUEST"><code>MSG_GLOBAL_REQUEST</code></a></b> = <span title="80">80&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.common-module.html#MSG_IGNORE"><code>MSG_IGNORE</code></a></b> = <span title="2">2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.common-module.html#MSG_KEXINIT"><code>MSG_KEXINIT</code></a></b> = <span title="20">20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>dict</code></font></td>
-<td><b><a href="../private/paramiko.common-module.html#MSG_NAMES"><code>MSG_NAMES</code></a></b> = <span title="{1: 'disconnect', 2: 'ignore', 3: 'unimplemented', 4: 'debug', 5: 'service-request', 6: 'service-accept', 20: 'kexinit', 21: 'newkeys', 30: 'kex30', 31: 'kex31', 32: 'kex32', 33: 'kex33', 34: 'kex34', 50: 'userauth-request', 51: 'userauth-failure', 52: 'userauth-success', 53: 'userauth--banner', 60: 'userauth-60(pk-ok/info-request)', 61: 'userauth-info-response', 80: 'global-request', 81: 'request-success', 82: 'request-failure', 90: 'channel-open', 91: 'channel-open-success', 92: 'channel-open-failure', 93: 'channel-window-adjust', 94: 'channel-data', 95: 'channel-extended-data', 96: 'chan..."><code>{1:&nbsp;'disconnect',&nbsp;2:&nbsp;'ignore',&nbsp;3:&nbsp;'unimpleme<span class="variable-ellipsis">...</span></code>
-</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.common-module.html#MSG_NEWKEYS"><code>MSG_NEWKEYS</code></a></b> = <span title="21">21&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.common-module.html#MSG_REQUEST_FAILURE"><code>MSG_REQUEST_FAILURE</code></a></b> = <span title="82">82&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.common-module.html#MSG_REQUEST_SUCCESS"><code>MSG_REQUEST_SUCCESS</code></a></b> = <span title="81">81&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.common-module.html#MSG_SERVICE_ACCEPT"><code>MSG_SERVICE_ACCEPT</code></a></b> = <span title="6">6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.common-module.html#MSG_SERVICE_REQUEST"><code>MSG_SERVICE_REQUEST</code></a></b> = <span title="5">5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.common-module.html#MSG_UNIMPLEMENTED"><code>MSG_UNIMPLEMENTED</code></a></b> = <span title="3">3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.common-module.html#MSG_USERAUTH_BANNER"><code>MSG_USERAUTH_BANNER</code></a></b> = <span title="53">53&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.common-module.html#MSG_USERAUTH_FAILURE"><code>MSG_USERAUTH_FAILURE</code></a></b> = <span title="51">51&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.common-module.html#MSG_USERAUTH_INFO_REQUEST"><code>MSG_USERAUTH_INFO_REQUEST</code></a></b> = <span title="60">60&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.common-module.html#MSG_USERAUTH_INFO_RESPONSE"><code>MSG_USERAUTH_INFO_RESPONSE</code></a></b> = <span title="61">61&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.common-module.html#MSG_USERAUTH_PK_OK"><code>MSG_USERAUTH_PK_OK</code></a></b> = <span title="60">60&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.common-module.html#MSG_USERAUTH_REQUEST"><code>MSG_USERAUTH_REQUEST</code></a></b> = <span title="50">50&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.common-module.html#MSG_USERAUTH_SUCCESS"><code>MSG_USERAUTH_SUCCESS</code></a></b> = <span title="52">52&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.common-module.html#WARNING"><code>WARNING</code></a></b> = <span title="30">30&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-</table><br />
-
-
-<!-- =========== START OF VARIABLE DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Variable Details</th></tr>
-</table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="AUTH_FAILED"></a>
-<h3>AUTH_FAILED</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="2"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="AUTH_PARTIALLY_SUCCESSFUL"></a>
-<h3>AUTH_PARTIALLY_SUCCESSFUL</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="1"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="AUTH_SUCCESSFUL"></a>
-<h3>AUTH_SUCCESSFUL</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="0"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CONNECTION_FAILED_CODE"></a>
-<h3>CONNECTION_FAILED_CODE</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>dict</code>
-
- </dd>
-<span title="{1: 'Administratively prohibited', 2: 'Connect failed', 3: 'Unknown channel type', 4: 'Resource shortage'}"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-{1: 'Administratively prohibited',
- 2: 'Connect failed',
- 3: 'Unknown channel type',
- 4: 'Resource shortage'} </pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CRITICAL"></a>
-<h3>CRITICAL</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="50"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-50&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="DEBUG"></a>
-<h3>DEBUG</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="10"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="DISCONNECT_AUTH_CANCELLED_BY_USER"></a>
-<h3>DISCONNECT_AUTH_CANCELLED_BY_USER</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="13"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-13&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE"></a>
-<h3>DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="14"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-14&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="DISCONNECT_SERVICE_NOT_AVAILABLE"></a>
-<h3>DISCONNECT_SERVICE_NOT_AVAILABLE</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="7"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="ERROR"></a>
-<h3>ERROR</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="40"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-40&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="INFO"></a>
-<h3>INFO</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="20"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="MSG_CHANNEL_CLOSE"></a>
-<h3>MSG_CHANNEL_CLOSE</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="97"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-97&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="MSG_CHANNEL_DATA"></a>
-<h3>MSG_CHANNEL_DATA</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="94"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-94&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="MSG_CHANNEL_EOF"></a>
-<h3>MSG_CHANNEL_EOF</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="96"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-96&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="MSG_CHANNEL_EXTENDED_DATA"></a>
-<h3>MSG_CHANNEL_EXTENDED_DATA</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="95"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-95&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="MSG_CHANNEL_FAILURE"></a>
-<h3>MSG_CHANNEL_FAILURE</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="100"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-100&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="MSG_CHANNEL_OPEN"></a>
-<h3>MSG_CHANNEL_OPEN</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="90"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-90&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="MSG_CHANNEL_OPEN_FAILURE"></a>
-<h3>MSG_CHANNEL_OPEN_FAILURE</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="92"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-92&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="MSG_CHANNEL_OPEN_SUCCESS"></a>
-<h3>MSG_CHANNEL_OPEN_SUCCESS</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="91"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-91&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="MSG_CHANNEL_REQUEST"></a>
-<h3>MSG_CHANNEL_REQUEST</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="98"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-98&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="MSG_CHANNEL_SUCCESS"></a>
-<h3>MSG_CHANNEL_SUCCESS</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="99"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-99&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="MSG_CHANNEL_WINDOW_ADJUST"></a>
-<h3>MSG_CHANNEL_WINDOW_ADJUST</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="93"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-93&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="MSG_DEBUG"></a>
-<h3>MSG_DEBUG</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="4"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="MSG_DISCONNECT"></a>
-<h3>MSG_DISCONNECT</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="1"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="MSG_GLOBAL_REQUEST"></a>
-<h3>MSG_GLOBAL_REQUEST</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="80"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-80&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="MSG_IGNORE"></a>
-<h3>MSG_IGNORE</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="2"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="MSG_KEXINIT"></a>
-<h3>MSG_KEXINIT</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="20"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="MSG_NAMES"></a>
-<h3>MSG_NAMES</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>dict</code>
-
- </dd>
-<span title="{1: 'disconnect', 2: 'ignore', 3: 'unimplemented', 4: 'debug', 5: 'service-request', 6: 'service-accept', 20: 'kexinit', 21: 'newkeys', 30: 'kex30', 31: 'kex31', 32: 'kex32', 33: 'kex33', 34: 'kex34', 50: 'userauth-request', 51: 'userauth-failure', 52: 'userauth-success', 53: 'userauth--banner', 60: 'userauth-60(pk-ok/info-request)', 61: 'userauth-info-response', 80: 'global-request', 81: 'request-success', 82: 'request-failure', 90: 'channel-open', 91: 'channel-open-success', 92: 'channel-open-failure', 93: 'channel-window-adjust', 94: 'channel-data', 95: 'channel-extended-data', 96: 'chan..."> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-{1: 'disconnect',
- 2: 'ignore',
- 3: 'unimplemented',
- 4: 'debug',
- 5: 'service-request',
- 6: 'service-accept',
- 20: 'kexinit',
- 21: 'newkeys',
-<span class="variable-ellipsis">...</span> </pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="MSG_NEWKEYS"></a>
-<h3>MSG_NEWKEYS</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="21"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-21&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="MSG_REQUEST_FAILURE"></a>
-<h3>MSG_REQUEST_FAILURE</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="82"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-82&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="MSG_REQUEST_SUCCESS"></a>
-<h3>MSG_REQUEST_SUCCESS</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="81"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-81&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="MSG_SERVICE_ACCEPT"></a>
-<h3>MSG_SERVICE_ACCEPT</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="6"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="MSG_SERVICE_REQUEST"></a>
-<h3>MSG_SERVICE_REQUEST</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="5"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="MSG_UNIMPLEMENTED"></a>
-<h3>MSG_UNIMPLEMENTED</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="3"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="MSG_USERAUTH_BANNER"></a>
-<h3>MSG_USERAUTH_BANNER</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="53"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-53&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="MSG_USERAUTH_FAILURE"></a>
-<h3>MSG_USERAUTH_FAILURE</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="51"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-51&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="MSG_USERAUTH_INFO_REQUEST"></a>
-<h3>MSG_USERAUTH_INFO_REQUEST</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="60"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-60&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="MSG_USERAUTH_INFO_RESPONSE"></a>
-<h3>MSG_USERAUTH_INFO_RESPONSE</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="61"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-61&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="MSG_USERAUTH_PK_OK"></a>
-<h3>MSG_USERAUTH_PK_OK</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="60"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-60&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="MSG_USERAUTH_REQUEST"></a>
-<h3>MSG_USERAUTH_REQUEST</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="50"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-50&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="MSG_USERAUTH_SUCCESS"></a>
-<h3>MSG_USERAUTH_SUCCESS</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="52"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-52&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="WARNING"></a>
-<h3>WARNING</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="30"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-30&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.compress-module.html b/docs/private/paramiko.compress-module.html
deleted file mode 100644
index aa60bc4..0000000
--- a/docs/private/paramiko.compress-module.html
+++ /dev/null
@@ -1,74 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.compress</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Module&nbsp;compress
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<b>show&nbsp;private</b>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="../private/paramiko.compress-module.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF MODULE DESCRIPTION =========== -->
-<h2 class="module">Module paramiko.compress</h2>
-
-Compression implementations for a Transport.
-<hr/>
-
-<!-- =========== START OF CLASSES =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Classes</th></tr>
-<tr><td width="15%">
- <b><a href="../private/paramiko.compress.ZlibCompressor-class.html"><code>ZlibCompressor</code></a></b></td>
- <td>&nbsp;</td></tr>
-<tr><td width="15%">
- <b><a href="../private/paramiko.compress.ZlibDecompressor-class.html"><code>ZlibDecompressor</code></a></b></td>
- <td>&nbsp;</td></tr>
-</table><br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:46 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.compress.ZlibCompressor-class.html b/docs/private/paramiko.compress.ZlibCompressor-class.html
deleted file mode 100644
index ac848f4..0000000
--- a/docs/private/paramiko.compress.ZlibCompressor-class.html
+++ /dev/null
@@ -1,122 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.compress.ZlibCompressor</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- <a href="../private/paramiko.compress-module.html">Module&nbsp;compress</a> ::
- Class&nbsp;ZlibCompressor
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<b>show&nbsp;private</b>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="../private/paramiko.compress.ZlibCompressor-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type ZlibCompressor</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
- <b>ZlibCompressor</b>
-</pre><br />
-
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__init__"></a><span class="summary-sig"><span class="summary-sig-name">__init__</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__call__"></a><span class="summary-sig"><span class="summary-sig-name">__call__</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>data</span>)</span></code>
-</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__repr__() &lt;==&gt; repr(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__str__() &lt;==&gt; str(x)</td></tr>
-</table><br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.compress.ZlibDecompressor-class.html b/docs/private/paramiko.compress.ZlibDecompressor-class.html
deleted file mode 100644
index 63e0b1f..0000000
--- a/docs/private/paramiko.compress.ZlibDecompressor-class.html
+++ /dev/null
@@ -1,122 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.compress.ZlibDecompressor</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- <a href="../private/paramiko.compress-module.html">Module&nbsp;compress</a> ::
- Class&nbsp;ZlibDecompressor
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<b>show&nbsp;private</b>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="../private/paramiko.compress.ZlibDecompressor-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type ZlibDecompressor</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
- <b>ZlibDecompressor</b>
-</pre><br />
-
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__init__"></a><span class="summary-sig"><span class="summary-sig-name">__init__</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__call__"></a><span class="summary-sig"><span class="summary-sig-name">__call__</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>data</span>)</span></code>
-</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__repr__() &lt;==&gt; repr(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__str__() &lt;==&gt; str(x)</td></tr>
-</table><br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.dsskey-module.html b/docs/private/paramiko.dsskey-module.html
deleted file mode 100644
index 370a1c8..0000000
--- a/docs/private/paramiko.dsskey-module.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.dsskey</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Module&nbsp;dsskey
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/paramiko.dsskey-module.html">hide&nbsp;private</a>]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.dsskey-module.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF MODULE DESCRIPTION =========== -->
-<h2 class="module">Module paramiko.dsskey</h2>
-
-<a href="paramiko.DSSKey-class.html"
-class="link"><code>DSSKey</code></a>
-<hr/>
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.file-module.html b/docs/private/paramiko.file-module.html
deleted file mode 100644
index 676e3ce..0000000
--- a/docs/private/paramiko.file-module.html
+++ /dev/null
@@ -1,230 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.file</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Module&nbsp;file
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/paramiko.file-module.html">hide&nbsp;private</a>]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.file-module.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF MODULE DESCRIPTION =========== -->
-<h2 class="module">Module paramiko.file</h2>
-
-BufferedFile.
-<hr/>
-
-<!-- =========== START OF VARIABLE SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Variable Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.file-module.html#_FLAG_APPEND"><code>_FLAG_APPEND</code></a></b> = <span title="4">4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.file-module.html#_FLAG_BINARY"><code>_FLAG_BINARY</code></a></b> = <span title="16">16&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.file-module.html#_FLAG_BUFFERED"><code>_FLAG_BUFFERED</code></a></b> = <span title="32">32&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.file-module.html#_FLAG_LINE_BUFFERED"><code>_FLAG_LINE_BUFFERED</code></a></b> = <span title="64">64&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.file-module.html#_FLAG_READ"><code>_FLAG_READ</code></a></b> = <span title="1">1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.file-module.html#_FLAG_UNIVERSAL_NEWLINE"><code>_FLAG_UNIVERSAL_NEWLINE</code></a></b> = <span title="128">128&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.file-module.html#_FLAG_WRITE"><code>_FLAG_WRITE</code></a></b> = <span title="2">2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-</table><br />
-
-
-<!-- =========== START OF VARIABLE DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Variable Details</th></tr>
-</table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="_FLAG_APPEND"></a>
-<h3>_FLAG_APPEND</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="4"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="_FLAG_BINARY"></a>
-<h3>_FLAG_BINARY</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="16"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-16&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="_FLAG_BUFFERED"></a>
-<h3>_FLAG_BUFFERED</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="32"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-32&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="_FLAG_LINE_BUFFERED"></a>
-<h3>_FLAG_LINE_BUFFERED</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="64"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-64&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="_FLAG_READ"></a>
-<h3>_FLAG_READ</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="1"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="_FLAG_UNIVERSAL_NEWLINE"></a>
-<h3>_FLAG_UNIVERSAL_NEWLINE</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="128"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-128&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="_FLAG_WRITE"></a>
-<h3>_FLAG_WRITE</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="2"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.kex_gex-module.html b/docs/private/paramiko.kex_gex-module.html
deleted file mode 100644
index 8fad377..0000000
--- a/docs/private/paramiko.kex_gex-module.html
+++ /dev/null
@@ -1,179 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.kex_gex</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Module&nbsp;kex_gex
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<b>show&nbsp;private</b>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="../private/paramiko.kex_gex-module.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF MODULE DESCRIPTION =========== -->
-<h2 class="module">Module paramiko.kex_gex</h2>
-
-Variant on <a
-href="../private/paramiko.kex_group1.KexGroup1-class.html"
-class="link"><code>KexGroup1</code></a> where the prime &quot;p&quot; and
-generator &quot;g&quot; are provided by the server. A bit more work is
-required on the client side, and a <b>lot</b> more on the server
-side.
-<hr/>
-
-<!-- =========== START OF CLASSES =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Classes</th></tr>
-<tr><td width="15%">
- <b><a href="../private/paramiko.kex_gex.KexGex-class.html"><code>KexGex</code></a></b></td>
- <td>&nbsp;</td></tr>
-</table><br />
-
-
-<!-- =========== START OF VARIABLE SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Variable Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.kex_gex-module.html#_MSG_KEXDH_GEX_GROUP"><code>_MSG_KEXDH_GEX_GROUP</code></a></b> = <span title="31">31&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.kex_gex-module.html#_MSG_KEXDH_GEX_INIT"><code>_MSG_KEXDH_GEX_INIT</code></a></b> = <span title="32">32&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.kex_gex-module.html#_MSG_KEXDH_GEX_REPLY"><code>_MSG_KEXDH_GEX_REPLY</code></a></b> = <span title="33">33&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.kex_gex-module.html#_MSG_KEXDH_GEX_REQUEST"><code>_MSG_KEXDH_GEX_REQUEST</code></a></b> = <span title="34">34&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-</table><br />
-
-
-<!-- =========== START OF VARIABLE DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Variable Details</th></tr>
-</table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="_MSG_KEXDH_GEX_GROUP"></a>
-<h3>_MSG_KEXDH_GEX_GROUP</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="31"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-31&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="_MSG_KEXDH_GEX_INIT"></a>
-<h3>_MSG_KEXDH_GEX_INIT</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="32"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-32&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="_MSG_KEXDH_GEX_REPLY"></a>
-<h3>_MSG_KEXDH_GEX_REPLY</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="33"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-33&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="_MSG_KEXDH_GEX_REQUEST"></a>
-<h3>_MSG_KEXDH_GEX_REQUEST</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="34"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-34&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.kex_gex.KexGex-class.html b/docs/private/paramiko.kex_gex.KexGex-class.html
deleted file mode 100644
index 2eec555..0000000
--- a/docs/private/paramiko.kex_gex.KexGex-class.html
+++ /dev/null
@@ -1,250 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.kex_gex.KexGex</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- <a href="../private/paramiko.kex_gex-module.html">Module&nbsp;kex_gex</a> ::
- Class&nbsp;KexGex
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<b>show&nbsp;private</b>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="../private/paramiko.kex_gex.KexGex-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type KexGex</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
- <b>KexGex</b>
-</pre><br />
-
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__init__"></a><span class="summary-sig"><span class="summary-sig-name">__init__</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>transport</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_generate_x"></a><span class="summary-sig"><span class="summary-sig-name">_generate_x</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_parse_kexdh_gex_group"></a><span class="summary-sig"><span class="summary-sig-name">_parse_kexdh_gex_group</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>m</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_parse_kexdh_gex_init"></a><span class="summary-sig"><span class="summary-sig-name">_parse_kexdh_gex_init</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>m</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_parse_kexdh_gex_reply"></a><span class="summary-sig"><span class="summary-sig-name">_parse_kexdh_gex_reply</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>m</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_parse_kexdh_gex_request"></a><span class="summary-sig"><span class="summary-sig-name">_parse_kexdh_gex_request</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>m</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="parse_next"></a><span class="summary-sig"><span class="summary-sig-name">parse_next</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>ptype</span>,
- <span class=summary-sig-arg>m</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="start_kex"></a><span class="summary-sig"><span class="summary-sig-name">start_kex</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__repr__() &lt;==&gt; repr(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__str__() &lt;==&gt; str(x)</td></tr>
-</table><br />
-
-
-<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Class Variable Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.kex_gex.KexGex-class.html#max_bits"><code>max_bits</code></a></b> = <span title="8192">8192&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.kex_gex.KexGex-class.html#min_bits"><code>min_bits</code></a></b> = <span title="1024">1024&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
-<td><b><a href="../private/paramiko.kex_gex.KexGex-class.html#name"><code>name</code></a></b> = <span title="'diffie-hellman-group-exchange-sha1'"><code><span class="variable-quote">'</span>diffie-hellman-group-exchange-sha1<span class="variable-quote">'</span> </code>
-</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.kex_gex.KexGex-class.html#preferred_bits"><code>preferred_bits</code></a></b> = <span title="2048">2048&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-</table><br />
-
-
-<!-- =========== START OF CLASS VARIABLE DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Class Variable Details</th></tr>
-</table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="max_bits"></a>
-<h3>max_bits</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="8192"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-8192&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="min_bits"></a>
-<h3>min_bits</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="1024"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-1024&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="name"></a>
-<h3>name</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>str</code>
-
- </dd>
-<span title="'diffie-hellman-group-exchange-sha1'"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-<span class="variable-quote">'</span>diffie-hellman-group-exchange-sha1<span class="variable-quote">'</span> </pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="preferred_bits"></a>
-<h3>preferred_bits</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="2048"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-2048&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:48 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.kex_group1-module.html b/docs/private/paramiko.kex_group1-module.html
deleted file mode 100644
index 84a44f2..0000000
--- a/docs/private/paramiko.kex_group1-module.html
+++ /dev/null
@@ -1,181 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.kex_group1</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Module&nbsp;kex_group1
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<b>show&nbsp;private</b>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="../private/paramiko.kex_group1-module.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF MODULE DESCRIPTION =========== -->
-<h2 class="module">Module paramiko.kex_group1</h2>
-
-Standard SSH key exchange (&quot;kex&quot; if you wanna sound cool).
-Diffie-Hellman of 1024 bit key halves, using a known &quot;p&quot; prime
-and &quot;g&quot; generator.
-<hr/>
-
-<!-- =========== START OF CLASSES =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Classes</th></tr>
-<tr><td width="15%">
- <b><a href="../private/paramiko.kex_group1.KexGroup1-class.html"><code>KexGroup1</code></a></b></td>
- <td>&nbsp;</td></tr>
-</table><br />
-
-
-<!-- =========== START OF VARIABLE SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Variable Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.kex_group1-module.html#_MSG_KEXDH_INIT"><code>_MSG_KEXDH_INIT</code></a></b> = <span title="30">30&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.kex_group1-module.html#_MSG_KEXDH_REPLY"><code>_MSG_KEXDH_REPLY</code></a></b> = <span title="31">31&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.kex_group1-module.html#G"><code>G</code></a></b> = <span title="2">2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>long</code></font></td>
-<td><b><a href="../private/paramiko.kex_group1-module.html#P"><code>P</code></a></b> = <span title="179769313486231590770839156793787453197860296048756011706444423684197180216158519368947833795864925541502180565485980503646440548199239100050792877003355816639229553136239076508735759914822574862575007425302077447712589550957937778424442426617334727629299387668709205606050270810842907692932019128194467627007L"><code>1797693134862315907708391567937874531978602960487560<span class="variable-ellipsis">...</span></code>
-</span></td></tr>
-</table><br />
-
-
-<!-- =========== START OF VARIABLE DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Variable Details</th></tr>
-</table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="_MSG_KEXDH_INIT"></a>
-<h3>_MSG_KEXDH_INIT</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="30"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-30&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="_MSG_KEXDH_REPLY"></a>
-<h3>_MSG_KEXDH_REPLY</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="31"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-31&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="G"></a>
-<h3>G</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="2"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="P"></a>
-<h3>P</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>long</code>
-
- </dd>
-<span title="179769313486231590770839156793787453197860296048756011706444423684197180216158519368947833795864925541502180565485980503646440548199239100050792877003355816639229553136239076508735759914822574862575007425302077447712589550957937778424442426617334727629299387668709205606050270810842907692932019128194467627007L"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-1797693134862315907708391567937874531978602960487560117064444236841971<span class="variable-linewrap">\</span>
-8021615851936894783379586492554150218056548598050364644054819923910005<span class="variable-linewrap">\</span>
-0792877003355816639229553136239076508735759914822574862575007425302077<span class="variable-linewrap">\</span>
-4477125895509579377784244424266173347276292993876687092056060502708108<span class="variable-linewrap">\</span>
-42907692932019128194467627007L </pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.kex_group1.KexGroup1-class.html b/docs/private/paramiko.kex_group1.KexGroup1-class.html
deleted file mode 100644
index 7287b9d..0000000
--- a/docs/private/paramiko.kex_group1.KexGroup1-class.html
+++ /dev/null
@@ -1,176 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.kex_group1.KexGroup1</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- <a href="../private/paramiko.kex_group1-module.html">Module&nbsp;kex_group1</a> ::
- Class&nbsp;KexGroup1
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<b>show&nbsp;private</b>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="../private/paramiko.kex_group1.KexGroup1-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type KexGroup1</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
- <b>KexGroup1</b>
-</pre><br />
-
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__init__"></a><span class="summary-sig"><span class="summary-sig-name">__init__</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>transport</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_generate_x"></a><span class="summary-sig"><span class="summary-sig-name">_generate_x</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_parse_kexdh_init"></a><span class="summary-sig"><span class="summary-sig-name">_parse_kexdh_init</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>m</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_parse_kexdh_reply"></a><span class="summary-sig"><span class="summary-sig-name">_parse_kexdh_reply</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>m</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="parse_next"></a><span class="summary-sig"><span class="summary-sig-name">parse_next</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>ptype</span>,
- <span class=summary-sig-arg>m</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="start_kex"></a><span class="summary-sig"><span class="summary-sig-name">start_kex</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__repr__() &lt;==&gt; repr(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__str__() &lt;==&gt; str(x)</td></tr>
-</table><br />
-
-
-<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Class Variable Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
-<td><b><a href="../private/paramiko.kex_group1.KexGroup1-class.html#name"><code>name</code></a></b> = <span title="'diffie-hellman-group1-sha1'"><code><span class="variable-quote">'</span>diffie-hellman-group1-sha1<span class="variable-quote">'</span> </code>
-</span></td></tr>
-</table><br />
-
-
-<!-- =========== START OF CLASS VARIABLE DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Class Variable Details</th></tr>
-</table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="name"></a>
-<h3>name</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>str</code>
-
- </dd>
-<span title="'diffie-hellman-group1-sha1'"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-<span class="variable-quote">'</span>diffie-hellman-group1-sha1<span class="variable-quote">'</span> </pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.logging22-module.html b/docs/private/paramiko.logging22-module.html
deleted file mode 100644
index daa72e6..0000000
--- a/docs/private/paramiko.logging22-module.html
+++ /dev/null
@@ -1,235 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.logging22</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Module&nbsp;logging22
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<b>show&nbsp;private</b>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="../private/paramiko.logging22-module.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF MODULE DESCRIPTION =========== -->
-<h2 class="module">Module paramiko.logging22</h2>
-
-Stub out logging on python &lt; 2.3.
-<hr/>
-
-<!-- =========== START OF CLASSES =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Classes</th></tr>
-<tr><td width="15%">
- <b><a href="../private/paramiko.logging22.Formatter-class.html"><code>Formatter</code></a></b></td>
- <td>&nbsp;</td></tr>
-<tr><td width="15%">
- <b><a href="../private/paramiko.logging22.logger-class.html"><code>logger</code></a></b></td>
- <td>&nbsp;</td></tr>
-<tr><td width="15%">
- <b><a href="../private/paramiko.logging22.StreamHandler-class.html"><code>StreamHandler</code></a></b></td>
- <td>&nbsp;</td></tr>
-</table><br />
-
-
-<!-- =========== START OF FUNCTION SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Function Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="getLogger"></a><span class="summary-sig"><span class="summary-sig-name">getLogger</span>(<span class=summary-sig-arg>name</span>)</span></code>
-</td></tr>
-</table><br />
-
-
-<!-- =========== START OF VARIABLE SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Variable Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>logger</code></font></td>
-<td><b><a href="../private/paramiko.logging22-module.html#_logger"><code>_logger</code></a></b> = <span title="&lt;paramiko.logging22.logger object at 0xb7b2254c&gt;"><code>&lt;paramiko.logging22.logger&nbsp;object&nbsp;at&nbsp;0xb7b2254<span class="variable-ellipsis">...</span></code>
-</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.logging22-module.html#CRITICAL"><code>CRITICAL</code></a></b> = <span title="50">50&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.logging22-module.html#DEBUG"><code>DEBUG</code></a></b> = <span title="10">10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.logging22-module.html#ERROR"><code>ERROR</code></a></b> = <span title="40">40&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.logging22-module.html#INFO"><code>INFO</code></a></b> = <span title="20">20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.logging22-module.html#WARNING"><code>WARNING</code></a></b> = <span title="30">30&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-</table><br />
-
-
-<!-- =========== START OF VARIABLE DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Variable Details</th></tr>
-</table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="_logger"></a>
-<h3>_logger</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>logger</code>
-
- </dd>
-<span title="&lt;paramiko.logging22.logger object at 0xb7b2254c&gt;"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-&lt;paramiko.logging22.logger object at 0xb7b2254c&gt; </pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CRITICAL"></a>
-<h3>CRITICAL</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="50"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-50&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="DEBUG"></a>
-<h3>DEBUG</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="10"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="ERROR"></a>
-<h3>ERROR</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="40"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-40&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="INFO"></a>
-<h3>INFO</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="20"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="WARNING"></a>
-<h3>WARNING</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="30"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-30&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.logging22.Formatter-class.html b/docs/private/paramiko.logging22.Formatter-class.html
deleted file mode 100644
index 78fa916..0000000
--- a/docs/private/paramiko.logging22.Formatter-class.html
+++ /dev/null
@@ -1,120 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.logging22.Formatter</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- <a href="../private/paramiko.logging22-module.html">Module&nbsp;logging22</a> ::
- Class&nbsp;Formatter
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<b>show&nbsp;private</b>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="../private/paramiko.logging22.Formatter-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type Formatter</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
- <b>Formatter</b>
-</pre><br />
-
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__init__"></a><span class="summary-sig"><span class="summary-sig-name">__init__</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>x</span>,
- <span class=summary-sig-arg>y</span>)</span></code>
-</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__repr__() &lt;==&gt; repr(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__str__() &lt;==&gt; str(x)</td></tr>
-</table><br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:48 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.logging22.StreamHandler-class.html b/docs/private/paramiko.logging22.StreamHandler-class.html
deleted file mode 100644
index dc3e953..0000000
--- a/docs/private/paramiko.logging22.StreamHandler-class.html
+++ /dev/null
@@ -1,123 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.logging22.StreamHandler</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- <a href="../private/paramiko.logging22-module.html">Module&nbsp;logging22</a> ::
- Class&nbsp;StreamHandler
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<b>show&nbsp;private</b>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="../private/paramiko.logging22.StreamHandler-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type StreamHandler</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
- <b>StreamHandler</b>
-</pre><br />
-
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__init__"></a><span class="summary-sig"><span class="summary-sig-name">__init__</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>f</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="setFormatter"></a><span class="summary-sig"><span class="summary-sig-name">setFormatter</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>f</span>)</span></code>
-</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__repr__() &lt;==&gt; repr(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__str__() &lt;==&gt; str(x)</td></tr>
-</table><br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.logging22.logger-class.html b/docs/private/paramiko.logging22.logger-class.html
deleted file mode 100644
index 75bd6da..0000000
--- a/docs/private/paramiko.logging22.logger-class.html
+++ /dev/null
@@ -1,135 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.logging22.logger</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- <a href="../private/paramiko.logging22-module.html">Module&nbsp;logging22</a> ::
- Class&nbsp;logger
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<b>show&nbsp;private</b>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="../private/paramiko.logging22.logger-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type logger</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
- <b>logger</b>
-</pre><br />
-
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__init__"></a><span class="summary-sig"><span class="summary-sig-name">__init__</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="addFilter"></a><span class="summary-sig"><span class="summary-sig-name">addFilter</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>filter</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="addHandler"></a><span class="summary-sig"><span class="summary-sig-name">addHandler</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>h</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="log"></a><span class="summary-sig"><span class="summary-sig-name">log</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>level</span>,
- <span class=summary-sig-arg>text</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="setLevel"></a><span class="summary-sig"><span class="summary-sig-name">setLevel</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>level</span>)</span></code>
-</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__repr__() &lt;==&gt; repr(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__str__() &lt;==&gt; str(x)</td></tr>
-</table><br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.message-module.html b/docs/private/paramiko.message-module.html
deleted file mode 100644
index 3a82218..0000000
--- a/docs/private/paramiko.message-module.html
+++ /dev/null
@@ -1,61 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.message</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Module&nbsp;message
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/paramiko.message-module.html">hide&nbsp;private</a>]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.message-module.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF MODULE DESCRIPTION =========== -->
-<h2 class="module">Module paramiko.message</h2>
-
-Implementation of an SSH2 &quot;message&quot;.
-<hr/>
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:46 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.packet-module.html b/docs/private/paramiko.packet-module.html
deleted file mode 100644
index a14ccd8..0000000
--- a/docs/private/paramiko.packet-module.html
+++ /dev/null
@@ -1,71 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.packet</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Module&nbsp;packet
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<b>show&nbsp;private</b>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="../private/paramiko.packet-module.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF MODULE DESCRIPTION =========== -->
-<h2 class="module">Module paramiko.packet</h2>
-
-Packetizer.
-<hr/>
-
-<!-- =========== START OF EXCEPTIONS =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Exceptions</th></tr>
-<tr><td width="15%">
- <b><a href="../private/paramiko.packet.NeedRekeyException-class.html"><code>NeedRekeyException</code></a></b></td>
- <td>&nbsp;</td></tr>
-</table><br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:48 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.packet.NeedRekeyException-class.html b/docs/private/paramiko.packet.NeedRekeyException-class.html
deleted file mode 100644
index 850f706..0000000
--- a/docs/private/paramiko.packet.NeedRekeyException-class.html
+++ /dev/null
@@ -1,86 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.packet.NeedRekeyException</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- <a href="../private/paramiko.packet-module.html">Module&nbsp;packet</a> ::
- Class&nbsp;NeedRekeyException
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<b>show&nbsp;private</b>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="../private/paramiko.packet.NeedRekeyException-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Class NeedRekeyException</h2>
-
-<pre class="base-tree">
-<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+
- |
- <b>NeedRekeyException</b>
-</pre><br />
-
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-</td></tr>
-</table><br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.pipe-module.html b/docs/private/paramiko.pipe-module.html
deleted file mode 100644
index 34edd01..0000000
--- a/docs/private/paramiko.pipe-module.html
+++ /dev/null
@@ -1,87 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.pipe</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Module&nbsp;pipe
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<b>show&nbsp;private</b>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="../private/paramiko.pipe-module.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF MODULE DESCRIPTION =========== -->
-<h2 class="module">Module paramiko.pipe</h2>
-
-Abstraction of a one-way pipe where the read end can be used in
-select(). Normally this is trivial, but Windows makes it nearly
-impossible.
-<hr/>
-
-<!-- =========== START OF CLASSES =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Classes</th></tr>
-<tr><td width="15%">
- <b><a href="../private/paramiko.pipe.PosixPipe-class.html"><code>PosixPipe</code></a></b></td>
- <td>&nbsp;</td></tr>
-<tr><td width="15%">
- <b><a href="../private/paramiko.pipe.WindowsPipe-class.html"><code>WindowsPipe</code></a></b></td>
- <td>On Windows, only an OS-level &quot;WinSock&quot; may be used in
-select(), but reads and writes must be to the actual socket object.</td></tr>
-</table><br />
-
-
-<!-- =========== START OF FUNCTION SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Function Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="make_pipe"></a><span class="summary-sig"><span class="summary-sig-name">make_pipe</span>()</span></code>
-</td></tr>
-</table><br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.pipe.PosixPipe-class.html b/docs/private/paramiko.pipe.PosixPipe-class.html
deleted file mode 100644
index b8a01b1..0000000
--- a/docs/private/paramiko.pipe.PosixPipe-class.html
+++ /dev/null
@@ -1,133 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.pipe.PosixPipe</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- <a href="../private/paramiko.pipe-module.html">Module&nbsp;pipe</a> ::
- Class&nbsp;PosixPipe
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<b>show&nbsp;private</b>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="../private/paramiko.pipe.PosixPipe-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type PosixPipe</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
- <b>PosixPipe</b>
-</pre><br />
-
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__init__"></a><span class="summary-sig"><span class="summary-sig-name">__init__</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="clear"></a><span class="summary-sig"><span class="summary-sig-name">clear</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="close"></a><span class="summary-sig"><span class="summary-sig-name">close</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="fileno"></a><span class="summary-sig"><span class="summary-sig-name">fileno</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="set"></a><span class="summary-sig"><span class="summary-sig-name">set</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="set_forever"></a><span class="summary-sig"><span class="summary-sig-name">set_forever</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__repr__() &lt;==&gt; repr(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__str__() &lt;==&gt; str(x)</td></tr>
-</table><br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:46 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.pipe.WindowsPipe-class.html b/docs/private/paramiko.pipe.WindowsPipe-class.html
deleted file mode 100644
index 56bd3f4..0000000
--- a/docs/private/paramiko.pipe.WindowsPipe-class.html
+++ /dev/null
@@ -1,137 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.pipe.WindowsPipe</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- <a href="../private/paramiko.pipe-module.html">Module&nbsp;pipe</a> ::
- Class&nbsp;WindowsPipe
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<b>show&nbsp;private</b>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="../private/paramiko.pipe.WindowsPipe-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type WindowsPipe</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
- <b>WindowsPipe</b>
-</pre><br />
-
-<hr/>
-
-On Windows, only an OS-level &quot;WinSock&quot; may be used in
-select(), but reads and writes must be to the actual socket object.
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__init__"></a><span class="summary-sig"><span class="summary-sig-name">__init__</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="clear"></a><span class="summary-sig"><span class="summary-sig-name">clear</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="close"></a><span class="summary-sig"><span class="summary-sig-name">close</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="fileno"></a><span class="summary-sig"><span class="summary-sig-name">fileno</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="set"></a><span class="summary-sig"><span class="summary-sig-name">set</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="set_forever"></a><span class="summary-sig"><span class="summary-sig-name">set_forever</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__repr__() &lt;==&gt; repr(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__str__() &lt;==&gt; str(x)</td></tr>
-</table><br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:46 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.pkey-module.html b/docs/private/paramiko.pkey-module.html
deleted file mode 100644
index 3b6a4a1..0000000
--- a/docs/private/paramiko.pkey-module.html
+++ /dev/null
@@ -1,61 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.pkey</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Module&nbsp;pkey
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/paramiko.pkey-module.html">hide&nbsp;private</a>]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.pkey-module.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF MODULE DESCRIPTION =========== -->
-<h2 class="module">Module paramiko.pkey</h2>
-
-Common API for all public keys.
-<hr/>
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.primes-module.html b/docs/private/paramiko.primes-module.html
deleted file mode 100644
index 3f2df29..0000000
--- a/docs/private/paramiko.primes-module.html
+++ /dev/null
@@ -1,117 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.primes</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Module&nbsp;primes
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<b>show&nbsp;private</b>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="../private/paramiko.primes-module.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF MODULE DESCRIPTION =========== -->
-<h2 class="module">Module paramiko.primes</h2>
-
-Utility functions for dealing with primes.
-<hr/>
-
-<!-- =========== START OF CLASSES =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Classes</th></tr>
-<tr><td width="15%">
- <b><a href="../private/paramiko.primes.ModulusPack-class.html"><code>ModulusPack</code></a></b></td>
- <td>convenience object for holding the contents of the /etc/ssh/moduli
-file, on systems that have such a file.</td></tr>
-</table><br />
-
-
-<!-- =========== START OF FUNCTION SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Function Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.primes-module.html#_generate_prime" class="summary-sig-name"><code>_generate_prime</code></a>(<span class=summary-sig-arg>bits</span>,
- <span class=summary-sig-arg>randpool</span>)</span></code>
-<br />
-primtive attempt at prime generation</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.primes-module.html#_roll_random" class="summary-sig-name"><code>_roll_random</code></a>(<span class=summary-sig-arg>rpool</span>,
- <span class=summary-sig-arg>n</span>)</span></code>
-<br />
-returns a random # from 0 to N-1</td></tr>
-</table><br />
-
-
-<!-- =========== START OF FUNCTION DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Function Details</th></tr>
-</table>
-
-<a name="_generate_prime"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">_generate_prime</span>(<span class=sig-arg>bits</span>,
- <span class=sig-arg>randpool</span>)</span>
- </h3>
- primtive attempt at prime generation
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-
-<a name="_roll_random"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">_roll_random</span>(<span class=sig-arg>rpool</span>,
- <span class=sig-arg>n</span>)</span>
- </h3>
- returns a random # from 0 to N-1
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:48 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.primes.ModulusPack-class.html b/docs/private/paramiko.primes.ModulusPack-class.html
deleted file mode 100644
index 438893b..0000000
--- a/docs/private/paramiko.primes.ModulusPack-class.html
+++ /dev/null
@@ -1,158 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.primes.ModulusPack</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- <a href="../private/paramiko.primes-module.html">Module&nbsp;primes</a> ::
- Class&nbsp;ModulusPack
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<b>show&nbsp;private</b>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="../private/paramiko.primes.ModulusPack-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type ModulusPack</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
- <b>ModulusPack</b>
-</pre><br />
-
-<hr/>
-
-convenience object for holding the contents of the /etc/ssh/moduli
-file, on systems that have such a file.
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__init__"></a><span class="summary-sig"><span class="summary-sig-name">__init__</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>rpool</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_parse_modulus"></a><span class="summary-sig"><span class="summary-sig-name">_parse_modulus</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>line</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="get_modulus"></a><span class="summary-sig"><span class="summary-sig-name">get_modulus</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>min</span>,
- <span class=summary-sig-arg>prefer</span>,
- <span class=summary-sig-arg>max</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.primes.ModulusPack-class.html#read_file" class="summary-sig-name"><code>read_file</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>filename</span>)</span></code>
-</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__repr__() &lt;==&gt; repr(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__str__() &lt;==&gt; str(x)</td></tr>
-</table><br />
-
-
-<!-- =========== START OF METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Method Details</th></tr>
-</table>
-
-<a name="read_file"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">read_file</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>filename</span>)</span>
- </h3>
- <dl><dt></dt><dd>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>IOError</b></code> -
- passed from any file operations that fail.
- </dl>
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:48 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.rsakey-module.html b/docs/private/paramiko.rsakey-module.html
deleted file mode 100644
index 29f2397..0000000
--- a/docs/private/paramiko.rsakey-module.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.rsakey</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Module&nbsp;rsakey
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/paramiko.rsakey-module.html">hide&nbsp;private</a>]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.rsakey-module.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF MODULE DESCRIPTION =========== -->
-<h2 class="module">Module paramiko.rsakey</h2>
-
-<a href="paramiko.RSAKey-class.html"
-class="link"><code>RSAKey</code></a>
-<hr/>
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:48 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.server-module.html b/docs/private/paramiko.server-module.html
deleted file mode 100644
index 95d6786..0000000
--- a/docs/private/paramiko.server-module.html
+++ /dev/null
@@ -1,74 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.server</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Module&nbsp;server
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/paramiko.server-module.html">hide&nbsp;private</a>]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.server-module.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF MODULE DESCRIPTION =========== -->
-<h2 class="module">Module paramiko.server</h2>
-
-<a href="../private/paramiko.ServerInterface-class.html"
-class="link"><code>ServerInterface</code></a> is an interface to override
-for server support.
-<hr/>
-
-<!-- =========== START OF CLASSES =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Classes</th></tr>
-<tr><td width="15%">
- <b><a href="paramiko.server.InteractiveQuery-class.html"><code>InteractiveQuery</code></a></b></td>
- <td>A query (set of prompts) for a user during interactive
-authentication.</td></tr>
-</table><br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.server.InteractiveQuery-class.html b/docs/private/paramiko.server.InteractiveQuery-class.html
deleted file mode 100644
index adc7ea2..0000000
--- a/docs/private/paramiko.server.InteractiveQuery-class.html
+++ /dev/null
@@ -1,195 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.server.InteractiveQuery</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- <a href="paramiko.server-module.html">Module&nbsp;server</a> ::
- Class&nbsp;InteractiveQuery
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/paramiko.server.InteractiveQuery-class.html">hide&nbsp;private</a>]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.server.InteractiveQuery-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type InteractiveQuery</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
- <b>InteractiveQuery</b>
-</pre><br />
-
-<hr/>
-
-A query (set of prompts) for a user during interactive
-authentication.
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.server.InteractiveQuery-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>name</span>,
- <span class=summary-sig-arg>instructions</span>,
- <span class="summary-sig-vararg">*prompts</span>)</span></code>
-<br />
-Create a new interactive query to send to the client.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.server.InteractiveQuery-class.html#add_prompt" class="summary-sig-name"><code>add_prompt</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>prompt</span>,
- <span class=summary-sig-arg>echo</span>)</span></code>
-<br />
-Add a prompt to this query.</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__repr__() &lt;==&gt; repr(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__str__() &lt;==&gt; str(x)</td></tr>
-</table><br />
-
-
-<!-- =========== START OF METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Method Details</th></tr>
-</table>
-
-<a name="__init__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__init__</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>name</span>=<span class=sig-default>''</span>,
- <span class=sig-arg>instructions</span>=<span class=sig-default>''</span>,
- <span class="sig-vararg">*prompts</span>)</span>
- <br /><i>(Constructor)</i>
- </h3>
- Create a new interactive query to send to the client. The name and
- instructions are optional, but are generally displayed to the end user.
- A list of prompts may be included, or they may be added via the <a
- href="paramiko.server.InteractiveQuery-class.html#add_prompt"
- class="link"><code>add_prompt</code></a> method.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>name</b></code> -
- name of this query
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>instructions</b></code> -
- user instructions (usually short) about this query
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="__builtin__.object-class.html#__init__"><code>__builtin__.object.__init__</code></a></dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="add_prompt"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">add_prompt</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>prompt</span>,
- <span class=sig-arg>echo</span>=<span class=sig-default>True</span>)</span>
- </h3>
- Add a prompt to this query. The prompt should be a (reasonably
- short) string. Multiple prompts can be added to the same query.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>prompt</b></code> -
- the user prompt
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>echo</b></code> -
- <code>True</code> (default) if the user's response should be
- echoed; <code>False</code> if not (for a password or similar)
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=bool)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.sftp-module.html b/docs/private/paramiko.sftp-module.html
deleted file mode 100644
index 2d280dd..0000000
--- a/docs/private/paramiko.sftp-module.html
+++ /dev/null
@@ -1,1082 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.sftp</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Module&nbsp;sftp
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/paramiko.sftp-module.html">hide&nbsp;private</a>]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.sftp-module.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF MODULE DESCRIPTION =========== -->
-<h2 class="module">Module paramiko.sftp</h2>
-
-
-<!-- =========== START OF VARIABLE SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Variable Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#CMD_ATTRS"><code>CMD_ATTRS</code></a></b> = <span title="105">105&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#CMD_CLOSE"><code>CMD_CLOSE</code></a></b> = <span title="4">4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#CMD_DATA"><code>CMD_DATA</code></a></b> = <span title="103">103&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#CMD_EXTENDED"><code>CMD_EXTENDED</code></a></b> = <span title="200">200&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#CMD_EXTENDED_REPLY"><code>CMD_EXTENDED_REPLY</code></a></b> = <span title="201">201&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#CMD_FSETSTAT"><code>CMD_FSETSTAT</code></a></b> = <span title="10">10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#CMD_FSTAT"><code>CMD_FSTAT</code></a></b> = <span title="8">8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#CMD_HANDLE"><code>CMD_HANDLE</code></a></b> = <span title="102">102&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#CMD_INIT"><code>CMD_INIT</code></a></b> = <span title="1">1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#CMD_LSTAT"><code>CMD_LSTAT</code></a></b> = <span title="7">7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#CMD_MKDIR"><code>CMD_MKDIR</code></a></b> = <span title="14">14&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#CMD_NAME"><code>CMD_NAME</code></a></b> = <span title="104">104&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>dict</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#CMD_NAMES"><code>CMD_NAMES</code></a></b> = <span title="{1: 'init', 2: 'version', 3: 'open', 4: 'close', 5: 'read', 6: 'write', 7: 'lstat', 8: 'fstat', 9: 'setstat', 10: 'fsetstat', 11: 'opendir', 12: 'readdir', 13: 'remove', 14: 'mkdir', 15: 'rmdir', 16: 'realpath', 17: 'stat', 18: 'rename', 19: 'readlink', 20: 'symlink', 200: 'extended', 201: 'extended_reply', 101: 'status', 102: 'handle', 103: 'data', 104: 'name', 105: 'attrs'}"><code>{1:&nbsp;'init',&nbsp;2:&nbsp;'version',&nbsp;3:&nbsp;'open',&nbsp;4:&nbsp;'clo<span class="variable-ellipsis">...</span></code>
-</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#CMD_OPEN"><code>CMD_OPEN</code></a></b> = <span title="3">3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#CMD_OPENDIR"><code>CMD_OPENDIR</code></a></b> = <span title="11">11&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#CMD_READ"><code>CMD_READ</code></a></b> = <span title="5">5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#CMD_READDIR"><code>CMD_READDIR</code></a></b> = <span title="12">12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#CMD_READLINK"><code>CMD_READLINK</code></a></b> = <span title="19">19&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#CMD_REALPATH"><code>CMD_REALPATH</code></a></b> = <span title="16">16&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#CMD_REMOVE"><code>CMD_REMOVE</code></a></b> = <span title="13">13&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#CMD_RENAME"><code>CMD_RENAME</code></a></b> = <span title="18">18&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#CMD_RMDIR"><code>CMD_RMDIR</code></a></b> = <span title="15">15&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#CMD_SETSTAT"><code>CMD_SETSTAT</code></a></b> = <span title="9">9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#CMD_STAT"><code>CMD_STAT</code></a></b> = <span title="17">17&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#CMD_STATUS"><code>CMD_STATUS</code></a></b> = <span title="101">101&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#CMD_SYMLINK"><code>CMD_SYMLINK</code></a></b> = <span title="20">20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#CMD_VERSION"><code>CMD_VERSION</code></a></b> = <span title="2">2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#CMD_WRITE"><code>CMD_WRITE</code></a></b> = <span title="6">6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#SFTP_BAD_MESSAGE"><code>SFTP_BAD_MESSAGE</code></a></b> = <span title="5">5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#SFTP_CONNECTION_LOST"><code>SFTP_CONNECTION_LOST</code></a></b> = <span title="7">7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>list</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#SFTP_DESC"><code>SFTP_DESC</code></a></b> = <span title="['Success', 'End of file', 'No such file', 'Permission denied', 'Failure', 'Bad message', 'No connection', 'Connection lost', 'Operation unsupported']"><code>['Success',&nbsp;'End&nbsp;of&nbsp;file',&nbsp;'No&nbsp;such&nbsp;file',&nbsp;'<span class="variable-ellipsis">...</span></code>
-</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#SFTP_EOF"><code>SFTP_EOF</code></a></b> = <span title="1">1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#SFTP_FAILURE"><code>SFTP_FAILURE</code></a></b> = <span title="4">4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#SFTP_FLAG_APPEND"><code>SFTP_FLAG_APPEND</code></a></b> = <span title="4">4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#SFTP_FLAG_CREATE"><code>SFTP_FLAG_CREATE</code></a></b> = <span title="8">8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#SFTP_FLAG_EXCL"><code>SFTP_FLAG_EXCL</code></a></b> = <span title="32">32&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#SFTP_FLAG_READ"><code>SFTP_FLAG_READ</code></a></b> = <span title="1">1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#SFTP_FLAG_TRUNC"><code>SFTP_FLAG_TRUNC</code></a></b> = <span title="16">16&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#SFTP_FLAG_WRITE"><code>SFTP_FLAG_WRITE</code></a></b> = <span title="2">2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#SFTP_NO_CONNECTION"><code>SFTP_NO_CONNECTION</code></a></b> = <span title="6">6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#SFTP_NO_SUCH_FILE"><code>SFTP_NO_SUCH_FILE</code></a></b> = <span title="2">2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#SFTP_OK"><code>SFTP_OK</code></a></b> = <span title="0">0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#SFTP_OP_UNSUPPORTED"><code>SFTP_OP_UNSUPPORTED</code></a></b> = <span title="8">8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#SFTP_PERMISSION_DENIED"><code>SFTP_PERMISSION_DENIED</code></a></b> = <span title="3">3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.sftp-module.html#_VERSION"><code>_VERSION</code></a></b> = <span title="3">3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-</table><br />
-
-
-<!-- =========== START OF VARIABLE DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Variable Details</th></tr>
-</table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CMD_ATTRS"></a>
-<h3>CMD_ATTRS</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="105"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-105&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CMD_CLOSE"></a>
-<h3>CMD_CLOSE</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="4"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CMD_DATA"></a>
-<h3>CMD_DATA</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="103"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-103&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CMD_EXTENDED"></a>
-<h3>CMD_EXTENDED</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="200"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-200&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CMD_EXTENDED_REPLY"></a>
-<h3>CMD_EXTENDED_REPLY</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="201"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-201&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CMD_FSETSTAT"></a>
-<h3>CMD_FSETSTAT</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="10"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CMD_FSTAT"></a>
-<h3>CMD_FSTAT</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="8"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CMD_HANDLE"></a>
-<h3>CMD_HANDLE</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="102"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-102&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CMD_INIT"></a>
-<h3>CMD_INIT</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="1"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CMD_LSTAT"></a>
-<h3>CMD_LSTAT</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="7"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CMD_MKDIR"></a>
-<h3>CMD_MKDIR</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="14"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-14&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CMD_NAME"></a>
-<h3>CMD_NAME</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="104"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-104&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CMD_NAMES"></a>
-<h3>CMD_NAMES</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>dict</code>
-
- </dd>
-<span title="{1: 'init', 2: 'version', 3: 'open', 4: 'close', 5: 'read', 6: 'write', 7: 'lstat', 8: 'fstat', 9: 'setstat', 10: 'fsetstat', 11: 'opendir', 12: 'readdir', 13: 'remove', 14: 'mkdir', 15: 'rmdir', 16: 'realpath', 17: 'stat', 18: 'rename', 19: 'readlink', 20: 'symlink', 200: 'extended', 201: 'extended_reply', 101: 'status', 102: 'handle', 103: 'data', 104: 'name', 105: 'attrs'}"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-{1: 'init',
- 2: 'version',
- 3: 'open',
- 4: 'close',
- 5: 'read',
- 6: 'write',
- 7: 'lstat',
- 8: 'fstat',
-<span class="variable-ellipsis">...</span> </pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CMD_OPEN"></a>
-<h3>CMD_OPEN</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="3"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CMD_OPENDIR"></a>
-<h3>CMD_OPENDIR</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="11"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-11&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CMD_READ"></a>
-<h3>CMD_READ</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="5"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CMD_READDIR"></a>
-<h3>CMD_READDIR</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="12"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CMD_READLINK"></a>
-<h3>CMD_READLINK</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="19"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-19&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CMD_REALPATH"></a>
-<h3>CMD_REALPATH</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="16"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-16&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CMD_REMOVE"></a>
-<h3>CMD_REMOVE</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="13"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-13&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CMD_RENAME"></a>
-<h3>CMD_RENAME</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="18"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-18&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CMD_RMDIR"></a>
-<h3>CMD_RMDIR</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="15"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-15&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CMD_SETSTAT"></a>
-<h3>CMD_SETSTAT</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="9"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CMD_STAT"></a>
-<h3>CMD_STAT</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="17"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-17&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CMD_STATUS"></a>
-<h3>CMD_STATUS</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="101"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-101&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CMD_SYMLINK"></a>
-<h3>CMD_SYMLINK</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="20"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CMD_VERSION"></a>
-<h3>CMD_VERSION</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="2"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CMD_WRITE"></a>
-<h3>CMD_WRITE</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="6"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="SFTP_BAD_MESSAGE"></a>
-<h3>SFTP_BAD_MESSAGE</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="5"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="SFTP_CONNECTION_LOST"></a>
-<h3>SFTP_CONNECTION_LOST</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="7"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="SFTP_DESC"></a>
-<h3>SFTP_DESC</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>list</code>
-
- </dd>
-<span title="['Success', 'End of file', 'No such file', 'Permission denied', 'Failure', 'Bad message', 'No connection', 'Connection lost', 'Operation unsupported']"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-['Success',
- 'End of file',
- 'No such file',
- 'Permission denied',
- 'Failure',
- 'Bad message',
- 'No connection',
- 'Connection lost',
-<span class="variable-ellipsis">...</span> </pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="SFTP_EOF"></a>
-<h3>SFTP_EOF</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="1"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="SFTP_FAILURE"></a>
-<h3>SFTP_FAILURE</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="4"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="SFTP_FLAG_APPEND"></a>
-<h3>SFTP_FLAG_APPEND</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="4"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="SFTP_FLAG_CREATE"></a>
-<h3>SFTP_FLAG_CREATE</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="8"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="SFTP_FLAG_EXCL"></a>
-<h3>SFTP_FLAG_EXCL</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="32"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-32&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="SFTP_FLAG_READ"></a>
-<h3>SFTP_FLAG_READ</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="1"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="SFTP_FLAG_TRUNC"></a>
-<h3>SFTP_FLAG_TRUNC</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="16"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-16&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="SFTP_FLAG_WRITE"></a>
-<h3>SFTP_FLAG_WRITE</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="2"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="SFTP_NO_CONNECTION"></a>
-<h3>SFTP_NO_CONNECTION</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="6"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="SFTP_NO_SUCH_FILE"></a>
-<h3>SFTP_NO_SUCH_FILE</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="2"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="SFTP_OK"></a>
-<h3>SFTP_OK</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="0"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="SFTP_OP_UNSUPPORTED"></a>
-<h3>SFTP_OP_UNSUPPORTED</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="8"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="SFTP_PERMISSION_DENIED"></a>
-<h3>SFTP_PERMISSION_DENIED</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="3"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="_VERSION"></a>
-<h3>_VERSION</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="3"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.sftp_attr-module.html b/docs/private/paramiko.sftp_attr-module.html
deleted file mode 100644
index f5e9f9c..0000000
--- a/docs/private/paramiko.sftp_attr-module.html
+++ /dev/null
@@ -1,59 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.sftp_attr</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Module&nbsp;sftp_attr
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/paramiko.sftp_attr-module.html">hide&nbsp;private</a>]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.sftp_attr-module.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF MODULE DESCRIPTION =========== -->
-<h2 class="module">Module paramiko.sftp_attr</h2>
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.sftp_client-module.html b/docs/private/paramiko.sftp_client-module.html
deleted file mode 100644
index 9eff026..0000000
--- a/docs/private/paramiko.sftp_client-module.html
+++ /dev/null
@@ -1,89 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.sftp_client</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Module&nbsp;sftp_client
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/paramiko.sftp_client-module.html">hide&nbsp;private</a>]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.sftp_client-module.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF MODULE DESCRIPTION =========== -->
-<h2 class="module">Module paramiko.sftp_client</h2>
-
-Client-mode SFTP support.
-<hr/>
-
-<!-- =========== START OF FUNCTION SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Function Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/paramiko.sftp_client-module.html#_to_unicode" class="summary-sig-name"><code>_to_unicode</code></a>(<span class=summary-sig-arg>s</span>)</span></code>
-<br />
-if a str is not ascii, decode its utf8 into unicode</td></tr>
-</table><br />
-
-
-<!-- =========== START OF FUNCTION DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Function Details</th></tr>
-</table>
-
-<a name="_to_unicode"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">_to_unicode</span>(<span class=sig-arg>s</span>)</span>
- </h3>
- if a str is not ascii, decode its utf8 into unicode
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.sftp_file-module.html b/docs/private/paramiko.sftp_file-module.html
deleted file mode 100644
index f954ea3..0000000
--- a/docs/private/paramiko.sftp_file-module.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.sftp_file</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Module&nbsp;sftp_file
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/paramiko.sftp_file-module.html">hide&nbsp;private</a>]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.sftp_file-module.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF MODULE DESCRIPTION =========== -->
-<h2 class="module">Module paramiko.sftp_file</h2>
-
-<a href="paramiko.SFTPFile-class.html"
-class="link"><code>SFTPFile</code></a>
-<hr/>
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.sftp_handle-module.html b/docs/private/paramiko.sftp_handle-module.html
deleted file mode 100644
index aba785c..0000000
--- a/docs/private/paramiko.sftp_handle-module.html
+++ /dev/null
@@ -1,61 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.sftp_handle</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Module&nbsp;sftp_handle
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/paramiko.sftp_handle-module.html">hide&nbsp;private</a>]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.sftp_handle-module.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF MODULE DESCRIPTION =========== -->
-<h2 class="module">Module paramiko.sftp_handle</h2>
-
-Abstraction of an SFTP file handle (for server mode).
-<hr/>
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.sftp_server-module.html b/docs/private/paramiko.sftp_server-module.html
deleted file mode 100644
index a4c43f5..0000000
--- a/docs/private/paramiko.sftp_server-module.html
+++ /dev/null
@@ -1,102 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.sftp_server</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Module&nbsp;sftp_server
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/paramiko.sftp_server-module.html">hide&nbsp;private</a>]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.sftp_server-module.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF MODULE DESCRIPTION =========== -->
-<h2 class="module">Module paramiko.sftp_server</h2>
-
-Server-mode SFTP support.
-<hr/>
-
-<!-- =========== START OF VARIABLE SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Variable Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>dict</code></font></td>
-<td><b><a href="../private/paramiko.sftp_server-module.html#_hash_class"><code>_hash_class</code></a></b> = <span title="{'sha1': &lt;module 'Crypto.Hash.SHA' from '/usr/lib/python2.4/site-packages/Crypto/Hash/SHA.pyc'&gt;, 'md5': &lt;module 'Crypto.Hash.MD5' from '/usr/lib/python2.4/site-packages/Crypto/Hash/MD5.pyc'&gt;}"><code>{'sha1':&nbsp;&lt;module&nbsp;'Crypto.Hash.SHA'&nbsp;from&nbsp;'/<span class="variable-ellipsis">...</span></code>
-</span></td></tr>
-</table><br />
-
-
-<!-- =========== START OF VARIABLE DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Variable Details</th></tr>
-</table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="_hash_class"></a>
-<h3>_hash_class</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>dict</code>
-
- </dd>
-<span title="{'sha1': &lt;module 'Crypto.Hash.SHA' from '/usr/lib/python2.4/site-packages/Crypto/Hash/SHA.pyc'&gt;, 'md5': &lt;module 'Crypto.Hash.MD5' from '/usr/lib/python2.4/site-packages/Crypto/Hash/MD5.pyc'&gt;}"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-{'md5': &lt;module 'Crypto.Hash.MD5' from '/usr/lib/python2.4/site-packag<span class="variable-linewrap">\</span>
-es/Crypto/Hash/MD5.pyc'&gt;,
- 'sha1': &lt;module 'Crypto.Hash.SHA' from '/usr/lib/python2.4/site-packa<span class="variable-linewrap">\</span>
-ges/Crypto/Hash/SHA.pyc'&gt;} </pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.sftp_si-module.html b/docs/private/paramiko.sftp_si-module.html
deleted file mode 100644
index c4e623f..0000000
--- a/docs/private/paramiko.sftp_si-module.html
+++ /dev/null
@@ -1,63 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.sftp_si</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Module&nbsp;sftp_si
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/paramiko.sftp_si-module.html">hide&nbsp;private</a>]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.sftp_si-module.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF MODULE DESCRIPTION =========== -->
-<h2 class="module">Module paramiko.sftp_si</h2>
-
-<a href="../private/paramiko.SFTPServerInterface-class.html"
-class="link"><code>SFTPServerInterface</code></a> is an interface to
-override for SFTP server support.
-<hr/>
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:48 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.ssh_exception-module.html b/docs/private/paramiko.ssh_exception-module.html
deleted file mode 100644
index dd9908c..0000000
--- a/docs/private/paramiko.ssh_exception-module.html
+++ /dev/null
@@ -1,72 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.ssh_exception</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Module&nbsp;ssh_exception
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<b>show&nbsp;private</b>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="../private/paramiko.ssh_exception-module.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF MODULE DESCRIPTION =========== -->
-<h2 class="module">Module paramiko.ssh_exception</h2>
-
-Exceptions defined by paramiko.
-<hr/>
-
-<!-- =========== START OF EXCEPTIONS =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Exceptions</th></tr>
-<tr><td width="15%">
- <b><a href="../private/paramiko.ssh_exception.PartialAuthentication-class.html"><code>PartialAuthentication</code></a></b></td>
- <td>An internal exception thrown in the case of partial
-authentication.</td></tr>
-</table><br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:46 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.ssh_exception.PartialAuthentication-class.html b/docs/private/paramiko.ssh_exception.PartialAuthentication-class.html
deleted file mode 100644
index 0aa4a93..0000000
--- a/docs/private/paramiko.ssh_exception.PartialAuthentication-class.html
+++ /dev/null
@@ -1,131 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.ssh_exception.PartialAuthentication</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- <a href="../private/paramiko.ssh_exception-module.html">Module&nbsp;ssh_exception</a> ::
- Class&nbsp;PartialAuthentication
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<b>show&nbsp;private</b>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="../private/paramiko.ssh_exception.PartialAuthentication-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Class PartialAuthentication</h2>
-
-<pre class="base-tree">
-<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+
- |
- <a href="paramiko.SSHException-class.html"><code>SSHException</code></a> --+
- |
- <b>PartialAuthentication</b>
-</pre><br />
-
-<hr/>
-
-An internal exception thrown in the case of partial
-authentication.
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__init__"></a><span class="summary-sig"><span class="summary-sig-name">__init__</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>types</span>)</span></code>
-</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-</td></tr>
-</table><br />
-
-
-<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Class Variable Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>list</code></font></td>
-<td><b><a href="../private/paramiko.ssh_exception.PartialAuthentication-class.html#allowed_types"><code>allowed_types</code></a></b> = <span title="[]"><code>[] </code>
-</span></td></tr>
-</table><br />
-
-
-<!-- =========== START OF CLASS VARIABLE DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Class Variable Details</th></tr>
-</table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="allowed_types"></a>
-<h3>allowed_types</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>list</code>
-
- </dd>
-<span title="[]"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-[] </pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.transport-module.html b/docs/private/paramiko.transport-module.html
deleted file mode 100644
index 1d52647..0000000
--- a/docs/private/paramiko.transport-module.html
+++ /dev/null
@@ -1,111 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.transport</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Module&nbsp;transport
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/paramiko.transport-module.html">hide&nbsp;private</a>]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.transport-module.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF MODULE DESCRIPTION =========== -->
-<h2 class="module">Module paramiko.transport</h2>
-
-<a href="paramiko.Transport-class.html"
-class="link"><code>Transport</code></a> handles the core SSH2
-protocol.
-<hr/>
-
-<!-- =========== START OF FUNCTION SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Function Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_join_lingering_threads"></a><span class="summary-sig"><span class="summary-sig-name">_join_lingering_threads</span>()</span></code>
-</td></tr>
-</table><br />
-
-
-<!-- =========== START OF VARIABLE SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Variable Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>list</code></font></td>
-<td><b><a href="../private/paramiko.transport-module.html#_active_threads"><code>_active_threads</code></a></b> = <span title="[]"><code>[] </code>
-</span></td></tr>
-</table><br />
-
-
-<!-- =========== START OF VARIABLE DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Variable Details</th></tr>
-</table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="_active_threads"></a>
-<h3>_active_threads</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>list</code>
-
- </dd>
-<span title="[]"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-[] </pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.util-module.html b/docs/private/paramiko.util-module.html
deleted file mode 100644
index 660bdf3..0000000
--- a/docs/private/paramiko.util-module.html
+++ /dev/null
@@ -1,475 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Module&nbsp;util
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/paramiko.util-module.html">hide&nbsp;private</a>]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.util-module.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF MODULE DESCRIPTION =========== -->
-<h2 class="module">Module paramiko.util</h2>
-
-Useful functions used by the rest of paramiko.
-<hr/>
-
-<!-- =========== START OF CLASSES =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Classes</th></tr>
-<tr><td width="15%">
- <b><a href="paramiko.util.PFilter-class.html"><code>PFilter</code></a></b></td>
- <td>&nbsp;</td></tr>
-</table><br />
-
-
-<!-- =========== START OF FUNCTION SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Function Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="bit_length"></a><span class="summary-sig"><span class="summary-sig-name">bit_length</span>(<span class=summary-sig-arg>n</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.util-module.html#deflate_long" class="summary-sig-name"><code>deflate_long</code></a>(<span class=summary-sig-arg>n</span>,
- <span class=summary-sig-arg>add_sign_padding</span>)</span></code>
-<br />
-turns a long-int into a normalized byte string (adapted from
-Crypto.Util.number)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="format_binary"></a><span class="summary-sig"><span class="summary-sig-name">format_binary</span>(<span class=summary-sig-arg>data</span>,
- <span class=summary-sig-arg>prefix</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="format_binary_line"></a><span class="summary-sig"><span class="summary-sig-name">format_binary_line</span>(<span class=summary-sig-arg>data</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="format_binary_weird"></a><span class="summary-sig"><span class="summary-sig-name">format_binary_weird</span>(<span class=summary-sig-arg>data</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> string
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.util-module.html#generate_key_bytes" class="summary-sig-name"><code>generate_key_bytes</code></a>(<span class=summary-sig-arg>hashclass</span>,
- <span class=summary-sig-arg>salt</span>,
- <span class=summary-sig-arg>key</span>,
- <span class=summary-sig-arg>nbytes</span>)</span></code>
-<br />
-Given a password, passphrase, or other human-source key, scramble it
-through a secure hash into some keyworthy bytes.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="get_logger"></a><span class="summary-sig"><span class="summary-sig-name">get_logger</span>(<span class=summary-sig-arg>name</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="get_thread_id"></a><span class="summary-sig"><span class="summary-sig-name">get_thread_id</span>()</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.util-module.html#hexify" class="summary-sig-name"><code>hexify</code></a>(<span class=summary-sig-arg>s</span>)</span></code>
-<br />
-turn a string into a hex sequence</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.util-module.html#inflate_long" class="summary-sig-name"><code>inflate_long</code></a>(<span class=summary-sig-arg>s</span>,
- <span class=summary-sig-arg>always_positive</span>)</span></code>
-<br />
-turns a normalized byte string into a long-int (adapted from
-Crypto.Util.number)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> dict(hostname, dict(keytype, <a
- href="../private/paramiko.PKey-class.html"
- class="link"><code>PKey</code></a>))
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.util-module.html#load_host_keys" class="summary-sig-name"><code>load_host_keys</code></a>(<span class=summary-sig-arg>filename</span>)</span></code>
-<br />
-Read a file of known SSH host keys, in the format used by openssh, and
-return a compound dict of <code>hostname -&gt; keytype -&gt;</code> <a
-href="../private/paramiko.PKey-class.html"
-class="link"><code>PKey</code></a>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.util-module.html#log_to_file" class="summary-sig-name"><code>log_to_file</code></a>(<span class=summary-sig-arg>filename</span>,
- <span class=summary-sig-arg>level</span>)</span></code>
-<br />
-send paramiko logs to a logfile, if they're not already going
-somewhere</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.util-module.html#lookup_ssh_host_config" class="summary-sig-name"><code>lookup_ssh_host_config</code></a>(<span class=summary-sig-arg>hostname</span>,
- <span class=summary-sig-arg>config</span>)</span></code>
-<br />
-Return a dict of config options for a given hostname.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="mod_inverse"></a><span class="summary-sig"><span class="summary-sig-name">mod_inverse</span>(<span class=summary-sig-arg>x</span>,
- <span class=summary-sig-arg>m</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> object
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.util-module.html#parse_ssh_config" class="summary-sig-name"><code>parse_ssh_config</code></a>(<span class=summary-sig-arg>file_obj</span>)</span></code>
-<br />
-Parse a config file of the format used by OpenSSH, and return an
-object that can be used to make queries to <a
-href="paramiko.util-module.html#lookup_ssh_host_config"
-class="link"><code>lookup_ssh_host_config</code></a>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="safe_string"></a><span class="summary-sig"><span class="summary-sig-name">safe_string</span>(<span class=summary-sig-arg>s</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="tb_strings"></a><span class="summary-sig"><span class="summary-sig-name">tb_strings</span>()</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.util-module.html#unhexify" class="summary-sig-name"><code>unhexify</code></a>(<span class=summary-sig-arg>s</span>)</span></code>
-<br />
-turn a hex sequence back into a string</td></tr>
-</table><br />
-
-
-<!-- =========== START OF VARIABLE SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Variable Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="../private/paramiko.util-module.html#_g_thread_counter"><code>_g_thread_counter</code></a></b> = <span title="0">0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>dict</code></font></td>
-<td><b><a href="../private/paramiko.util-module.html#_g_thread_ids"><code>_g_thread_ids</code></a></b> = <span title="{}"><code>{} </code>
-</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>lock</code></font></td>
-<td><b><a href="../private/paramiko.util-module.html#_g_thread_lock"><code>_g_thread_lock</code></a></b> = <span title="&lt;thread.lock object at 0xb7df2180&gt;"><code>&lt;thread.lock&nbsp;object&nbsp;at&nbsp;0xb7df2180&gt; </code>
-</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>PFilter</code></font></td>
-<td><b><a href="../private/paramiko.util-module.html#_pfilter"><code>_pfilter</code></a></b> = <span title="&lt;paramiko.util.PFilter object at 0xb7b39dac&gt;"><code>&lt;paramiko.util.PFilter&nbsp;object&nbsp;at&nbsp;0xb7b39dac&gt; </code>
-</span></td></tr>
-</table><br />
-
-
-<!-- =========== START OF FUNCTION DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Function Details</th></tr>
-</table>
-
-<a name="deflate_long"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">deflate_long</span>(<span class=sig-arg>n</span>,
- <span class=sig-arg>add_sign_padding</span>=<span class=sig-default>True</span>)</span>
- </h3>
- turns a long-int into a normalized byte string (adapted from
- Crypto.Util.number)
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-
-<a name="generate_key_bytes"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">generate_key_bytes</span>(<span class=sig-arg>hashclass</span>,
- <span class=sig-arg>salt</span>,
- <span class=sig-arg>key</span>,
- <span class=sig-arg>nbytes</span>)</span>
- </h3>
- Given a password, passphrase, or other human-source key, scramble it
- through a secure hash into some keyworthy bytes. This specific
- algorithm is used for encrypting/decrypting private key files.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>hashclass</b></code> -
- class from <code>Crypto.Hash</code> that can be used as a
- secure hashing function (like <code>MD5</code> or
- <code>SHA</code>).
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<code>Crypto.Hash</code>)</i>
- <dd><code><b>salt</b></code> -
- data to salt the hash with.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- <dd><code><b>key</b></code> -
- human-entered password or passphrase.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- <dd><code><b>nbytes</b></code> -
- number of bytes to generate.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- key data
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="hexify"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">hexify</span>(<span class=sig-arg>s</span>)</span>
- </h3>
- turn a string into a hex sequence
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-
-<a name="inflate_long"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">inflate_long</span>(<span class=sig-arg>s</span>,
- <span class=sig-arg>always_positive</span>=<span class=sig-default>False</span>)</span>
- </h3>
- turns a normalized byte string into a long-int (adapted from
- Crypto.Util.number)
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-
-<a name="load_host_keys"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">load_host_keys</span>(<span class=sig-arg>filename</span>)</span>
- </h3>
- <p>Read a file of known SSH host keys, in the format used by openssh,
- and return a compound dict of <code>hostname -&gt; keytype -&gt;</code>
- <a href="../private/paramiko.PKey-class.html"
- class="link"><code>PKey</code></a>. The hostname may be an IP address
- or DNS name. The keytype will be either
- <code>&quot;ssh-rsa&quot;</code> or
- <code>&quot;ssh-dss&quot;</code>.</p>
- This type of file unfortunately doesn't exist on Windows, but on
- posix, it will usually be stored in
- <code>os.path.expanduser(&quot;~/.ssh/known_hosts&quot;)</code>.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>filename</b></code> -
- name of the file to read host keys from
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- dict of host keys, indexed by hostname and then keytype
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=dict(hostname, dict(keytype, <a
- href="../private/paramiko.PKey-class.html"
- class="link"><code>PKey</code></a>)))</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="log_to_file"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">log_to_file</span>(<span class=sig-arg>filename</span>,
- <span class=sig-arg>level</span>=<span class=sig-default>10</span>)</span>
- </h3>
- send paramiko logs to a logfile, if they're not already going
- somewhere
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-
-<a name="lookup_ssh_host_config"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">lookup_ssh_host_config</span>(<span class=sig-arg>hostname</span>,
- <span class=sig-arg>config</span>)</span>
- </h3>
- <p>Return a dict of config options for a given hostname. The
- <code>config</code> object must come from <a
- href="paramiko.util-module.html#parse_ssh_config"
- class="link"><code>parse_ssh_config</code></a>.</p>
- <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
- *.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>
- 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 other processing is done to the keys or values.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>hostname</b></code> -
- the hostname to lookup
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>config</b></code> -
- the config object to search
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=object)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="parse_ssh_config"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">parse_ssh_config</span>(<span class=sig-arg>file_obj</span>)</span>
- </h3>
- <p>Parse a config file of the format used by OpenSSH, and return an
- object that can be used to make queries to <a
- href="paramiko.util-module.html#lookup_ssh_host_config"
- class="link"><code>lookup_ssh_host_config</code></a>. The format is
- described in OpenSSH's <code>ssh_config</code> man page. This method 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>
- The return value is currently a list of dictionaries, each
- containing host-specific configuration, but this is considered an
- implementation detail and may be subject to change in later
- versions.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>file_obj</b></code> -
- a file-like object to read the config file from
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=file)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- opaque configuration object
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=object)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="unhexify"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">unhexify</span>(<span class=sig-arg>s</span>)</span>
- </h3>
- turn a hex sequence back into a string
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF VARIABLE DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Variable Details</th></tr>
-</table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="_g_thread_counter"></a>
-<h3>_g_thread_counter</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="0"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="_g_thread_ids"></a>
-<h3>_g_thread_ids</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>dict</code>
-
- </dd>
-<span title="{}"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-{} </pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="_g_thread_lock"></a>
-<h3>_g_thread_lock</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>lock</code>
-
- </dd>
-<span title="&lt;thread.lock object at 0xb7df2180&gt;"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-&lt;thread.lock object at 0xb7df2180&gt; </pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="_pfilter"></a>
-<h3>_pfilter</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>PFilter</code>
-
- </dd>
-<span title="&lt;paramiko.util.PFilter object at 0xb7b39dac&gt;"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-&lt;paramiko.util.PFilter object at 0xb7b39dac&gt; </pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:48 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/paramiko.util.PFilter-class.html b/docs/private/paramiko.util.PFilter-class.html
deleted file mode 100644
index dee3883..0000000
--- a/docs/private/paramiko.util.PFilter-class.html
+++ /dev/null
@@ -1,124 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.PFilter</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- <a href="paramiko.util-module.html">Module&nbsp;util</a> ::
- Class&nbsp;PFilter
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/paramiko.util.PFilter-class.html">hide&nbsp;private</a>]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.util.PFilter-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type PFilter</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
- <b>PFilter</b>
-</pre><br />
-
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="filter"></a><span class="summary-sig"><span class="summary-sig-name">filter</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>record</span>)</span></code>
-</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__init__(...) initializes x; see x.__class__.__doc__ for
-signature</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__repr__() &lt;==&gt; repr(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__str__() &lt;==&gt; str(x)</td></tr>
-</table><br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:48 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/threading.Thread-class.html b/docs/private/threading.Thread-class.html
deleted file mode 100644
index 292b074..0000000
--- a/docs/private/threading.Thread-class.html
+++ /dev/null
@@ -1,237 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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>threading.Thread</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- Module&nbsp;threading ::
- Class&nbsp;Thread
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/threading.Thread-class.html">hide&nbsp;private</a>]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="threading.Thread-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type Thread</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
- <a href="../private/threading._Verbose-class.html"><code>_Verbose</code></a> --+
- |
- <b>Thread</b>
-</pre><br />
-
-<dl><dt><b>Known Subclasses:</b></dt>
-<dd>
- <a href="paramiko.SubsystemHandler-class.html"><code>SubsystemHandler</code></a>,
- <a href="paramiko.Transport-class.html"><code>Transport</code></a></dd></dl>
-
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__init__"></a><span class="summary-sig"><span class="summary-sig-name">__init__</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>group</span>,
- <span class=summary-sig-arg>target</span>,
- <span class=summary-sig-arg>name</span>,
- <span class=summary-sig-arg>args</span>,
- <span class=summary-sig-arg>kwargs</span>,
- <span class=summary-sig-arg>verbose</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">(type, value, traceback)</font></td>
- <td><code><span class="summary-sig"><code>__exc_info</code>()</span></code>
-<br />
-Return information about the most recent exception caught by an except
-clause in the current stack frame or in an older stack frame.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__repr__"></a><span class="summary-sig"><span class="summary-sig-name">__repr__</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="getName"></a><span class="summary-sig"><span class="summary-sig-name">getName</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="isAlive"></a><span class="summary-sig"><span class="summary-sig-name">isAlive</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="isDaemon"></a><span class="summary-sig"><span class="summary-sig-name">isDaemon</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="join"></a><span class="summary-sig"><span class="summary-sig-name">join</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>timeout</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="run"></a><span class="summary-sig"><span class="summary-sig-name">run</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="setDaemon"></a><span class="summary-sig"><span class="summary-sig-name">setDaemon</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>daemonic</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="setName"></a><span class="summary-sig"><span class="summary-sig-name">setName</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>name</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="start"></a><span class="summary-sig"><span class="summary-sig-name">start</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__bootstrap"></a><span class="summary-sig"><span class="summary-sig-name">__bootstrap</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/threading.Thread-class.html#__delete" class="summary-sig-name"><code>__delete</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Remove current thread from the dict of currently running threads.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__stop"></a><span class="summary-sig"><span class="summary-sig-name">__stop</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_set_daemon"></a><span class="summary-sig"><span class="summary-sig-name">_set_daemon</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from _Verbose</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="../private/threading._Verbose-class.html#_note" class="summary-sig-name"><code>_note</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>format</span>,
- <span class="summary-sig-vararg">*args</span>)</span></code>
-</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__str__() &lt;==&gt; str(x)</td></tr>
-</table><br />
-
-
-<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Class Variable Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>bool</code></font></td>
-<td><b><a href="../private/threading.Thread-class.html#__initialized"><code>_Thread__initialized</code></a></b> = <span title="False"><code>False </code>
-</span></td></tr>
-</table><br />
-
-
-<!-- =========== START OF METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Method Details</th></tr>
-</table>
-
-<a name="__delete"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__delete</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Remove current thread from the dict of currently running
- threads.
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF CLASS VARIABLE DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Class Variable Details</th></tr>
-</table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="_Thread__initialized"></a>
-<h3>_Thread__initialized</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>bool</code>
-
- </dd>
-<span title="False"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-False </pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/threading._Verbose-class.html b/docs/private/threading._Verbose-class.html
deleted file mode 100644
index dec73e3..0000000
--- a/docs/private/threading._Verbose-class.html
+++ /dev/null
@@ -1,127 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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>threading._Verbose</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- Module&nbsp;threading ::
- Class&nbsp;_Verbose
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<b>show&nbsp;private</b>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="../private/threading._Verbose-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type _Verbose</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
- <b>_Verbose</b>
-</pre><br />
-
-<dl><dt><b>Known Subclasses:</b></dt>
-<dd>
- <a href="threading.Thread-class.html"><code>Thread</code></a></dd></dl>
-
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__init__"></a><span class="summary-sig"><span class="summary-sig-name">__init__</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>verbose</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="_note"></a><span class="summary-sig"><span class="summary-sig-name">_note</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>format</span>,
- <span class="summary-sig-vararg">*args</span>)</span></code>
-</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__repr__() &lt;==&gt; repr(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__str__() &lt;==&gt; str(x)</td></tr>
-</table><br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:48 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/private/toc-everything.html b/docs/private/toc-everything.html
deleted file mode 100644
index a232317..0000000
--- a/docs/private/toc-everything.html
+++ /dev/null
@@ -1,224 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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>Everything</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-<center><font size="+1"><b>Everything</b></font></center>
-<hr>
-
-<!-- =========== START OF ALL CLASSES =========== -->
-<font size="+1"><b>All&nbsp;Classes</b></font><br />
-<a target="mainFrame" href="paramiko.Agent-class.html">paramiko.Agent</a><br />
-<a target="mainFrame" href="paramiko.AgentKey-class.html">paramiko.AgentKey</a><br />
-<a target="mainFrame" href="../private/paramiko.AuthHandler-class.html">paramiko.AuthHandler</a><br />
-<a target="mainFrame" href="../private/paramiko.BaseSFTP-class.html">paramiko.BaseSFTP</a><br />
-<a target="mainFrame" href="../private/paramiko.ber.BER-class.html">paramiko.ber.BER</a><br />
-<a target="mainFrame" href="paramiko.BufferedFile-class.html">paramiko.BufferedFile</a><br />
-<a target="mainFrame" href="paramiko.Channel-class.html">paramiko.Channel</a><br />
-<a target="mainFrame" href="../private/paramiko.channel.ChannelStderrFile-class.html">paramiko.channel.ChannelStderrFile</a><br />
-<a target="mainFrame" href="../private/paramiko.ChannelFile-class.html">paramiko.ChannelFile</a><br />
-<a target="mainFrame" href="../private/paramiko.compress.ZlibCompressor-class.html">paramiko.compress.ZlibCompressor</a><br />
-<a target="mainFrame" href="../private/paramiko.compress.ZlibDecompressor-class.html">paramiko.compress.ZlibDecompressor</a><br />
-<a target="mainFrame" href="paramiko.DSSKey-class.html">paramiko.DSSKey</a><br />
-<a target="mainFrame" href="../private/paramiko.kex_gex.KexGex-class.html">paramiko.kex_gex.KexGex</a><br />
-<a target="mainFrame" href="../private/paramiko.kex_group1.KexGroup1-class.html">paramiko.kex_group1.KexGroup1</a><br />
-<a target="mainFrame" href="../private/paramiko.logging22.Formatter-class.html">paramiko.logging22.Formatter</a><br />
-<a target="mainFrame" href="../private/paramiko.logging22.logger-class.html">paramiko.logging22.logger</a><br />
-<a target="mainFrame" href="../private/paramiko.logging22.StreamHandler-class.html">paramiko.logging22.StreamHandler</a><br />
-<a target="mainFrame" href="paramiko.Message-class.html">paramiko.Message</a><br />
-<a target="mainFrame" href="../private/paramiko.Packetizer-class.html">paramiko.Packetizer</a><br />
-<a target="mainFrame" href="../private/paramiko.pipe.PosixPipe-class.html">paramiko.pipe.PosixPipe</a><br />
-<a target="mainFrame" href="../private/paramiko.pipe.WindowsPipe-class.html">paramiko.pipe.WindowsPipe</a><br />
-<a target="mainFrame" href="../private/paramiko.PKey-class.html">paramiko.PKey</a><br />
-<a target="mainFrame" href="../private/paramiko.primes.ModulusPack-class.html">paramiko.primes.ModulusPack</a><br />
-<a target="mainFrame" href="paramiko.RSAKey-class.html">paramiko.RSAKey</a><br />
-<a target="mainFrame" href="paramiko.SecurityOptions-class.html">paramiko.SecurityOptions</a><br />
-<a target="mainFrame" href="paramiko.server.InteractiveQuery-class.html">paramiko.server.InteractiveQuery</a><br />
-<a target="mainFrame" href="../private/paramiko.ServerInterface-class.html">paramiko.ServerInterface</a><br />
-<a target="mainFrame" href="paramiko.SFTP-class.html">paramiko.SFTP</a><br />
-<a target="mainFrame" href="paramiko.SFTPAttributes-class.html">paramiko.SFTPAttributes</a><br />
-<a target="mainFrame" href="paramiko.SFTPClient-class.html">paramiko.SFTPClient</a><br />
-<a target="mainFrame" href="paramiko.SFTPFile-class.html">paramiko.SFTPFile</a><br />
-<a target="mainFrame" href="paramiko.SFTPHandle-class.html">paramiko.SFTPHandle</a><br />
-<a target="mainFrame" href="paramiko.SFTPServer-class.html">paramiko.SFTPServer</a><br />
-<a target="mainFrame" href="../private/paramiko.SFTPServerInterface-class.html">paramiko.SFTPServerInterface</a><br />
-<a target="mainFrame" href="paramiko.SubsystemHandler-class.html">paramiko.SubsystemHandler</a><br />
-<a target="mainFrame" href="paramiko.Transport-class.html">paramiko.Transport</a><br />
-<a target="mainFrame" href="paramiko.util.PFilter-class.html">paramiko.util.PFilter</a><br />
-<br />
-
-<!-- =========== START OF ALL EXCEPTIONS =========== -->
-<font size="+1"><b>All&nbsp;Exceptions</b></font><br />
-<a target="mainFrame" href="paramiko.BadAuthenticationType-class.html">paramiko.BadAuthenticationType</a><br />
-<a target="mainFrame" href="../private/paramiko.ber.BERException-class.html">paramiko.ber.BERException</a><br />
-<a target="mainFrame" href="../private/paramiko.packet.NeedRekeyException-class.html">paramiko.packet.NeedRekeyException</a><br />
-<a target="mainFrame" href="paramiko.PasswordRequiredException-class.html">paramiko.PasswordRequiredException</a><br />
-<a target="mainFrame" href="paramiko.SFTPError-class.html">paramiko.SFTPError</a><br />
-<a target="mainFrame" href="../private/paramiko.ssh_exception.PartialAuthentication-class.html">paramiko.ssh_exception.PartialAuthentication</a><br />
-<a target="mainFrame" href="paramiko.SSHException-class.html">paramiko.SSHException</a><br />
-<br />
-
-<!-- =========== START OF ALL FUNCTIONS =========== -->
-<font size="+1"><b>All&nbsp;Functions</b></font><br />
-<a target="mainFrame" href="../private/paramiko.primes-module.html#_generate_prime">_generate_prime</a><br />
-<a target="mainFrame" href="../private/paramiko.transport-module.html#_join_lingering_threads">_join_lingering_threads</a><br />
-<a target="mainFrame" href="../private/paramiko.primes-module.html#_roll_random">_roll_random</a><br />
-<a target="mainFrame" href="../private/paramiko.sftp_client-module.html#_to_unicode">_to_unicode</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#bit_length">bit_length</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#deflate_long">deflate_long</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#format_binary">format_binary</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#format_binary_line">format_binary_line</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#format_binary_weird">format_binary_weird</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#generate_key_bytes">generate_key_bytes</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#get_logger">get_logger</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#get_thread_id">get_thread_id</a><br />
-<a target="mainFrame" href="../private/paramiko.logging22-module.html#getLogger">getLogger</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#hexify">hexify</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#inflate_long">inflate_long</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#load_host_keys">load_host_keys</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#log_to_file">log_to_file</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#lookup_ssh_host_config">lookup_ssh_host_config</a><br />
-<a target="mainFrame" href="../private/paramiko.pipe-module.html#make_pipe">make_pipe</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#mod_inverse">mod_inverse</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#parse_ssh_config">parse_ssh_config</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#safe_string">safe_string</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#tb_strings">tb_strings</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#unhexify">unhexify</a><br />
-<br />
-
-<!-- =========== START OF ALL VARIABLES =========== -->
-<font size="+1"><b>All&nbsp;Variables</b></font><br />
-<a target="mainFrame" href="../private/paramiko-module.html#__author__">__author__</a><br />
-<a target="mainFrame" href="../private/paramiko-module.html#__date__">__date__</a><br />
-<a target="mainFrame" href="../private/paramiko-module.html#__license__">__license__</a><br />
-<a target="mainFrame" href="../private/paramiko-module.html#__version__">__version__</a><br />
-<a target="mainFrame" href="../private/paramiko-module.html#__version_info__">__version_info__</a><br />
-<a target="mainFrame" href="../private/paramiko.transport-module.html#_active_threads">_active_threads</a><br />
-<a target="mainFrame" href="../private/paramiko.file-module.html#_FLAG_APPEND">_FLAG_APPEND</a><br />
-<a target="mainFrame" href="../private/paramiko.file-module.html#_FLAG_BINARY">_FLAG_BINARY</a><br />
-<a target="mainFrame" href="../private/paramiko.file-module.html#_FLAG_BUFFERED">_FLAG_BUFFERED</a><br />
-<a target="mainFrame" href="../private/paramiko.file-module.html#_FLAG_LINE_BUFFERED">_FLAG_LINE_BUFFERED</a><br />
-<a target="mainFrame" href="../private/paramiko.file-module.html#_FLAG_READ">_FLAG_READ</a><br />
-<a target="mainFrame" href="../private/paramiko.file-module.html#_FLAG_UNIVERSAL_NEWLINE">_FLAG_UNIVERSAL_NEWLINE</a><br />
-<a target="mainFrame" href="../private/paramiko.file-module.html#_FLAG_WRITE">_FLAG_WRITE</a><br />
-<a target="mainFrame" href="../private/paramiko.util-module.html#_g_thread_counter">_g_thread_counter</a><br />
-<a target="mainFrame" href="../private/paramiko.util-module.html#_g_thread_ids">_g_thread_ids</a><br />
-<a target="mainFrame" href="../private/paramiko.util-module.html#_g_thread_lock">_g_thread_lock</a><br />
-<a target="mainFrame" href="../private/paramiko.sftp_server-module.html#_hash_class">_hash_class</a><br />
-<a target="mainFrame" href="../private/paramiko.logging22-module.html#_logger">_logger</a><br />
-<a target="mainFrame" href="../private/paramiko.kex_gex-module.html#_MSG_KEXDH_GEX_GROUP">_MSG_KEXDH_GEX_GROUP</a><br />
-<a target="mainFrame" href="../private/paramiko.kex_gex-module.html#_MSG_KEXDH_GEX_INIT">_MSG_KEXDH_GEX_INIT</a><br />
-<a target="mainFrame" href="../private/paramiko.kex_gex-module.html#_MSG_KEXDH_GEX_REPLY">_MSG_KEXDH_GEX_REPLY</a><br />
-<a target="mainFrame" href="../private/paramiko.kex_gex-module.html#_MSG_KEXDH_GEX_REQUEST">_MSG_KEXDH_GEX_REQUEST</a><br />
-<a target="mainFrame" href="../private/paramiko.kex_group1-module.html#_MSG_KEXDH_INIT">_MSG_KEXDH_INIT</a><br />
-<a target="mainFrame" href="../private/paramiko.kex_group1-module.html#_MSG_KEXDH_REPLY">_MSG_KEXDH_REPLY</a><br />
-<a target="mainFrame" href="../private/paramiko.util-module.html#_pfilter">_pfilter</a><br />
-<a target="mainFrame" href="../private/paramiko.sftp-module.html#_VERSION">_VERSION</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#AUTH_FAILED">AUTH_FAILED</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#AUTH_PARTIALLY_SUCCESSFUL">AUTH_PARTIALLY_SUCCESSFUL</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#AUTH_SUCCESSFUL">AUTH_SUCCESSFUL</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_ATTRS">CMD_ATTRS</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_CLOSE">CMD_CLOSE</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_DATA">CMD_DATA</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_EXTENDED">CMD_EXTENDED</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_EXTENDED_REPLY">CMD_EXTENDED_REPLY</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_FSETSTAT">CMD_FSETSTAT</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_FSTAT">CMD_FSTAT</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_HANDLE">CMD_HANDLE</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_INIT">CMD_INIT</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_LSTAT">CMD_LSTAT</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_MKDIR">CMD_MKDIR</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_NAME">CMD_NAME</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_NAMES">CMD_NAMES</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_OPEN">CMD_OPEN</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_OPENDIR">CMD_OPENDIR</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_READ">CMD_READ</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_READDIR">CMD_READDIR</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_READLINK">CMD_READLINK</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_REALPATH">CMD_REALPATH</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_REMOVE">CMD_REMOVE</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_RENAME">CMD_RENAME</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_RMDIR">CMD_RMDIR</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_SETSTAT">CMD_SETSTAT</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_STAT">CMD_STAT</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_STATUS">CMD_STATUS</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_SYMLINK">CMD_SYMLINK</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_VERSION">CMD_VERSION</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_WRITE">CMD_WRITE</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#CONNECTION_FAILED_CODE">CONNECTION_FAILED_CODE</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#CRITICAL">CRITICAL</a><br />
-<a target="mainFrame" href="../private/paramiko.logging22-module.html#CRITICAL">CRITICAL</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#DEBUG">DEBUG</a><br />
-<a target="mainFrame" href="../private/paramiko.logging22-module.html#DEBUG">DEBUG</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER">DISCONNECT_AUTH_CANCELLED_BY_USER</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE">DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE">DISCONNECT_SERVICE_NOT_AVAILABLE</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#ERROR">ERROR</a><br />
-<a target="mainFrame" href="../private/paramiko.logging22-module.html#ERROR">ERROR</a><br />
-<a target="mainFrame" href="../private/paramiko.kex_group1-module.html#G">G</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#INFO">INFO</a><br />
-<a target="mainFrame" href="../private/paramiko.logging22-module.html#INFO">INFO</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_CHANNEL_CLOSE">MSG_CHANNEL_CLOSE</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_CHANNEL_DATA">MSG_CHANNEL_DATA</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_CHANNEL_EOF">MSG_CHANNEL_EOF</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_CHANNEL_EXTENDED_DATA">MSG_CHANNEL_EXTENDED_DATA</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_CHANNEL_FAILURE">MSG_CHANNEL_FAILURE</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_CHANNEL_OPEN">MSG_CHANNEL_OPEN</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_CHANNEL_OPEN_FAILURE">MSG_CHANNEL_OPEN_FAILURE</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_CHANNEL_OPEN_SUCCESS">MSG_CHANNEL_OPEN_SUCCESS</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_CHANNEL_REQUEST">MSG_CHANNEL_REQUEST</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_CHANNEL_SUCCESS">MSG_CHANNEL_SUCCESS</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_CHANNEL_WINDOW_ADJUST">MSG_CHANNEL_WINDOW_ADJUST</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_DEBUG">MSG_DEBUG</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_DISCONNECT">MSG_DISCONNECT</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_GLOBAL_REQUEST">MSG_GLOBAL_REQUEST</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_IGNORE">MSG_IGNORE</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_KEXINIT">MSG_KEXINIT</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_NAMES">MSG_NAMES</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_NEWKEYS">MSG_NEWKEYS</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_REQUEST_FAILURE">MSG_REQUEST_FAILURE</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_REQUEST_SUCCESS">MSG_REQUEST_SUCCESS</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_SERVICE_ACCEPT">MSG_SERVICE_ACCEPT</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_SERVICE_REQUEST">MSG_SERVICE_REQUEST</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_UNIMPLEMENTED">MSG_UNIMPLEMENTED</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_USERAUTH_BANNER">MSG_USERAUTH_BANNER</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_USERAUTH_FAILURE">MSG_USERAUTH_FAILURE</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_USERAUTH_INFO_REQUEST">MSG_USERAUTH_INFO_REQUEST</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_USERAUTH_INFO_RESPONSE">MSG_USERAUTH_INFO_RESPONSE</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_USERAUTH_PK_OK">MSG_USERAUTH_PK_OK</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_USERAUTH_REQUEST">MSG_USERAUTH_REQUEST</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_USERAUTH_SUCCESS">MSG_USERAUTH_SUCCESS</a><br />
-<a target="mainFrame" href="../private/paramiko.kex_group1-module.html#P">P</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_BAD_MESSAGE">SFTP_BAD_MESSAGE</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_CONNECTION_LOST">SFTP_CONNECTION_LOST</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_DESC">SFTP_DESC</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_EOF">SFTP_EOF</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_FAILURE">SFTP_FAILURE</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_FLAG_APPEND">SFTP_FLAG_APPEND</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_FLAG_CREATE">SFTP_FLAG_CREATE</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_FLAG_EXCL">SFTP_FLAG_EXCL</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_FLAG_READ">SFTP_FLAG_READ</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_FLAG_TRUNC">SFTP_FLAG_TRUNC</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_FLAG_WRITE">SFTP_FLAG_WRITE</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_NO_CONNECTION">SFTP_NO_CONNECTION</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_NO_SUCH_FILE">SFTP_NO_SUCH_FILE</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_OK">SFTP_OK</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_OP_UNSUPPORTED">SFTP_OP_UNSUPPORTED</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_PERMISSION_DENIED">SFTP_PERMISSION_DENIED</a><br />
-<a target="mainFrame" href="paramiko.agent-module.html#SSH2_AGENT_IDENTITIES_ANSWER">SSH2_AGENT_IDENTITIES_ANSWER</a><br />
-<a target="mainFrame" href="paramiko.agent-module.html#SSH2_AGENT_SIGN_RESPONSE">SSH2_AGENT_SIGN_RESPONSE</a><br />
-<a target="mainFrame" href="paramiko.agent-module.html#SSH2_AGENTC_REQUEST_IDENTITIES">SSH2_AGENTC_REQUEST_IDENTITIES</a><br />
-<a target="mainFrame" href="paramiko.agent-module.html#SSH2_AGENTC_SIGN_REQUEST">SSH2_AGENTC_SIGN_REQUEST</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#WARNING">WARNING</a><br />
-<a target="mainFrame" href="../private/paramiko.logging22-module.html#WARNING">WARNING</a><br />
-<br />
-
-<hr>
-<font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/toc-everything.html">hide&nbsp;private</a>]</font>
-</body>
-</html>
diff --git a/docs/private/toc-paramiko-module.html b/docs/private/toc-paramiko-module.html
deleted file mode 100644
index e6f4d8b..0000000
--- a/docs/private/toc-paramiko-module.html
+++ /dev/null
@@ -1,94 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-<center><font size="+1"><b><a target="mainFrame" href="paramiko-module.html">paramiko</a></b></font></center>
-<hr>
-
-<!-- =========== START OF MODULES =========== -->
-<font size="+1"><b>Modules</b></font><br />
-<a target="mainFrame" href="paramiko.agent-module.html">agent</a><br />
-<a target="mainFrame" href="../private/paramiko.auth_handler-module.html">auth_handler</a><br />
-<a target="mainFrame" href="../private/paramiko.ber-module.html">ber</a><br />
-<a target="mainFrame" href="../private/paramiko.channel-module.html">channel</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html">common</a><br />
-<a target="mainFrame" href="../private/paramiko.compress-module.html">compress</a><br />
-<a target="mainFrame" href="paramiko.dsskey-module.html">dsskey</a><br />
-<a target="mainFrame" href="paramiko.file-module.html">file</a><br />
-<a target="mainFrame" href="../private/paramiko.kex_gex-module.html">kex_gex</a><br />
-<a target="mainFrame" href="../private/paramiko.kex_group1-module.html">kex_group1</a><br />
-<a target="mainFrame" href="../private/paramiko.logging22-module.html">logging22</a><br />
-<a target="mainFrame" href="paramiko.message-module.html">message</a><br />
-<a target="mainFrame" href="../private/paramiko.packet-module.html">packet</a><br />
-<a target="mainFrame" href="../private/paramiko.pipe-module.html">pipe</a><br />
-<a target="mainFrame" href="paramiko.pkey-module.html">pkey</a><br />
-<a target="mainFrame" href="../private/paramiko.primes-module.html">primes</a><br />
-<a target="mainFrame" href="paramiko.rsakey-module.html">rsakey</a><br />
-<a target="mainFrame" href="paramiko.server-module.html">server</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html">sftp</a><br />
-<a target="mainFrame" href="paramiko.sftp_attr-module.html">sftp_attr</a><br />
-<a target="mainFrame" href="paramiko.sftp_client-module.html">sftp_client</a><br />
-<a target="mainFrame" href="paramiko.sftp_file-module.html">sftp_file</a><br />
-<a target="mainFrame" href="paramiko.sftp_handle-module.html">sftp_handle</a><br />
-<a target="mainFrame" href="paramiko.sftp_server-module.html">sftp_server</a><br />
-<a target="mainFrame" href="paramiko.sftp_si-module.html">sftp_si</a><br />
-<a target="mainFrame" href="../private/paramiko.ssh_exception-module.html">ssh_exception</a><br />
-<a target="mainFrame" href="paramiko.transport-module.html">transport</a><br />
-<a target="mainFrame" href="paramiko.util-module.html">util</a><br />
-<br />
-
-<!-- =========== START OF CLASSES =========== -->
-<font size="+1"><b>Classes</b></font><br />
-<a target="mainFrame" href="paramiko.Agent-class.html">Agent</a><br />
-<a target="mainFrame" href="paramiko.AgentKey-class.html">AgentKey</a><br />
-<a target="mainFrame" href="../private/paramiko.AuthHandler-class.html">AuthHandler</a><br />
-<a target="mainFrame" href="../private/paramiko.BaseSFTP-class.html">BaseSFTP</a><br />
-<a target="mainFrame" href="paramiko.BufferedFile-class.html">BufferedFile</a><br />
-<a target="mainFrame" href="paramiko.Channel-class.html">Channel</a><br />
-<a target="mainFrame" href="../private/paramiko.ChannelFile-class.html">ChannelFile</a><br />
-<a target="mainFrame" href="paramiko.DSSKey-class.html">DSSKey</a><br />
-<a target="mainFrame" href="paramiko.Message-class.html">Message</a><br />
-<a target="mainFrame" href="../private/paramiko.Packetizer-class.html">Packetizer</a><br />
-<a target="mainFrame" href="../private/paramiko.PKey-class.html">PKey</a><br />
-<a target="mainFrame" href="paramiko.RSAKey-class.html">RSAKey</a><br />
-<a target="mainFrame" href="paramiko.SecurityOptions-class.html">SecurityOptions</a><br />
-<a target="mainFrame" href="../private/paramiko.ServerInterface-class.html">ServerInterface</a><br />
-<a target="mainFrame" href="paramiko.SFTP-class.html">SFTP</a><br />
-<a target="mainFrame" href="paramiko.SFTPAttributes-class.html">SFTPAttributes</a><br />
-<a target="mainFrame" href="paramiko.SFTPClient-class.html">SFTPClient</a><br />
-<a target="mainFrame" href="paramiko.SFTPFile-class.html">SFTPFile</a><br />
-<a target="mainFrame" href="paramiko.SFTPHandle-class.html">SFTPHandle</a><br />
-<a target="mainFrame" href="paramiko.SFTPServer-class.html">SFTPServer</a><br />
-<a target="mainFrame" href="../private/paramiko.SFTPServerInterface-class.html">SFTPServerInterface</a><br />
-<a target="mainFrame" href="paramiko.SubsystemHandler-class.html">SubsystemHandler</a><br />
-<a target="mainFrame" href="paramiko.Transport-class.html">Transport</a><br />
-<a target="mainFrame" href="../private/paramiko.ServerInterface-class.html">x</a><br />
-<br />
-
-<!-- =========== START OF EXCEPTIONS =========== -->
-<font size="+1"><b>Exceptions</b></font><br />
-<a target="mainFrame" href="paramiko.BadAuthenticationType-class.html">BadAuthenticationType</a><br />
-<a target="mainFrame" href="paramiko.PasswordRequiredException-class.html">PasswordRequiredException</a><br />
-<a target="mainFrame" href="paramiko.SFTPError-class.html">SFTPError</a><br />
-<a target="mainFrame" href="paramiko.SSHException-class.html">SSHException</a><br />
-<br />
-
-<!-- =========== START OF VARIABLES =========== -->
-<font size="+1"><b>Variables</b></font><br />
-<a target="mainFrame" href="../private/paramiko-module.html#__author__">__author__</a><br />
-<a target="mainFrame" href="../private/paramiko-module.html#__date__">__date__</a><br />
-<a target="mainFrame" href="../private/paramiko-module.html#__license__">__license__</a><br />
-<a target="mainFrame" href="../private/paramiko-module.html#__version__">__version__</a><br />
-<a target="mainFrame" href="../private/paramiko-module.html#__version_info__">__version_info__</a><br />
-<br />
-
-<hr>
-<font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/toc-paramiko-module.html">hide&nbsp;private</a>]</font>
-</body>
-</html>
diff --git a/docs/private/toc-paramiko.agent-module.html b/docs/private/toc-paramiko.agent-module.html
deleted file mode 100644
index 67aa397..0000000
--- a/docs/private/toc-paramiko.agent-module.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.agent</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-<center><font size="+1"><b><a target="mainFrame" href="paramiko.agent-module.html">agent</a></b></font></center>
-<hr>
-
-<!-- =========== START OF VARIABLES =========== -->
-<font size="+1"><b>Variables</b></font><br />
-<a target="mainFrame" href="paramiko.agent-module.html#SSH2_AGENT_IDENTITIES_ANSWER">SSH2_AGENT_IDENTITIES_ANSWER</a><br />
-<a target="mainFrame" href="paramiko.agent-module.html#SSH2_AGENT_SIGN_RESPONSE">SSH2_AGENT_SIGN_RESPONSE</a><br />
-<a target="mainFrame" href="paramiko.agent-module.html#SSH2_AGENTC_REQUEST_IDENTITIES">SSH2_AGENTC_REQUEST_IDENTITIES</a><br />
-<a target="mainFrame" href="paramiko.agent-module.html#SSH2_AGENTC_SIGN_REQUEST">SSH2_AGENTC_SIGN_REQUEST</a><br />
-<br />
-
-<hr>
-<font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/toc-paramiko.agent-module.html">hide&nbsp;private</a>]</font>
-</body>
-</html>
diff --git a/docs/private/toc-paramiko.auth_handler-module.html b/docs/private/toc-paramiko.auth_handler-module.html
deleted file mode 100644
index a82871d..0000000
--- a/docs/private/toc-paramiko.auth_handler-module.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.auth_handler</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-<center><font size="+1"><b><a target="mainFrame" href="../private/paramiko.auth_handler-module.html">auth_handler</a></b></font></center>
-<hr>
-
-<hr>
-<font size="-2">[<b>show&nbsp;private</b>&nbsp;|&nbsp;hide&nbsp;private]</font>
-</body>
-</html>
diff --git a/docs/private/toc-paramiko.ber-module.html b/docs/private/toc-paramiko.ber-module.html
deleted file mode 100644
index 2dd81d0..0000000
--- a/docs/private/toc-paramiko.ber-module.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.ber</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-<center><font size="+1"><b><a target="mainFrame" href="../private/paramiko.ber-module.html">ber</a></b></font></center>
-<hr>
-
-<!-- =========== START OF CLASSES =========== -->
-<font size="+1"><b>Classes</b></font><br />
-<a target="mainFrame" href="../private/paramiko.ber.BER-class.html">BER</a><br />
-<br />
-
-<!-- =========== START OF EXCEPTIONS =========== -->
-<font size="+1"><b>Exceptions</b></font><br />
-<a target="mainFrame" href="../private/paramiko.ber.BERException-class.html">BERException</a><br />
-<br />
-
-<hr>
-<font size="-2">[<b>show&nbsp;private</b>&nbsp;|&nbsp;hide&nbsp;private]</font>
-</body>
-</html>
diff --git a/docs/private/toc-paramiko.channel-module.html b/docs/private/toc-paramiko.channel-module.html
deleted file mode 100644
index d0eb4d9..0000000
--- a/docs/private/toc-paramiko.channel-module.html
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.channel</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-<center><font size="+1"><b><a target="mainFrame" href="../private/paramiko.channel-module.html">channel</a></b></font></center>
-<hr>
-
-<!-- =========== START OF CLASSES =========== -->
-<font size="+1"><b>Classes</b></font><br />
-<a target="mainFrame" href="../private/paramiko.channel.ChannelStderrFile-class.html">ChannelStderrFile</a><br />
-<br />
-
-<hr>
-<font size="-2">[<b>show&nbsp;private</b>&nbsp;|&nbsp;hide&nbsp;private]</font>
-</body>
-</html>
diff --git a/docs/private/toc-paramiko.common-module.html b/docs/private/toc-paramiko.common-module.html
deleted file mode 100644
index 3fe063c..0000000
--- a/docs/private/toc-paramiko.common-module.html
+++ /dev/null
@@ -1,63 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.common</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-<center><font size="+1"><b><a target="mainFrame" href="../private/paramiko.common-module.html">common</a></b></font></center>
-<hr>
-
-<!-- =========== START OF VARIABLES =========== -->
-<font size="+1"><b>Variables</b></font><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#AUTH_FAILED">AUTH_FAILED</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#AUTH_PARTIALLY_SUCCESSFUL">AUTH_PARTIALLY_SUCCESSFUL</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#AUTH_SUCCESSFUL">AUTH_SUCCESSFUL</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#CONNECTION_FAILED_CODE">CONNECTION_FAILED_CODE</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#CRITICAL">CRITICAL</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#DEBUG">DEBUG</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER">DISCONNECT_AUTH_CANCELLED_BY_USER</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE">DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE">DISCONNECT_SERVICE_NOT_AVAILABLE</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#ERROR">ERROR</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#INFO">INFO</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_CHANNEL_CLOSE">MSG_CHANNEL_CLOSE</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_CHANNEL_DATA">MSG_CHANNEL_DATA</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_CHANNEL_EOF">MSG_CHANNEL_EOF</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_CHANNEL_EXTENDED_DATA">MSG_CHANNEL_EXTENDED_DATA</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_CHANNEL_FAILURE">MSG_CHANNEL_FAILURE</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_CHANNEL_OPEN">MSG_CHANNEL_OPEN</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_CHANNEL_OPEN_FAILURE">MSG_CHANNEL_OPEN_FAILURE</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_CHANNEL_OPEN_SUCCESS">MSG_CHANNEL_OPEN_SUCCESS</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_CHANNEL_REQUEST">MSG_CHANNEL_REQUEST</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_CHANNEL_SUCCESS">MSG_CHANNEL_SUCCESS</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_CHANNEL_WINDOW_ADJUST">MSG_CHANNEL_WINDOW_ADJUST</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_DEBUG">MSG_DEBUG</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_DISCONNECT">MSG_DISCONNECT</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_GLOBAL_REQUEST">MSG_GLOBAL_REQUEST</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_IGNORE">MSG_IGNORE</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_KEXINIT">MSG_KEXINIT</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_NAMES">MSG_NAMES</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_NEWKEYS">MSG_NEWKEYS</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_REQUEST_FAILURE">MSG_REQUEST_FAILURE</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_REQUEST_SUCCESS">MSG_REQUEST_SUCCESS</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_SERVICE_ACCEPT">MSG_SERVICE_ACCEPT</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_SERVICE_REQUEST">MSG_SERVICE_REQUEST</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_UNIMPLEMENTED">MSG_UNIMPLEMENTED</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_USERAUTH_BANNER">MSG_USERAUTH_BANNER</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_USERAUTH_FAILURE">MSG_USERAUTH_FAILURE</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_USERAUTH_INFO_REQUEST">MSG_USERAUTH_INFO_REQUEST</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_USERAUTH_INFO_RESPONSE">MSG_USERAUTH_INFO_RESPONSE</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_USERAUTH_PK_OK">MSG_USERAUTH_PK_OK</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_USERAUTH_REQUEST">MSG_USERAUTH_REQUEST</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#MSG_USERAUTH_SUCCESS">MSG_USERAUTH_SUCCESS</a><br />
-<a target="mainFrame" href="../private/paramiko.common-module.html#WARNING">WARNING</a><br />
-<br />
-
-<hr>
-<font size="-2">[<b>show&nbsp;private</b>&nbsp;|&nbsp;hide&nbsp;private]</font>
-</body>
-</html>
diff --git a/docs/private/toc-paramiko.compress-module.html b/docs/private/toc-paramiko.compress-module.html
deleted file mode 100644
index df10cb8..0000000
--- a/docs/private/toc-paramiko.compress-module.html
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.compress</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-<center><font size="+1"><b><a target="mainFrame" href="../private/paramiko.compress-module.html">compress</a></b></font></center>
-<hr>
-
-<!-- =========== START OF CLASSES =========== -->
-<font size="+1"><b>Classes</b></font><br />
-<a target="mainFrame" href="../private/paramiko.compress.ZlibCompressor-class.html">ZlibCompressor</a><br />
-<a target="mainFrame" href="../private/paramiko.compress.ZlibDecompressor-class.html">ZlibDecompressor</a><br />
-<br />
-
-<hr>
-<font size="-2">[<b>show&nbsp;private</b>&nbsp;|&nbsp;hide&nbsp;private]</font>
-</body>
-</html>
diff --git a/docs/private/toc-paramiko.dsskey-module.html b/docs/private/toc-paramiko.dsskey-module.html
deleted file mode 100644
index dbdf69c..0000000
--- a/docs/private/toc-paramiko.dsskey-module.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.dsskey</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-<center><font size="+1"><b><a target="mainFrame" href="paramiko.dsskey-module.html">dsskey</a></b></font></center>
-<hr>
-
-<hr>
-<font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/toc-paramiko.dsskey-module.html">hide&nbsp;private</a>]</font>
-</body>
-</html>
diff --git a/docs/private/toc-paramiko.file-module.html b/docs/private/toc-paramiko.file-module.html
deleted file mode 100644
index 9cda933..0000000
--- a/docs/private/toc-paramiko.file-module.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.file</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-<center><font size="+1"><b><a target="mainFrame" href="paramiko.file-module.html">file</a></b></font></center>
-<hr>
-
-<!-- =========== START OF VARIABLES =========== -->
-<font size="+1"><b>Variables</b></font><br />
-<a target="mainFrame" href="../private/paramiko.file-module.html#_FLAG_APPEND">_FLAG_APPEND</a><br />
-<a target="mainFrame" href="../private/paramiko.file-module.html#_FLAG_BINARY">_FLAG_BINARY</a><br />
-<a target="mainFrame" href="../private/paramiko.file-module.html#_FLAG_BUFFERED">_FLAG_BUFFERED</a><br />
-<a target="mainFrame" href="../private/paramiko.file-module.html#_FLAG_LINE_BUFFERED">_FLAG_LINE_BUFFERED</a><br />
-<a target="mainFrame" href="../private/paramiko.file-module.html#_FLAG_READ">_FLAG_READ</a><br />
-<a target="mainFrame" href="../private/paramiko.file-module.html#_FLAG_UNIVERSAL_NEWLINE">_FLAG_UNIVERSAL_NEWLINE</a><br />
-<a target="mainFrame" href="../private/paramiko.file-module.html#_FLAG_WRITE">_FLAG_WRITE</a><br />
-<br />
-
-<hr>
-<font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/toc-paramiko.file-module.html">hide&nbsp;private</a>]</font>
-</body>
-</html>
diff --git a/docs/private/toc-paramiko.kex_gex-module.html b/docs/private/toc-paramiko.kex_gex-module.html
deleted file mode 100644
index fd9acc8..0000000
--- a/docs/private/toc-paramiko.kex_gex-module.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.kex_gex</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-<center><font size="+1"><b><a target="mainFrame" href="../private/paramiko.kex_gex-module.html">kex_gex</a></b></font></center>
-<hr>
-
-<!-- =========== START OF CLASSES =========== -->
-<font size="+1"><b>Classes</b></font><br />
-<a target="mainFrame" href="../private/paramiko.kex_gex.KexGex-class.html">KexGex</a><br />
-<br />
-
-<!-- =========== START OF VARIABLES =========== -->
-<font size="+1"><b>Variables</b></font><br />
-<a target="mainFrame" href="../private/paramiko.kex_gex-module.html#_MSG_KEXDH_GEX_GROUP">_MSG_KEXDH_GEX_GROUP</a><br />
-<a target="mainFrame" href="../private/paramiko.kex_gex-module.html#_MSG_KEXDH_GEX_INIT">_MSG_KEXDH_GEX_INIT</a><br />
-<a target="mainFrame" href="../private/paramiko.kex_gex-module.html#_MSG_KEXDH_GEX_REPLY">_MSG_KEXDH_GEX_REPLY</a><br />
-<a target="mainFrame" href="../private/paramiko.kex_gex-module.html#_MSG_KEXDH_GEX_REQUEST">_MSG_KEXDH_GEX_REQUEST</a><br />
-<br />
-
-<hr>
-<font size="-2">[<b>show&nbsp;private</b>&nbsp;|&nbsp;hide&nbsp;private]</font>
-</body>
-</html>
diff --git a/docs/private/toc-paramiko.kex_group1-module.html b/docs/private/toc-paramiko.kex_group1-module.html
deleted file mode 100644
index ca51eb0..0000000
--- a/docs/private/toc-paramiko.kex_group1-module.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.kex_group1</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-<center><font size="+1"><b><a target="mainFrame" href="../private/paramiko.kex_group1-module.html">kex_group1</a></b></font></center>
-<hr>
-
-<!-- =========== START OF CLASSES =========== -->
-<font size="+1"><b>Classes</b></font><br />
-<a target="mainFrame" href="../private/paramiko.kex_group1.KexGroup1-class.html">KexGroup1</a><br />
-<br />
-
-<!-- =========== START OF VARIABLES =========== -->
-<font size="+1"><b>Variables</b></font><br />
-<a target="mainFrame" href="../private/paramiko.kex_group1-module.html#_MSG_KEXDH_INIT">_MSG_KEXDH_INIT</a><br />
-<a target="mainFrame" href="../private/paramiko.kex_group1-module.html#_MSG_KEXDH_REPLY">_MSG_KEXDH_REPLY</a><br />
-<a target="mainFrame" href="../private/paramiko.kex_group1-module.html#G">G</a><br />
-<a target="mainFrame" href="../private/paramiko.kex_group1-module.html#P">P</a><br />
-<br />
-
-<hr>
-<font size="-2">[<b>show&nbsp;private</b>&nbsp;|&nbsp;hide&nbsp;private]</font>
-</body>
-</html>
diff --git a/docs/private/toc-paramiko.logging22-module.html b/docs/private/toc-paramiko.logging22-module.html
deleted file mode 100644
index 6b96de4..0000000
--- a/docs/private/toc-paramiko.logging22-module.html
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.logging22</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-<center><font size="+1"><b><a target="mainFrame" href="../private/paramiko.logging22-module.html">logging22</a></b></font></center>
-<hr>
-
-<!-- =========== START OF CLASSES =========== -->
-<font size="+1"><b>Classes</b></font><br />
-<a target="mainFrame" href="../private/paramiko.logging22.Formatter-class.html">Formatter</a><br />
-<a target="mainFrame" href="../private/paramiko.logging22.logger-class.html">logger</a><br />
-<a target="mainFrame" href="../private/paramiko.logging22.StreamHandler-class.html">StreamHandler</a><br />
-<br />
-
-<!-- =========== START OF FUNCTIONS =========== -->
-<font size="+1"><b>Functions</b></font><br />
-<a target="mainFrame" href="../private/paramiko.logging22-module.html#getLogger">getLogger</a><br />
-<br />
-
-<!-- =========== START OF VARIABLES =========== -->
-<font size="+1"><b>Variables</b></font><br />
-<a target="mainFrame" href="../private/paramiko.logging22-module.html#_logger">_logger</a><br />
-<a target="mainFrame" href="../private/paramiko.logging22-module.html#CRITICAL">CRITICAL</a><br />
-<a target="mainFrame" href="../private/paramiko.logging22-module.html#DEBUG">DEBUG</a><br />
-<a target="mainFrame" href="../private/paramiko.logging22-module.html#ERROR">ERROR</a><br />
-<a target="mainFrame" href="../private/paramiko.logging22-module.html#INFO">INFO</a><br />
-<a target="mainFrame" href="../private/paramiko.logging22-module.html#WARNING">WARNING</a><br />
-<br />
-
-<hr>
-<font size="-2">[<b>show&nbsp;private</b>&nbsp;|&nbsp;hide&nbsp;private]</font>
-</body>
-</html>
diff --git a/docs/private/toc-paramiko.message-module.html b/docs/private/toc-paramiko.message-module.html
deleted file mode 100644
index 13e6444..0000000
--- a/docs/private/toc-paramiko.message-module.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.message</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-<center><font size="+1"><b><a target="mainFrame" href="paramiko.message-module.html">message</a></b></font></center>
-<hr>
-
-<hr>
-<font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/toc-paramiko.message-module.html">hide&nbsp;private</a>]</font>
-</body>
-</html>
diff --git a/docs/private/toc-paramiko.packet-module.html b/docs/private/toc-paramiko.packet-module.html
deleted file mode 100644
index 670fb37..0000000
--- a/docs/private/toc-paramiko.packet-module.html
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.packet</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-<center><font size="+1"><b><a target="mainFrame" href="../private/paramiko.packet-module.html">packet</a></b></font></center>
-<hr>
-
-<!-- =========== START OF EXCEPTIONS =========== -->
-<font size="+1"><b>Exceptions</b></font><br />
-<a target="mainFrame" href="../private/paramiko.packet.NeedRekeyException-class.html">NeedRekeyException</a><br />
-<br />
-
-<hr>
-<font size="-2">[<b>show&nbsp;private</b>&nbsp;|&nbsp;hide&nbsp;private]</font>
-</body>
-</html>
diff --git a/docs/private/toc-paramiko.pipe-module.html b/docs/private/toc-paramiko.pipe-module.html
deleted file mode 100644
index 4a6b775..0000000
--- a/docs/private/toc-paramiko.pipe-module.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.pipe</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-<center><font size="+1"><b><a target="mainFrame" href="../private/paramiko.pipe-module.html">pipe</a></b></font></center>
-<hr>
-
-<!-- =========== START OF CLASSES =========== -->
-<font size="+1"><b>Classes</b></font><br />
-<a target="mainFrame" href="../private/paramiko.pipe.PosixPipe-class.html">PosixPipe</a><br />
-<a target="mainFrame" href="../private/paramiko.pipe.WindowsPipe-class.html">WindowsPipe</a><br />
-<br />
-
-<!-- =========== START OF FUNCTIONS =========== -->
-<font size="+1"><b>Functions</b></font><br />
-<a target="mainFrame" href="../private/paramiko.pipe-module.html#make_pipe">make_pipe</a><br />
-<br />
-
-<hr>
-<font size="-2">[<b>show&nbsp;private</b>&nbsp;|&nbsp;hide&nbsp;private]</font>
-</body>
-</html>
diff --git a/docs/private/toc-paramiko.pkey-module.html b/docs/private/toc-paramiko.pkey-module.html
deleted file mode 100644
index 56fa96f..0000000
--- a/docs/private/toc-paramiko.pkey-module.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.pkey</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-<center><font size="+1"><b><a target="mainFrame" href="paramiko.pkey-module.html">pkey</a></b></font></center>
-<hr>
-
-<hr>
-<font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/toc-paramiko.pkey-module.html">hide&nbsp;private</a>]</font>
-</body>
-</html>
diff --git a/docs/private/toc-paramiko.primes-module.html b/docs/private/toc-paramiko.primes-module.html
deleted file mode 100644
index 356d9bd..0000000
--- a/docs/private/toc-paramiko.primes-module.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.primes</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-<center><font size="+1"><b><a target="mainFrame" href="../private/paramiko.primes-module.html">primes</a></b></font></center>
-<hr>
-
-<!-- =========== START OF CLASSES =========== -->
-<font size="+1"><b>Classes</b></font><br />
-<a target="mainFrame" href="../private/paramiko.primes.ModulusPack-class.html">ModulusPack</a><br />
-<br />
-
-<!-- =========== START OF FUNCTIONS =========== -->
-<font size="+1"><b>Functions</b></font><br />
-<a target="mainFrame" href="../private/paramiko.primes-module.html#_generate_prime">_generate_prime</a><br />
-<a target="mainFrame" href="../private/paramiko.primes-module.html#_roll_random">_roll_random</a><br />
-<br />
-
-<hr>
-<font size="-2">[<b>show&nbsp;private</b>&nbsp;|&nbsp;hide&nbsp;private]</font>
-</body>
-</html>
diff --git a/docs/private/toc-paramiko.rsakey-module.html b/docs/private/toc-paramiko.rsakey-module.html
deleted file mode 100644
index 117cc82..0000000
--- a/docs/private/toc-paramiko.rsakey-module.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.rsakey</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-<center><font size="+1"><b><a target="mainFrame" href="paramiko.rsakey-module.html">rsakey</a></b></font></center>
-<hr>
-
-<hr>
-<font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/toc-paramiko.rsakey-module.html">hide&nbsp;private</a>]</font>
-</body>
-</html>
diff --git a/docs/private/toc-paramiko.server-module.html b/docs/private/toc-paramiko.server-module.html
deleted file mode 100644
index 58cf1e4..0000000
--- a/docs/private/toc-paramiko.server-module.html
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.server</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-<center><font size="+1"><b><a target="mainFrame" href="paramiko.server-module.html">server</a></b></font></center>
-<hr>
-
-<!-- =========== START OF CLASSES =========== -->
-<font size="+1"><b>Classes</b></font><br />
-<a target="mainFrame" href="paramiko.server.InteractiveQuery-class.html">InteractiveQuery</a><br />
-<br />
-
-<hr>
-<font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/toc-paramiko.server-module.html">hide&nbsp;private</a>]</font>
-</body>
-</html>
diff --git a/docs/private/toc-paramiko.sftp-module.html b/docs/private/toc-paramiko.sftp-module.html
deleted file mode 100644
index a2d59c4..0000000
--- a/docs/private/toc-paramiko.sftp-module.html
+++ /dev/null
@@ -1,66 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.sftp</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-<center><font size="+1"><b><a target="mainFrame" href="paramiko.sftp-module.html">sftp</a></b></font></center>
-<hr>
-
-<!-- =========== START OF VARIABLES =========== -->
-<font size="+1"><b>Variables</b></font><br />
-<a target="mainFrame" href="../private/paramiko.sftp-module.html#_VERSION">_VERSION</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_ATTRS">CMD_ATTRS</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_CLOSE">CMD_CLOSE</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_DATA">CMD_DATA</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_EXTENDED">CMD_EXTENDED</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_EXTENDED_REPLY">CMD_EXTENDED_REPLY</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_FSETSTAT">CMD_FSETSTAT</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_FSTAT">CMD_FSTAT</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_HANDLE">CMD_HANDLE</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_INIT">CMD_INIT</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_LSTAT">CMD_LSTAT</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_MKDIR">CMD_MKDIR</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_NAME">CMD_NAME</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_NAMES">CMD_NAMES</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_OPEN">CMD_OPEN</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_OPENDIR">CMD_OPENDIR</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_READ">CMD_READ</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_READDIR">CMD_READDIR</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_READLINK">CMD_READLINK</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_REALPATH">CMD_REALPATH</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_REMOVE">CMD_REMOVE</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_RENAME">CMD_RENAME</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_RMDIR">CMD_RMDIR</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_SETSTAT">CMD_SETSTAT</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_STAT">CMD_STAT</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_STATUS">CMD_STATUS</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_SYMLINK">CMD_SYMLINK</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_VERSION">CMD_VERSION</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_WRITE">CMD_WRITE</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_BAD_MESSAGE">SFTP_BAD_MESSAGE</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_CONNECTION_LOST">SFTP_CONNECTION_LOST</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_DESC">SFTP_DESC</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_EOF">SFTP_EOF</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_FAILURE">SFTP_FAILURE</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_FLAG_APPEND">SFTP_FLAG_APPEND</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_FLAG_CREATE">SFTP_FLAG_CREATE</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_FLAG_EXCL">SFTP_FLAG_EXCL</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_FLAG_READ">SFTP_FLAG_READ</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_FLAG_TRUNC">SFTP_FLAG_TRUNC</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_FLAG_WRITE">SFTP_FLAG_WRITE</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_NO_CONNECTION">SFTP_NO_CONNECTION</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_NO_SUCH_FILE">SFTP_NO_SUCH_FILE</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_OK">SFTP_OK</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_OP_UNSUPPORTED">SFTP_OP_UNSUPPORTED</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_PERMISSION_DENIED">SFTP_PERMISSION_DENIED</a><br />
-<br />
-
-<hr>
-<font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/toc-paramiko.sftp-module.html">hide&nbsp;private</a>]</font>
-</body>
-</html>
diff --git a/docs/private/toc-paramiko.sftp_attr-module.html b/docs/private/toc-paramiko.sftp_attr-module.html
deleted file mode 100644
index e1180e3..0000000
--- a/docs/private/toc-paramiko.sftp_attr-module.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.sftp_attr</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-<center><font size="+1"><b><a target="mainFrame" href="paramiko.sftp_attr-module.html">sftp_attr</a></b></font></center>
-<hr>
-
-<hr>
-<font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/toc-paramiko.sftp_attr-module.html">hide&nbsp;private</a>]</font>
-</body>
-</html>
diff --git a/docs/private/toc-paramiko.sftp_client-module.html b/docs/private/toc-paramiko.sftp_client-module.html
deleted file mode 100644
index e2f94fd..0000000
--- a/docs/private/toc-paramiko.sftp_client-module.html
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.sftp_client</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-<center><font size="+1"><b><a target="mainFrame" href="paramiko.sftp_client-module.html">sftp_client</a></b></font></center>
-<hr>
-
-<!-- =========== START OF FUNCTIONS =========== -->
-<font size="+1"><b>Functions</b></font><br />
-<a target="mainFrame" href="../private/paramiko.sftp_client-module.html#_to_unicode">_to_unicode</a><br />
-<br />
-
-<hr>
-<font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/toc-paramiko.sftp_client-module.html">hide&nbsp;private</a>]</font>
-</body>
-</html>
diff --git a/docs/private/toc-paramiko.sftp_file-module.html b/docs/private/toc-paramiko.sftp_file-module.html
deleted file mode 100644
index f270b0f..0000000
--- a/docs/private/toc-paramiko.sftp_file-module.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.sftp_file</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-<center><font size="+1"><b><a target="mainFrame" href="paramiko.sftp_file-module.html">sftp_file</a></b></font></center>
-<hr>
-
-<hr>
-<font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/toc-paramiko.sftp_file-module.html">hide&nbsp;private</a>]</font>
-</body>
-</html>
diff --git a/docs/private/toc-paramiko.sftp_handle-module.html b/docs/private/toc-paramiko.sftp_handle-module.html
deleted file mode 100644
index 1df5358..0000000
--- a/docs/private/toc-paramiko.sftp_handle-module.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.sftp_handle</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-<center><font size="+1"><b><a target="mainFrame" href="paramiko.sftp_handle-module.html">sftp_handle</a></b></font></center>
-<hr>
-
-<hr>
-<font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/toc-paramiko.sftp_handle-module.html">hide&nbsp;private</a>]</font>
-</body>
-</html>
diff --git a/docs/private/toc-paramiko.sftp_server-module.html b/docs/private/toc-paramiko.sftp_server-module.html
deleted file mode 100644
index 3c12fcc..0000000
--- a/docs/private/toc-paramiko.sftp_server-module.html
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.sftp_server</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-<center><font size="+1"><b><a target="mainFrame" href="paramiko.sftp_server-module.html">sftp_server</a></b></font></center>
-<hr>
-
-<!-- =========== START OF VARIABLES =========== -->
-<font size="+1"><b>Variables</b></font><br />
-<a target="mainFrame" href="../private/paramiko.sftp_server-module.html#_hash_class">_hash_class</a><br />
-<br />
-
-<hr>
-<font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/toc-paramiko.sftp_server-module.html">hide&nbsp;private</a>]</font>
-</body>
-</html>
diff --git a/docs/private/toc-paramiko.sftp_si-module.html b/docs/private/toc-paramiko.sftp_si-module.html
deleted file mode 100644
index 75605b8..0000000
--- a/docs/private/toc-paramiko.sftp_si-module.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.sftp_si</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-<center><font size="+1"><b><a target="mainFrame" href="paramiko.sftp_si-module.html">sftp_si</a></b></font></center>
-<hr>
-
-<hr>
-<font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/toc-paramiko.sftp_si-module.html">hide&nbsp;private</a>]</font>
-</body>
-</html>
diff --git a/docs/private/toc-paramiko.ssh_exception-module.html b/docs/private/toc-paramiko.ssh_exception-module.html
deleted file mode 100644
index 1567097..0000000
--- a/docs/private/toc-paramiko.ssh_exception-module.html
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.ssh_exception</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-<center><font size="+1"><b><a target="mainFrame" href="../private/paramiko.ssh_exception-module.html">ssh_exception</a></b></font></center>
-<hr>
-
-<!-- =========== START OF EXCEPTIONS =========== -->
-<font size="+1"><b>Exceptions</b></font><br />
-<a target="mainFrame" href="../private/paramiko.ssh_exception.PartialAuthentication-class.html">PartialAuthentication</a><br />
-<br />
-
-<hr>
-<font size="-2">[<b>show&nbsp;private</b>&nbsp;|&nbsp;hide&nbsp;private]</font>
-</body>
-</html>
diff --git a/docs/private/toc-paramiko.transport-module.html b/docs/private/toc-paramiko.transport-module.html
deleted file mode 100644
index d5d5651..0000000
--- a/docs/private/toc-paramiko.transport-module.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.transport</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-<center><font size="+1"><b><a target="mainFrame" href="paramiko.transport-module.html">transport</a></b></font></center>
-<hr>
-
-<!-- =========== START OF FUNCTIONS =========== -->
-<font size="+1"><b>Functions</b></font><br />
-<a target="mainFrame" href="../private/paramiko.transport-module.html#_join_lingering_threads">_join_lingering_threads</a><br />
-<br />
-
-<!-- =========== START OF VARIABLES =========== -->
-<font size="+1"><b>Variables</b></font><br />
-<a target="mainFrame" href="../private/paramiko.transport-module.html#_active_threads">_active_threads</a><br />
-<br />
-
-<hr>
-<font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/toc-paramiko.transport-module.html">hide&nbsp;private</a>]</font>
-</body>
-</html>
diff --git a/docs/private/toc-paramiko.util-module.html b/docs/private/toc-paramiko.util-module.html
deleted file mode 100644
index a290c16..0000000
--- a/docs/private/toc-paramiko.util-module.html
+++ /dev/null
@@ -1,52 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-<center><font size="+1"><b><a target="mainFrame" href="paramiko.util-module.html">util</a></b></font></center>
-<hr>
-
-<!-- =========== START OF CLASSES =========== -->
-<font size="+1"><b>Classes</b></font><br />
-<a target="mainFrame" href="paramiko.util.PFilter-class.html">PFilter</a><br />
-<br />
-
-<!-- =========== START OF FUNCTIONS =========== -->
-<font size="+1"><b>Functions</b></font><br />
-<a target="mainFrame" href="paramiko.util-module.html#bit_length">bit_length</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#deflate_long">deflate_long</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#format_binary">format_binary</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#format_binary_line">format_binary_line</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#format_binary_weird">format_binary_weird</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#generate_key_bytes">generate_key_bytes</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#get_logger">get_logger</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#get_thread_id">get_thread_id</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#hexify">hexify</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#inflate_long">inflate_long</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#load_host_keys">load_host_keys</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#log_to_file">log_to_file</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#lookup_ssh_host_config">lookup_ssh_host_config</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#mod_inverse">mod_inverse</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#parse_ssh_config">parse_ssh_config</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#safe_string">safe_string</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#tb_strings">tb_strings</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#unhexify">unhexify</a><br />
-<br />
-
-<!-- =========== START OF VARIABLES =========== -->
-<font size="+1"><b>Variables</b></font><br />
-<a target="mainFrame" href="../private/paramiko.util-module.html#_g_thread_counter">_g_thread_counter</a><br />
-<a target="mainFrame" href="../private/paramiko.util-module.html#_g_thread_ids">_g_thread_ids</a><br />
-<a target="mainFrame" href="../private/paramiko.util-module.html#_g_thread_lock">_g_thread_lock</a><br />
-<a target="mainFrame" href="../private/paramiko.util-module.html#_pfilter">_pfilter</a><br />
-<br />
-
-<hr>
-<font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/toc-paramiko.util-module.html">hide&nbsp;private</a>]</font>
-</body>
-</html>
diff --git a/docs/private/toc.html b/docs/private/toc.html
deleted file mode 100644
index fd91230..0000000
--- a/docs/private/toc.html
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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>Table of Contents</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-<center><font size="+1"><b>Table&nbsp;of&nbsp;Contents</b></font></center>
-<hr>
-<a target="moduleFrame" href="toc-everything.html">Everything</a><br />
-
-<!-- =========== START OF PACKAGES =========== -->
-<br /><font size="+1"><b>Packages</b></font><br />
-<a target="moduleFrame" href="toc-paramiko-module.html">paramiko</a><br />
-
-<!-- =========== START OF MODULES =========== -->
-<br /><font size="+1"><b>Modules</b></font><br />
-<a target="moduleFrame" href="toc-paramiko.agent-module.html">paramiko.agent</a><br />
-<a target="moduleFrame" href="toc-paramiko.auth_handler-module.html">paramiko.auth_handler</a><br />
-<a target="moduleFrame" href="toc-paramiko.ber-module.html">paramiko.ber</a><br />
-<a target="moduleFrame" href="toc-paramiko.channel-module.html">paramiko.channel</a><br />
-<a target="moduleFrame" href="toc-paramiko.common-module.html">paramiko.common</a><br />
-<a target="moduleFrame" href="toc-paramiko.compress-module.html">paramiko.compress</a><br />
-<a target="moduleFrame" href="toc-paramiko.dsskey-module.html">paramiko.dsskey</a><br />
-<a target="moduleFrame" href="toc-paramiko.file-module.html">paramiko.file</a><br />
-<a target="moduleFrame" href="toc-paramiko.kex_gex-module.html">paramiko.kex_gex</a><br />
-<a target="moduleFrame" href="toc-paramiko.kex_group1-module.html">paramiko.kex_group1</a><br />
-<a target="moduleFrame" href="toc-paramiko.logging22-module.html">paramiko.logging22</a><br />
-<a target="moduleFrame" href="toc-paramiko.message-module.html">paramiko.message</a><br />
-<a target="moduleFrame" href="toc-paramiko.packet-module.html">paramiko.packet</a><br />
-<a target="moduleFrame" href="toc-paramiko.pipe-module.html">paramiko.pipe</a><br />
-<a target="moduleFrame" href="toc-paramiko.pkey-module.html">paramiko.pkey</a><br />
-<a target="moduleFrame" href="toc-paramiko.primes-module.html">paramiko.primes</a><br />
-<a target="moduleFrame" href="toc-paramiko.rsakey-module.html">paramiko.rsakey</a><br />
-<a target="moduleFrame" href="toc-paramiko.server-module.html">paramiko.server</a><br />
-<a target="moduleFrame" href="toc-paramiko.sftp-module.html">paramiko.sftp</a><br />
-<a target="moduleFrame" href="toc-paramiko.sftp_attr-module.html">paramiko.sftp_attr</a><br />
-<a target="moduleFrame" href="toc-paramiko.sftp_client-module.html">paramiko.sftp_client</a><br />
-<a target="moduleFrame" href="toc-paramiko.sftp_file-module.html">paramiko.sftp_file</a><br />
-<a target="moduleFrame" href="toc-paramiko.sftp_handle-module.html">paramiko.sftp_handle</a><br />
-<a target="moduleFrame" href="toc-paramiko.sftp_server-module.html">paramiko.sftp_server</a><br />
-<a target="moduleFrame" href="toc-paramiko.sftp_si-module.html">paramiko.sftp_si</a><br />
-<a target="moduleFrame" href="toc-paramiko.ssh_exception-module.html">paramiko.ssh_exception</a><br />
-<a target="moduleFrame" href="toc-paramiko.transport-module.html">paramiko.transport</a><br />
-<a target="moduleFrame" href="toc-paramiko.util-module.html">paramiko.util</a><br />
-
-<br /><hr>
-<font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/toc.html">hide&nbsp;private</a>]</font>
-</body>
-</html>
diff --git a/docs/private/trees.html b/docs/private/trees.html
deleted file mode 100644
index d762eb6..0000000
--- a/docs/private/trees.html
+++ /dev/null
@@ -1,243 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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>Module and Class Hierarchies</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th bgcolor="#70b0f0" class="navselect">&nbsp;&nbsp;&nbsp;Trees&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[show&nbsp;private&nbsp;|&nbsp;<a href="../public/trees.html">hide&nbsp;private</a>]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="trees.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF MODULE HIERARCHY =========== -->
-<h2>Module Hierarchy</h2>
-<ul>
-<li> <b><a href="paramiko-module.html"><code>paramiko</code></a></b>: <i><i>Paramiko</i> (a combination of the esperanto words for
-&quot;paranoid&quot; and &quot;friend&quot;) is a module for python 2.3
-or greater that implements the SSH2 protocol for secure (encrypted and
-authenticated) connections to remote machines.</i>
- <ul>
- <li> <b><a href="paramiko.agent-module.html"><code>agent</code></a></b>: <i>SSH Agent interface for Unix clients.</i>
- <li> <b><a href="paramiko.dsskey-module.html"><code>dsskey</code></a></b>: <i><a href="paramiko.DSSKey-class.html"
-class="link"><code>DSSKey</code></a></i>
- <li> <b><a href="paramiko.file-module.html"><code>file</code></a></b>: <i>BufferedFile.</i>
- <li> <b><a href="paramiko.message-module.html"><code>message</code></a></b>: <i>Implementation of an SSH2 &quot;message&quot;.</i>
- <li> <b><a href="paramiko.pkey-module.html"><code>pkey</code></a></b>: <i>Common API for all public keys.</i>
- <li> <b><a href="paramiko.rsakey-module.html"><code>rsakey</code></a></b>: <i><a href="paramiko.RSAKey-class.html"
-class="link"><code>RSAKey</code></a></i>
- <li> <b><a href="paramiko.server-module.html"><code>server</code></a></b>: <i><a href="../private/paramiko.ServerInterface-class.html"
-class="link"><code>ServerInterface</code></a> is an interface to override
-for server support.</i>
- <li> <b><a href="paramiko.sftp-module.html"><code>sftp</code></a></b>
- <li> <b><a href="paramiko.sftp_attr-module.html"><code>sftp_attr</code></a></b>
- <li> <b><a href="paramiko.sftp_client-module.html"><code>sftp_client</code></a></b>: <i>Client-mode SFTP support.</i>
- <li> <b><a href="paramiko.sftp_file-module.html"><code>sftp_file</code></a></b>: <i><a href="paramiko.SFTPFile-class.html"
-class="link"><code>SFTPFile</code></a></i>
- <li> <b><a href="paramiko.sftp_handle-module.html"><code>sftp_handle</code></a></b>: <i>Abstraction of an SFTP file handle (for server mode).</i>
- <li> <b><a href="paramiko.sftp_server-module.html"><code>sftp_server</code></a></b>: <i>Server-mode SFTP support.</i>
- <li> <b><a href="paramiko.sftp_si-module.html"><code>sftp_si</code></a></b>: <i><a href="../private/paramiko.SFTPServerInterface-class.html"
-class="link"><code>SFTPServerInterface</code></a> is an interface to
-override for SFTP server support.</i>
- <li> <b><a href="paramiko.transport-module.html"><code>transport</code></a></b>: <i><a href="paramiko.Transport-class.html"
-class="link"><code>Transport</code></a> handles the core SSH2
-protocol.</i>
- <li> <b><a href="paramiko.util-module.html"><code>util</code></a></b>: <i>Useful functions used by the rest of paramiko.</i>
- <li> <b><a href="../private/paramiko.auth_handler-module.html"><code>auth_handler</code></a></b>: <i><a href="../private/paramiko.AuthHandler-class.html"
-class="link"><code>AuthHandler</code></a></i>
- <li> <b><a href="../private/paramiko.ber-module.html"><code>ber</code></a></b>
- <li> <b><a href="../private/paramiko.channel-module.html"><code>channel</code></a></b>: <i>Abstraction for an SSH2 channel.</i>
- <li> <b><a href="../private/paramiko.common-module.html"><code>common</code></a></b>: <i>Common constants and global variables.</i>
- <li> <b><a href="../private/paramiko.compress-module.html"><code>compress</code></a></b>: <i>Compression implementations for a Transport.</i>
- <li> <b><a href="../private/paramiko.kex_gex-module.html"><code>kex_gex</code></a></b>: <i>Variant on <a
-href="../private/paramiko.kex_group1.KexGroup1-class.html"
-class="link"><code>KexGroup1</code></a> where the prime &quot;p&quot; and
-generator &quot;g&quot; are provided by the server.</i>
- <li> <b><a href="../private/paramiko.kex_group1-module.html"><code>kex_group1</code></a></b>: <i>Standard SSH key exchange (&quot;kex&quot; if you wanna sound
-cool).</i>
- <li> <b><a href="../private/paramiko.logging22-module.html"><code>logging22</code></a></b>: <i>Stub out logging on python &lt; 2.3.</i>
- <li> <b><a href="../private/paramiko.packet-module.html"><code>packet</code></a></b>: <i>Packetizer.</i>
- <li> <b><a href="../private/paramiko.pipe-module.html"><code>pipe</code></a></b>: <i>Abstraction of a one-way pipe where the read end can be used in
-select().</i>
- <li> <b><a href="../private/paramiko.primes-module.html"><code>primes</code></a></b>: <i>Utility functions for dealing with primes.</i>
- <li> <b><a href="../private/paramiko.ssh_exception-module.html"><code>ssh_exception</code></a></b>: <i>Exceptions defined by paramiko.</i>
- </ul>
-</ul>
-
-<!-- =========== START OF CLASS HIERARCHY =========== -->
-<h2>Class Hierarchy</h2>
-<ul>
- <li> <b><a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></b>: <i>
-The most base type</i>
- <ul>
- <li> <b><a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></b>: <i>
-Reusable base class to implement python-style file buffering around a
-simpler stream.</i>
- <ul>
- <li> <b><a href="paramiko.SFTPFile-class.html"><code>paramiko.SFTPFile</code></a></b>: <i>
-Proxy object for a file on the remote server, in client mode SFTP.</i>
- <li> <b><a href="../private/paramiko.ChannelFile-class.html"><code>paramiko.ChannelFile</code></a></b>: <i>
-A file-like wrapper around <a href="paramiko.Channel-class.html"
-class="link"><code>Channel</code></a>.</i>
- <ul>
- <li> <b><a href="../private/paramiko.channel.ChannelStderrFile-class.html"><code>paramiko.channel.ChannelStderrFile</code></a></b>
- </ul>
- </ul>
- <li> <b><a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></b>: <i>
-A secure tunnel across an SSH <a href="paramiko.Transport-class.html"
-class="link"><code>Transport</code></a>.</i>
- <li> <b><a href="paramiko.server.InteractiveQuery-class.html"><code>paramiko.server.InteractiveQuery</code></a></b>: <i>
-A query (set of prompts) for a user during interactive
-authentication.</i>
- <li> <b><a href="paramiko.Message-class.html"><code>paramiko.Message</code></a></b>: <i>
-An SSH2 <i>Message</i> is a stream of bytes that encodes some
-combination of strings, integers, bools, and infinite-precision integers
-(known in python as <i>long</i>s).</i>
- <li> <b><a href="paramiko.util.PFilter-class.html"><code>paramiko.util.PFilter</code></a></b>
- <li> <b><a href="paramiko.SecurityOptions-class.html"><code>paramiko.SecurityOptions</code></a></b>: <i>
-Simple object containing the security preferences of an ssh
-transport.</i>
- <li> <b><a href="paramiko.SFTPAttributes-class.html"><code>paramiko.SFTPAttributes</code></a></b>: <i>
-Representation of the attributes of a file (or proxied file) for SFTP
-in client or server mode.</i>
- <li> <b><a href="paramiko.SFTPHandle-class.html"><code>paramiko.SFTPHandle</code></a></b>: <i>
-Abstract object representing a handle to an open file (or folder) in
-an SFTP server implementation.</i>
- <li> <b><a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></b>: <i>
-type(object) -&gt; the object's type type(name, bases, dict) -&gt; a
-new type</i>
- <li> <b><a href="../private/threading._Verbose-class.html"><code>threading._Verbose</code></a></b>
- <ul>
- <li> <b><a href="threading.Thread-class.html"><code>threading.Thread</code></a></b>
- <ul>
- <li> <b><a href="paramiko.SubsystemHandler-class.html"><code>paramiko.SubsystemHandler</code></a></b>: <i>
-Handler for a subsytem in server mode.</i>
- <ul>
- <li> <b><a href="paramiko.SFTPServer-class.html"><code>paramiko.SFTPServer</code></a></b>: <i>
-Server-side SFTP subsystem support.</i>
- </ul>
- <li> <b><a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></b>: <i>
-An SSH Transport attaches to a stream (usually a socket), negotiates
-an encrypted session, authenticates, and then creates stream tunnels,
-called <a href="paramiko.Channel-class.html"
-class="link"><code>Channel</code></a>s, across the session.</i>
- </ul>
- </ul>
- <li> <b><a href="../private/paramiko.AuthHandler-class.html"><code>paramiko.AuthHandler</code></a></b>: <i>
-Internal class to handle the mechanics of authentication.</i>
- <li> <b><a href="../private/paramiko.BaseSFTP-class.html"><code>paramiko.BaseSFTP</code></a></b>
- <ul>
- <li> <b><a href="paramiko.SFTPClient-class.html"><code>paramiko.SFTPClient</code></a></b>: <i>
-SFTP client object.</i>
- <ul>
- <li> <b><a href="paramiko.SFTP-class.html"><code>paramiko.SFTP</code></a></b>: <i>
-an alias for <a href="paramiko.SFTPClient-class.html"
-class="link"><code>SFTPClient</code></a> for backwards compatability</i>
- </ul>
- <li> <b><a href="paramiko.SFTPServer-class.html"><code>paramiko.SFTPServer</code></a></b>: <i>
-Server-side SFTP subsystem support.</i>
- </ul>
- <li> <b><a href="../private/paramiko.ber.BER-class.html"><code>paramiko.ber.BER</code></a></b>: <i>
-Robey's tiny little attempt at a BER decoder.</i>
- <li> <b><a href="../private/paramiko.logging22.Formatter-class.html"><code>paramiko.logging22.Formatter</code></a></b>
- <li> <b><a href="../private/paramiko.kex_gex.KexGex-class.html"><code>paramiko.kex_gex.KexGex</code></a></b>
- <li> <b><a href="../private/paramiko.kex_group1.KexGroup1-class.html"><code>paramiko.kex_group1.KexGroup1</code></a></b>
- <li> <b><a href="../private/paramiko.logging22.logger-class.html"><code>paramiko.logging22.logger</code></a></b>
- <li> <b><a href="../private/paramiko.primes.ModulusPack-class.html"><code>paramiko.primes.ModulusPack</code></a></b>: <i>
-convenience object for holding the contents of the /etc/ssh/moduli
-file, on systems that have such a file.</i>
- <li> <b><a href="../private/paramiko.Packetizer-class.html"><code>paramiko.Packetizer</code></a></b>: <i>
-Implementation of the base SSH packet protocol.</i>
- <li> <b><a href="../private/paramiko.PKey-class.html"><code>paramiko.PKey</code></a></b>: <i>
-Base class for public keys.</i>
- <ul>
- <li> <b><a href="paramiko.AgentKey-class.html"><code>paramiko.AgentKey</code></a></b>: <i>
-Private key held in a local SSH agent.</i>
- <li> <b><a href="paramiko.DSSKey-class.html"><code>paramiko.DSSKey</code></a></b>: <i>
-Representation of a DSS key which can be used to sign an verify SSH2
-data.</i>
- <li> <b><a href="paramiko.RSAKey-class.html"><code>paramiko.RSAKey</code></a></b>: <i>
-Representation of an RSA key which can be used to sign and verify SSH2
-data.</i>
- </ul>
- <li> <b><a href="../private/paramiko.pipe.PosixPipe-class.html"><code>paramiko.pipe.PosixPipe</code></a></b>
- <li> <b><a href="../private/paramiko.ServerInterface-class.html"><code>paramiko.ServerInterface</code></a></b>: <i>
-This class defines an interface for controlling the behavior of
-paramiko in server mode.</i>
- <li> <b><a href="../private/paramiko.SFTPServerInterface-class.html"><code>paramiko.SFTPServerInterface</code></a></b>: <i>
-This class defines an interface for controlling the behavior of
-paramiko when using the <a href="paramiko.SFTPServer-class.html"
-class="link"><code>SFTPServer</code></a> subsystem to provide an SFTP
-server.</i>
- <li> <b><a href="../private/paramiko.logging22.StreamHandler-class.html"><code>paramiko.logging22.StreamHandler</code></a></b>
- <li> <b><a href="../private/paramiko.pipe.WindowsPipe-class.html"><code>paramiko.pipe.WindowsPipe</code></a></b>: <i>
-On Windows, only an OS-level &quot;WinSock&quot; may be used in
-select(), but reads and writes must be to the actual socket object.</i>
- <li> <b><a href="../private/paramiko.compress.ZlibCompressor-class.html"><code>paramiko.compress.ZlibCompressor</code></a></b>
- <li> <b><a href="../private/paramiko.compress.ZlibDecompressor-class.html"><code>paramiko.compress.ZlibDecompressor</code></a></b>
- </ul>
- <li> <b><a href="exceptions.Exception-class.html"><code>exceptions.Exception</code></a></b>: <i>
-Common base class for all exceptions.</i>
- <ul>
- <li> <b><a href="paramiko.SFTPError-class.html"><code>paramiko.SFTPError</code></a></b>
- <li> <b><a href="paramiko.SSHException-class.html"><code>paramiko.SSHException</code></a></b>: <i>
-Exception raised by failures in SSH2 protocol negotiation or logic
-errors.</i>
- <ul>
- <li> <b><a href="paramiko.BadAuthenticationType-class.html"><code>paramiko.BadAuthenticationType</code></a></b>: <i>
-Exception raised when an authentication type (like password) is used,
-but the server isn't allowing that type.</i>
- <li> <b><a href="paramiko.PasswordRequiredException-class.html"><code>paramiko.PasswordRequiredException</code></a></b>: <i>
-Exception raised when a password is needed to unlock a private key
-file.</i>
- <li> <b><a href="../private/paramiko.ssh_exception.PartialAuthentication-class.html"><code>paramiko.ssh_exception.PartialAuthentication</code></a></b>: <i>
-An internal exception thrown in the case of partial
-authentication.</i>
- </ul>
- <li> <b><a href="../private/paramiko.ber.BERException-class.html"><code>paramiko.ber.BERException</code></a></b>
- <li> <b><a href="../private/paramiko.packet.NeedRekeyException-class.html"><code>paramiko.packet.NeedRekeyException</code></a></b>
- </ul>
- <li> <b><a href="paramiko.Agent-class.html"><code>paramiko.Agent</code></a></b>: <i>
-Client interface for using private keys from an SSH agent running on
-the local machine.</i>
-</ul>
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:48 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/public/__builtin__.object-class.html b/docs/public/__builtin__.object-class.html
deleted file mode 100644
index f9ab2d2..0000000
--- a/docs/public/__builtin__.object-class.html
+++ /dev/null
@@ -1,268 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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>__builtin__.object</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- Module&nbsp;__builtin__ ::
- Class&nbsp;object
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<a href="../private/__builtin__.object-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="__builtin__.object-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type object</h2>
-
-<dl><dt><b>Known Subclasses:</b></dt>
-<dd>
- <a href="paramiko.BufferedFile-class.html"><code>BufferedFile</code></a>,
- <a href="paramiko.Channel-class.html"><code>Channel</code></a>,
- <a href="paramiko.server.InteractiveQuery-class.html"><code>InteractiveQuery</code></a>,
- <a href="paramiko.Message-class.html"><code>Message</code></a>,
- <a href="paramiko.util.PFilter-class.html"><code>PFilter</code></a>,
- <a href="paramiko.SecurityOptions-class.html"><code>SecurityOptions</code></a>,
- <a href="paramiko.SFTPAttributes-class.html"><code>SFTPAttributes</code></a>,
- <a href="paramiko.SFTPHandle-class.html"><code>SFTPHandle</code></a>,
- <a href="__builtin__.type-class.html"><code>type</code></a></dd></dl>
-
-<hr/>
-
-The most base type
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__init__(...) initializes x; see x.__class__.__doc__ for
-signature</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__repr__() &lt;==&gt; repr(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__str__() &lt;==&gt; str(x)</td></tr>
-</table><br />
-
-
-<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Class Variable Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>type</code></font></td>
- <td><a name="__class__"></a><b><code>__class__</code></b> = <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
-</table><br />
-
-
-<!-- =========== START OF METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Method Details</th></tr>
-</table>
-
-<a name="__init__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-vararg">...</span>)</span>
- <br /><i>(Constructor)</i>
- </h3>
- x.__init__(...) initializes x; see x.__class__.__doc__ for
- signature
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-
-<a name="__delattr__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__delattr__</span>(<span class="sig-vararg">...</span>)</span>
- </h3>
- x.__delattr__('name') &lt;==&gt; del x.name
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-
-<a name="__getattribute__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__getattribute__</span>(<span class="sig-vararg">...</span>)</span>
- </h3>
- x.__getattribute__('name') &lt;==&gt; x.name
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-
-<a name="__hash__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__hash__</span>(<span class=sig-arg>x</span>)</span>
- <br /><i>(Hashing function)</i>
- </h3>
- x.__hash__() &lt;==&gt; hash(x)
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
-<pre class="literalblock">
-hash(x)
-</pre>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="__new__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__new__</span>(<span class=sig-arg>T</span>,
- <span class=sig-arg>S</span>,
- <span class="sig-vararg">...</span>)</span>
- </h3>
- T.__new__(S, ...) -&gt; a new object with type S, a subtype of T
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
-<pre class="literalblock">
-a new object with type S, a subtype of T
-</pre>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="__reduce__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__reduce__</span>(<span class="sig-vararg">...</span>)</span>
- </h3>
- helper for pickle
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-
-<a name="__reduce_ex__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__reduce_ex__</span>(<span class="sig-vararg">...</span>)</span>
- </h3>
- helper for pickle
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-
-<a name="__repr__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__repr__</span>(<span class=sig-arg>x</span>)</span>
- <br /><i>(Representation operator)</i>
- </h3>
- x.__repr__() &lt;==&gt; repr(x)
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
-<pre class="literalblock">
-repr(x)
-</pre>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="__setattr__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__setattr__</span>(<span class="sig-vararg">...</span>)</span>
- </h3>
- x.__setattr__('name', value) &lt;==&gt; x.name = value
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-
-<a name="__str__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__str__</span>(<span class=sig-arg>x</span>)</span>
- <br /><i>(Informal representation operator)</i>
- </h3>
- x.__str__() &lt;==&gt; str(x)
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
-<pre class="literalblock">
-str(x)
-</pre>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:46 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/public/__builtin__.type-class.html b/docs/public/__builtin__.type-class.html
deleted file mode 100644
index 21075f7..0000000
--- a/docs/public/__builtin__.type-class.html
+++ /dev/null
@@ -1,504 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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>__builtin__.type</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- Module&nbsp;__builtin__ ::
- Class&nbsp;type
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<a href="../private/__builtin__.type-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="__builtin__.type-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type type</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
- <b>type</b>
-</pre><br />
-
-<hr/>
-
-type(object) -&gt; the object's type type(name, bases, dict) -&gt; a
-new type
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.type-class.html#__call__" class="summary-sig-name"><code>__call__</code></a>(<span class=summary-sig-arg>x</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__call__(...) &lt;==&gt; x(...)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.type-class.html#__cmp__" class="summary-sig-name"><code>__cmp__</code></a>(<span class=summary-sig-arg>x</span>,
- <span class=summary-sig-arg>y</span>)</span></code>
-<br />
-x.__cmp__(y) &lt;==&gt; cmp(x,y)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.type-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.type-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.type-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.type-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.type-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__repr__() &lt;==&gt; repr(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.type-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">list of immediate subclasses</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.type-class.html#__subclasses__" class="summary-sig-name"><code>__subclasses__</code></a>()</span></code>
-<br />
-__subclasses__() -&gt; list of immediate subclasses</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">list</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.type-class.html#mro" class="summary-sig-name"><code>mro</code></a>()</span></code>
-<br />
-return a type's method resolution order</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__init__(...) initializes x; see x.__class__.__doc__ for
-signature</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__str__() &lt;==&gt; str(x)</td></tr>
-</table><br />
-
-
-<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Class Variable Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>type</code></font></td>
- <td><a name="__base__"></a><b><code>__base__</code></b> = <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>tuple</code></font></td>
-<td><b><a href="__builtin__.type-class.html#__bases__"><code>__bases__</code></a></b> = <span title="(&lt;type 'object'&gt;,)"><code>(&lt;type&nbsp;'object'&gt;,) </code>
-</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="__builtin__.type-class.html#__basicsize__"><code>__basicsize__</code></a></b> = <span title="420">420&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="__builtin__.type-class.html#__dictoffset__"><code>__dictoffset__</code></a></b> = <span title="132">132&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="__builtin__.type-class.html#__flags__"><code>__flags__</code></a></b> = <span title="21995">21995&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="__builtin__.type-class.html#__itemsize__"><code>__itemsize__</code></a></b> = <span title="20">20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>tuple</code></font></td>
-<td><b><a href="__builtin__.type-class.html#__mro__"><code>__mro__</code></a></b> = <span title="(&lt;type 'type'&gt;, &lt;type 'object'&gt;)"><code>(&lt;type&nbsp;'type'&gt;,&nbsp;&lt;type&nbsp;'object'&gt;) </code>
-</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
-<td><b><a href="__builtin__.type-class.html#__name__"><code>__name__</code></a></b> = <span title="'type'"><code><span class="variable-quote">'</span>type<span class="variable-quote">'</span> </code>
-</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="__builtin__.type-class.html#__weakrefoffset__"><code>__weakrefoffset__</code></a></b> = <span title="184">184&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-</table><br />
-
-
-<!-- =========== START OF METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Method Details</th></tr>
-</table>
-
-<a name="__call__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__call__</span>(<span class=sig-arg>x</span>,
- <span class="sig-vararg">...</span>)</span>
- <br /><i>(Call operator)</i>
- </h3>
- x.__call__(...) &lt;==&gt; x(...)
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
-<pre class="literalblock">
-x(...)
-</pre>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="__cmp__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__cmp__</span>(<span class=sig-arg>x</span>,
- <span class=sig-arg>y</span>)</span>
- <br /><i>(Comparison operator)</i>
- </h3>
- x.__cmp__(y) &lt;==&gt; cmp(x,y)
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
-<pre class="literalblock">
-cmp(x,y)
-</pre>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="__delattr__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__delattr__</span>(<span class="sig-vararg">...</span>)</span>
- </h3>
- x.__delattr__('name') &lt;==&gt; del x.name
- <dl><dt></dt><dd>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="__builtin__.object-class.html#__delattr__"><code>__builtin__.object.__delattr__</code></a></dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="__getattribute__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__getattribute__</span>(<span class="sig-vararg">...</span>)</span>
- </h3>
- x.__getattribute__('name') &lt;==&gt; x.name
- <dl><dt></dt><dd>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="__builtin__.object-class.html#__getattribute__"><code>__builtin__.object.__getattribute__</code></a></dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="__hash__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__hash__</span>(<span class=sig-arg>x</span>)</span>
- <br /><i>(Hashing function)</i>
- </h3>
- x.__hash__() &lt;==&gt; hash(x)
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
-<pre class="literalblock">
-hash(x)
-</pre>
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="__builtin__.object-class.html#__hash__"><code>__builtin__.object.__hash__</code></a></dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="__new__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__new__</span>(<span class=sig-arg>T</span>,
- <span class=sig-arg>S</span>,
- <span class="sig-vararg">...</span>)</span>
- </h3>
- T.__new__(S, ...) -&gt; a new object with type S, a subtype of T
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
-<pre class="literalblock">
-a new object with type S, a subtype of T
-</pre>
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="__builtin__.object-class.html#__new__"><code>__builtin__.object.__new__</code></a></dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="__repr__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__repr__</span>(<span class=sig-arg>x</span>)</span>
- <br /><i>(Representation operator)</i>
- </h3>
- x.__repr__() &lt;==&gt; repr(x)
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
-<pre class="literalblock">
-repr(x)
-</pre>
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="__builtin__.object-class.html#__repr__"><code>__builtin__.object.__repr__</code></a></dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="__setattr__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__setattr__</span>(<span class="sig-vararg">...</span>)</span>
- </h3>
- x.__setattr__('name', value) &lt;==&gt; x.name = value
- <dl><dt></dt><dd>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="__builtin__.object-class.html#__setattr__"><code>__builtin__.object.__setattr__</code></a></dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="__subclasses__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__subclasses__</span>()</span>
- </h3>
- __subclasses__() -&gt; list of immediate subclasses
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
-list of immediate subclasses </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="mro"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">mro</span>()</span>
- </h3>
- return a type's method resolution order
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
-list </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF CLASS VARIABLE DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Class Variable Details</th></tr>
-</table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="__bases__"></a>
-<h3>__bases__</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>tuple</code>
-
- </dd>
-<span title="(&lt;type 'object'&gt;,)"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-(&lt;type 'object'&gt;,) </pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="__basicsize__"></a>
-<h3>__basicsize__</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="420"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-420&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="__dictoffset__"></a>
-<h3>__dictoffset__</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="132"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-132&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="__flags__"></a>
-<h3>__flags__</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="21995"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-21995&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="__itemsize__"></a>
-<h3>__itemsize__</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="20"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="__mro__"></a>
-<h3>__mro__</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>tuple</code>
-
- </dd>
-<span title="(&lt;type 'type'&gt;, &lt;type 'object'&gt;)"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-(&lt;type 'type'&gt;, &lt;type 'object'&gt;) </pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="__name__"></a>
-<h3>__name__</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>str</code>
-
- </dd>
-<span title="'type'"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-<span class="variable-quote">'</span>type<span class="variable-quote">'</span> </pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="__weakrefoffset__"></a>
-<h3>__weakrefoffset__</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="184"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-184&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/public/epydoc.css b/docs/public/epydoc.css
deleted file mode 100644
index 46080bd..0000000
--- a/docs/public/epydoc.css
+++ /dev/null
@@ -1,100 +0,0 @@
-
-/* Body color */
-body { background: #ffffff; color: #000000; }
-
-/* Tables */
-table.summary, table.details, table.index
- { background: #e8f0f8; color: #000000; }
-tr.summary, tr.details, tr.index
- { background: #70b0f0; color: #000000;
- text-align: left; font-size: 120%; }
-tr.group { background: #c0e0f8; color: #000000;
- text-align: left; font-size: 120%;
- font-style: italic; }
-
-/* Documentation page titles */
-h2.module { margin-top: 0.2em; }
-h2.class { margin-top: 0.2em; }
-
-/* Headings */
-h1.heading { font-size: +140%; font-style: italic;
- font-weight: bold; }
-h2.heading { font-size: +125%; font-style: italic;
- font-weight: bold; }
-h3.heading { font-size: +110%; font-style: italic;
- font-weight: normal; }
-
-/* Base tree */
-pre.base-tree { font-size: 80%; margin: 0; }
-
-/* Details Sections */
-table.func-details { background: #e8f0f8; color: #000000;
- border: 2px groove #c0d0d0;
- padding: 0 1em 0 1em; margin: 0.4em 0 0 0; }
-h3.func-detail { background: transparent; color: #000000;
- margin: 0 0 1em 0; }
-
-table.var-details { background: #e8f0f8; color: #000000;
- border: 2px groove #c0d0d0;
- padding: 0 1em 0 1em; margin: 0.4em 0 0 0; }
-h3.var-details { background: transparent; color: #000000;
- margin: 0 0 1em 0; }
-
-/* Function signatures */
-.sig { background: transparent; color: #000000;
- font-weight: bold; }
-.sig-name { background: transparent; color: #006080; }
-.sig-arg, .sig-kwarg, .sig-vararg
- { background: transparent; color: #008060; }
-.sig-default { background: transparent; color: #602000; }
-.summary-sig { background: transparent; color: #000000; }
-.summary-sig-name { background: transparent; color: #204080; }
-.summary-sig-arg, .summary-sig-kwarg, .summary-sig-vararg
- { background: transparent; color: #008060; }
-
-/* Doctest blocks */
-.py-src { background: transparent; color: #000000; }
-.py-prompt { background: transparent; color: #005050;
- font-weight: bold;}
-.py-string { background: transparent; color: #006030; }
-.py-comment { background: transparent; color: #003060; }
-.py-keyword { background: transparent; color: #600000; }
-.py-output { background: transparent; color: #404040; }
-pre.doctestblock { background: #f4faff; color: #000000;
- padding: .5em; margin: 1em;
- border: 1px solid #708890; }
-table pre.doctestblock
- { background: #dce4ec; color: #000000;
- padding: .5em; margin: 1em;
- border: 1px solid #708890; }
-
-/* Variable values */
-pre.variable { background: #dce4ec; color: #000000;
- padding: .5em; margin: 0;
- border: 1px solid #708890; }
-.variable-linewrap { background: transparent; color: #604000; }
-.variable-ellipsis { background: transparent; color: #604000; }
-.variable-quote { background: transparent; color: #604000; }
-.re { background: transparent; color: #000000; }
-.re-char { background: transparent; color: #006030; }
-.re-op { background: transparent; color: #600000; }
-.re-group { background: transparent; color: #003060; }
-.re-ref { background: transparent; color: #404040; }
-
-/* Navigation bar */
-table.navbar { background: #a0c0ff; color: #0000ff;
- border: 2px groove #c0d0d0; }
-th.navbar { background: #a0c0ff; color: #0000ff; }
-th.navselect { background: #70b0ff; color: #000000; }
-.nomargin { margin: 0; }
-
-/* Links */
-a:link { background: transparent; color: #0000ff; }
-a:visited { background: transparent; color: #204080; }
-a.navbar:link { background: transparent; color: #0000ff;
- text-decoration: none; }
-a.navbar:visited { background: transparent; color: #204080;
- text-decoration: none; }
-
-/* Lists */
-ul { margin-top: 0; }
diff --git a/docs/public/exceptions.Exception-class.html b/docs/public/exceptions.Exception-class.html
deleted file mode 100644
index 8e04fe7..0000000
--- a/docs/public/exceptions.Exception-class.html
+++ /dev/null
@@ -1,85 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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>exceptions.Exception</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- Module&nbsp;exceptions ::
- Class&nbsp;Exception
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<a href="../private/exceptions.Exception-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="exceptions.Exception-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Class Exception</h2>
-
-<dl><dt><b>Known Subclasses:</b></dt>
-<dd>
- <a href="paramiko.SFTPError-class.html"><code>SFTPError</code></a>,
- <a href="paramiko.SSHException-class.html"><code>SSHException</code></a></dd></dl>
-
-<hr/>
-
-Common base class for all exceptions.
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__init__"></a><span class="summary-sig"><span class="summary-sig-name">__init__</span>(<span class="summary-sig-vararg">...</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__getitem__"></a><span class="summary-sig"><span class="summary-sig-name">__getitem__</span>(<span class="summary-sig-vararg">...</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__str__"></a><span class="summary-sig"><span class="summary-sig-name">__str__</span>(<span class="summary-sig-vararg">...</span>)</span></code>
-</td></tr>
-</table><br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/public/frames.html b/docs/public/frames.html
deleted file mode 100644
index 77678a0..0000000
--- a/docs/public/frames.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
-<html>
-<head>
- <title> API Documentation </title>
-</head>
-<frameset cols="20%,80%">
- <frameset rows="30%,70%">
- <frame src="toc.html" name="moduleListFrame">
- <frame src="toc-everything.html" name="moduleFrame">
- </frameset>
- <frame src="paramiko-module.html" name="mainFrame">
-</frameset>
-</html>
diff --git a/docs/public/help.html b/docs/public/help.html
deleted file mode 100644
index 99e33a2..0000000
--- a/docs/public/help.html
+++ /dev/null
@@ -1,224 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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>Help</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th bgcolor="#70b0f0" class="navselect">&nbsp;&nbsp;&nbsp;Help&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%">
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<a href="../private/help.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="help.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<center><h2> API Documentation </h2></center>
-
-<p> This document contains the API (Application Programming Interface)
-documentation for this project. Documentation for the Python
-objects defined by the project is divided into separate pages for each
-package, module, and class. The API documentation also includes two
-pages containing information about the project as a whole: a trees
-page, and an index page. </p>
-
-<h2> Object Documentation </h2>
-
- <p>Each <b>Package Documentation</b> page contains:
- <ul>
- <li> A description of the package. </li>
- <li> A list of the modules and sub-packages contained by the
- package. </li>
- <li> A summary of the classes defined by the package. </li>
- <li> A summary of the functions defined by the package. </li>
- <li> A summary of the variables defined by the package. </li>
- <li> A detailed description of each function defined by the
- package. </li>
- <li> A detailed description of each variable defined by the
- package. </li>
- </ul></p>
-
- <p>Each <b>Module Documentation</b> page contains:
- <ul>
- <li> A description of the module. </li>
- <li> A summary of the classes defined by the module. </li>
- <li> A summary of the functions defined by the module. </li>
- <li> A summary of the variables defined by the module. </li>
- <li> A detailed description of each function defined by the
- module. </li>
- <li> A detailed description of each variable defined by the
- module. </li>
- </ul></p>
-
- <p>Each <b>Class Documentation</b> page contains:
- <ul>
- <li> A class inheritance diagram. </li>
- <li> A list of known subclasses. </li>
- <li> A description of the class. </li>
- <li> A summary of the methods defined by the class. </li>
- <li> A summary of the instance variables defined by the class. </li>
- <li> A summary of the class (static) variables defined by the
- class. </li>
- <li> A detailed description of each method defined by the
- class. </li>
- <li> A detailed description of each instance variable defined by the
- class. </li>
- <li> A detailed description of each class (static) variable defined
- by the class. </li>
- </ul></p>
-
-<h2> Project Documentation </h2>
-
- <p> The <b>Trees</b> page contains the module and class hierarchies:
- <ul>
- <li> The <i>module hierarchy</i> lists every package and module, with
- modules grouped into packages. At the top level, and within each
- package, modules and sub-packages are listed alphabetically. </li>
- <li> The <i>class hierarchy</i> lists every class, grouped by base
- class. If a class has more than one base class, then it will be
- listed under each base class. At the top level, and under each base
- class, classes are listed alphabetically. </li>
- </ul></p>
-
- <p> The <b>Index</b> page contains indices of terms and
- identifiers:
- <ul>
- <li> The <i>term index</i> lists every term indexed by any object's
- documentation. For each term, the index provides links to each
- place where the term is indexed. </li>
- <li> The <i>identifier index</i> lists the (short) name of every package,
- module, class, method, function, variable, and parameter. For each
- identifier, the index provides a short description, and a link to
- its documentation. </li>
- </ul></p>
-
-<h2> The Table of Contents </h2>
-
-<p> The table of contents occupies the two frames on the left side of
-the window. The upper-left frame displays the <i>project
-contents</i>, and the lower-left frame displays the <i>module
-contents</i>: </p>
-
-<center>
-<table class="summary" border="1" cellspacing="0" cellpadding="3">
- <tr heigh="30%">
- <td align="center">
- <font size="-1">Project<br>Contents<hr>...</font></td>
- <td align="center" rowspan="2" width="70%">
- API<br>Documentation<br>Frame<br><br><br>
- </td>
- </tr>
- <tr>
- <td align="center">
- <font size="-1">Module<br>Contents<hr>&nbsp;<br>...<br>&nbsp;</font>
- </td>
- </tr>
-</table><br>
-</center>
-
-<p> The <b>project contents frame</b> contains a list of all packages
-and modules that are defined by the project. Clicking on an entry
-will display its contents in the module contents frame. Clicking on a
-special entry, labeled "Everything," will display the contents of
-the entire project. </p>
-
-<p> The <b>module contents frame</b> contains a list of every
-submodule, class, type, exception, function, and variable defined by a
-module or package. Clicking on an entry will display its
-documentation in the API documentation frame. Clicking on the name of
-the module, at the top of the frame, will display the documentation
-for the module itself. </p>
-
-<p> The "<b>frames</b>" and "<b>no frames</b>" buttons below the top
-navigation bar can be used to control whether the table of contents is
-displayed or not. </p>
-
-<h2> The Navigation Bar </h2>
-
-<p> A navigation bar is located at the top and bottom of every page.
-It indicates what type of page you are currently viewing, and allows
-you to go to related pages. The following table describes the labels
-on the navigation bar. Note that not some labels (such as
-[Parent]) are not displayed on all pages. </p>
-
-<table class="summary" border="1" cellspacing="0" cellpadding="3" width="100%">
-<tr class="summary">
- <th>Label</th>
- <th>Highlighted when...</th>
- <th>Links to...</th>
-</tr>
- <tr><td valign="top"><b>[Parent]</b></td>
- <td valign="top"><i>(never highlighted)</i></td>
- <td valign="top"> the parent of the current package </td></tr>
- <tr><td valign="top"><b>[Package]</b></td>
- <td valign="top">viewing a package</td>
- <td valign="top">the package containing the current object
- </td></tr>
- <tr><td valign="top"><b>[Module]</b></td>
- <td valign="top">viewing a module</td>
- <td valign="top">the module containing the current object
- </td></tr>
- <tr><td valign="top"><b>[Class]</b></td>
- <td valign="top">viewing a class </td>
- <td valign="top">the class containing the current object</td></tr>
- <tr><td valign="top"><b>[Trees]</b></td>
- <td valign="top">viewing the trees page</td>
- <td valign="top"> the trees page </td></tr>
- <tr><td valign="top"><b>[Index]</b></td>
- <td valign="top">viewing the index page</td>
- <td valign="top"> the index page </td></tr>
- <tr><td valign="top"><b>[Help]</b></td>
- <td valign="top">viewing the help page</td>
- <td valign="top"> the help page </td></tr>
-</table>
-
-<p> The "<b>show private</b>" and "<b>hide private</b>" buttons below
-the top navigation bar can be used to control whether documentation
-for private objects is displayed. Private objects are usually defined
-as objects whose (short) names begin with a single underscore, but do
-not end with an underscore. For example, "<code>_x</code>",
-"<code>__pprint</code>", and "<code>epydoc.epytext._tokenize</code>"
-are private objects; but "<code>re.sub</code>",
-"<code>__init__</code>", and "<code>type_</code>" are not. However,
-if a module defines the "<code>__all__</code>" variable, then its
-contents are used to decide which objects are private. </p>
-
-<p> A timestamp below the bottom navigation bar indicates when each
-page was last updated. </p>
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th bgcolor="#70b0f0" class="navselect">&nbsp;&nbsp;&nbsp;Help&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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:48 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/public/index.html b/docs/public/index.html
deleted file mode 100644
index 77678a0..0000000
--- a/docs/public/index.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
-<html>
-<head>
- <title> API Documentation </title>
-</head>
-<frameset cols="20%,80%">
- <frameset rows="30%,70%">
- <frame src="toc.html" name="moduleListFrame">
- <frame src="toc-everything.html" name="moduleFrame">
- </frameset>
- <frame src="paramiko-module.html" name="mainFrame">
-</frameset>
-</html>
diff --git a/docs/public/indices.html b/docs/public/indices.html
deleted file mode 100644
index ce1f266..0000000
--- a/docs/public/indices.html
+++ /dev/null
@@ -1,803 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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>Index</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th bgcolor="#70b0f0" class="navselect">&nbsp;&nbsp;&nbsp;Index&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<a href="../private/indices.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="indices.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-<br />
-
-<!-- =========== START OF IDENTIFIER INDEX =========== -->
-<table class="index" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="index">
- <th colspan="2">Identifier Index</th></tr>
- <tr><td width="15%"><a href="__builtin__.object-class.html"><code>object</code></a></td>
- <td>Class in module <code>__builtin__</code></td></tr>
- <tr><td width="15%"><a href="__builtin__.type-class.html#__bases__"><code>__bases__</code></a></td>
- <td>Variable in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.type-class.html#__basicsize__"><code>__basicsize__</code></a></td>
- <td>Variable in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.type-class.html#__call__"><code>__call__</code></a></td>
- <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.type-class.html"><code>type</code></a></td>
- <td>Class in module <code>__builtin__</code></td></tr>
- <tr><td width="15%"><a href="__builtin__.type-class.html#__cmp__"><code>__cmp__</code></a></td>
- <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BufferedFile-class.html#__del__"><code>__del__</code></a></td>
- <td>Method in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#__del__"><code>__del__</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPClient-class.html#__del__"><code>__del__</code></a></td>
- <td>Method in class <a href="paramiko.SFTPClient-class.html"><code>paramiko.SFTPClient</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPFile-class.html#__del__"><code>__del__</code></a></td>
- <td>Method in class <a href="paramiko.SFTPFile-class.html"><code>paramiko.SFTPFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#__del__"><code>__del__</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.object-class.html#__delattr__"><code>__delattr__</code></a></td>
- <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.type-class.html#__delattr__"><code>__delattr__</code></a></td>
- <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.type-class.html#__dictoffset__"><code>__dictoffset__</code></a></td>
- <td>Variable in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.type-class.html#__flags__"><code>__flags__</code></a></td>
- <td>Variable in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.object-class.html#__getattribute__"><code>__getattribute__</code></a></td>
- <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.type-class.html#__getattribute__"><code>__getattribute__</code></a></td>
- <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
- <tr><td width="15%"><a href="exceptions.Exception-class.html#__getitem__"><code>__getitem__</code></a></td>
- <td>Method in class <a href="exceptions.Exception-class.html"><code>exceptions.Exception</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.object-class.html#__hash__"><code>__hash__</code></a></td>
- <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.type-class.html#__hash__"><code>__hash__</code></a></td>
- <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.DSSKey-class.html#__hash__"><code>__hash__</code></a></td>
- <td>Method in class <a href="paramiko.DSSKey-class.html"><code>paramiko.DSSKey</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.RSAKey-class.html#__hash__"><code>__hash__</code></a></td>
- <td>Method in class <a href="paramiko.RSAKey-class.html"><code>paramiko.RSAKey</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.object-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>
- <tr><td width="15%"><a href="exceptions.Exception-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="exceptions.Exception-class.html"><code>exceptions.Exception</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Agent-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="paramiko.Agent-class.html"><code>paramiko.Agent</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.AgentKey-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="paramiko.AgentKey-class.html"><code>paramiko.AgentKey</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BadAuthenticationType-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="paramiko.BadAuthenticationType-class.html"><code>paramiko.BadAuthenticationType</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BufferedFile-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.DSSKey-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="paramiko.DSSKey-class.html"><code>paramiko.DSSKey</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Message-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="paramiko.Message-class.html"><code>paramiko.Message</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.RSAKey-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="paramiko.RSAKey-class.html"><code>paramiko.RSAKey</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPAttributes-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="paramiko.SFTPAttributes-class.html"><code>paramiko.SFTPAttributes</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPClient-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="paramiko.SFTPClient-class.html"><code>paramiko.SFTPClient</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPFile-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="paramiko.SFTPFile-class.html"><code>paramiko.SFTPFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPHandle-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="paramiko.SFTPHandle-class.html"><code>paramiko.SFTPHandle</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPServer-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="paramiko.SFTPServer-class.html"><code>paramiko.SFTPServer</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SecurityOptions-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="paramiko.SecurityOptions-class.html"><code>paramiko.SecurityOptions</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SubsystemHandler-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="paramiko.SubsystemHandler-class.html"><code>paramiko.SubsystemHandler</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.server.InteractiveQuery-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="paramiko.server.InteractiveQuery-class.html"><code>paramiko.server.InteractiveQuery</code></a></td></tr>
- <tr><td width="15%"><a href="threading.Thread-class.html#__init__"><code>__init__</code></a></td>
- <td>Method in class <a href="threading.Thread-class.html"><code>threading.Thread</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.type-class.html#__itemsize__"><code>__itemsize__</code></a></td>
- <td>Variable in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BufferedFile-class.html#__iter__"><code>__iter__</code></a></td>
- <td>Method in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.type-class.html#__mro__"><code>__mro__</code></a></td>
- <td>Variable in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.type-class.html#__name__"><code>__name__</code></a></td>
- <td>Variable in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.object-class.html#__new__"><code>__new__</code></a></td>
- <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.type-class.html#__new__"><code>__new__</code></a></td>
- <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.object-class.html#__reduce__"><code>__reduce__</code></a></td>
- <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.object-class.html#__reduce_ex__"><code>__reduce_ex__</code></a></td>
- <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.object-class.html#__repr__"><code>__repr__</code></a></td>
- <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.type-class.html#__repr__"><code>__repr__</code></a></td>
- <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#__repr__"><code>__repr__</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Message-class.html#__repr__"><code>__repr__</code></a></td>
- <td>Method in class <a href="paramiko.Message-class.html"><code>paramiko.Message</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPAttributes-class.html#__repr__"><code>__repr__</code></a></td>
- <td>Method in class <a href="paramiko.SFTPAttributes-class.html"><code>paramiko.SFTPAttributes</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SecurityOptions-class.html#__repr__"><code>__repr__</code></a></td>
- <td>Method in class <a href="paramiko.SecurityOptions-class.html"><code>paramiko.SecurityOptions</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#__repr__"><code>__repr__</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="threading.Thread-class.html#__repr__"><code>__repr__</code></a></td>
- <td>Method in class <a href="threading.Thread-class.html"><code>threading.Thread</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.object-class.html#__setattr__"><code>__setattr__</code></a></td>
- <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.type-class.html#__setattr__"><code>__setattr__</code></a></td>
- <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SecurityOptions-class.html#__slots__"><code>__slots__</code></a></td>
- <td>Variable in class <a href="paramiko.SecurityOptions-class.html"><code>paramiko.SecurityOptions</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.object-class.html#__str__"><code>__str__</code></a></td>
- <td>Method in class <a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></td></tr>
- <tr><td width="15%"><a href="exceptions.Exception-class.html#__str__"><code>__str__</code></a></td>
- <td>Method in class <a href="exceptions.Exception-class.html"><code>exceptions.Exception</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.AgentKey-class.html#__str__"><code>__str__</code></a></td>
- <td>Method in class <a href="paramiko.AgentKey-class.html"><code>paramiko.AgentKey</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BadAuthenticationType-class.html#__str__"><code>__str__</code></a></td>
- <td>Method in class <a href="paramiko.BadAuthenticationType-class.html"><code>paramiko.BadAuthenticationType</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.DSSKey-class.html#__str__"><code>__str__</code></a></td>
- <td>Method in class <a href="paramiko.DSSKey-class.html"><code>paramiko.DSSKey</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Message-class.html#__str__"><code>__str__</code></a></td>
- <td>Method in class <a href="paramiko.Message-class.html"><code>paramiko.Message</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.RSAKey-class.html#__str__"><code>__str__</code></a></td>
- <td>Method in class <a href="paramiko.RSAKey-class.html"><code>paramiko.RSAKey</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPAttributes-class.html#__str__"><code>__str__</code></a></td>
- <td>Method in class <a href="paramiko.SFTPAttributes-class.html"><code>paramiko.SFTPAttributes</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.type-class.html#__subclasses__"><code>__subclasses__</code></a></td>
- <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.type-class.html#__weakrefoffset__"><code>__weakrefoffset__</code></a></td>
- <td>Variable in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#accept"><code>accept</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Message-class.html#add"><code>add</code></a></td>
- <td>Method in class <a href="paramiko.Message-class.html"><code>paramiko.Message</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Message-class.html#add_boolean"><code>add_boolean</code></a></td>
- <td>Method in class <a href="paramiko.Message-class.html"><code>paramiko.Message</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Message-class.html#add_byte"><code>add_byte</code></a></td>
- <td>Method in class <a href="paramiko.Message-class.html"><code>paramiko.Message</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Message-class.html#add_bytes"><code>add_bytes</code></a></td>
- <td>Method in class <a href="paramiko.Message-class.html"><code>paramiko.Message</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Message-class.html#add_int"><code>add_int</code></a></td>
- <td>Method in class <a href="paramiko.Message-class.html"><code>paramiko.Message</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Message-class.html#add_int64"><code>add_int64</code></a></td>
- <td>Method in class <a href="paramiko.Message-class.html"><code>paramiko.Message</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Message-class.html#add_list"><code>add_list</code></a></td>
- <td>Method in class <a href="paramiko.Message-class.html"><code>paramiko.Message</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Message-class.html#add_mpint"><code>add_mpint</code></a></td>
- <td>Method in class <a href="paramiko.Message-class.html"><code>paramiko.Message</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.server.InteractiveQuery-class.html#add_prompt"><code>add_prompt</code></a></td>
- <td>Method in class <a href="paramiko.server.InteractiveQuery-class.html"><code>paramiko.server.InteractiveQuery</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#add_server_key"><code>add_server_key</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Message-class.html#add_string"><code>add_string</code></a></td>
- <td>Method in class <a href="paramiko.Message-class.html"><code>paramiko.Message</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Agent-class.html"><code>Agent</code></a></td>
- <td>Class in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.agent-module.html"><code>agent</code></a></td>
- <td>Module in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.AgentKey-class.html"><code>AgentKey</code></a></td>
- <td>Class in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BadAuthenticationType-class.html#allowed_types"><code>allowed_types</code></a></td>
- <td>Variable in class <a href="paramiko.BadAuthenticationType-class.html"><code>paramiko.BadAuthenticationType</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#auth_interactive"><code>auth_interactive</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#auth_none"><code>auth_none</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#auth_password"><code>auth_password</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#auth_publickey"><code>auth_publickey</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BadAuthenticationType-class.html"><code>BadAuthenticationType</code></a></td>
- <td>Class in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.util-module.html#bit_length"><code>bit_length</code></a></td>
- <td>Function in module <a href="paramiko.util-module.html"><code>paramiko.util</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BufferedFile-class.html"><code>BufferedFile</code></a></td>
- <td>Class in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.DSSKey-class.html#can_sign"><code>can_sign</code></a></td>
- <td>Method in class <a href="paramiko.DSSKey-class.html"><code>paramiko.DSSKey</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.RSAKey-class.html#can_sign"><code>can_sign</code></a></td>
- <td>Method in class <a href="paramiko.RSAKey-class.html"><code>paramiko.RSAKey</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html"><code>Channel</code></a></td>
- <td>Class in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPHandle-class.html#chattr"><code>chattr</code></a></td>
- <td>Method in class <a href="paramiko.SFTPHandle-class.html"><code>paramiko.SFTPHandle</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPClient-class.html#chdir"><code>chdir</code></a></td>
- <td>Method in class <a href="paramiko.SFTPClient-class.html"><code>paramiko.SFTPClient</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPFile-class.html#check"><code>check</code></a></td>
- <td>Method in class <a href="paramiko.SFTPFile-class.html"><code>paramiko.SFTPFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPClient-class.html#chmod"><code>chmod</code></a></td>
- <td>Method in class <a href="paramiko.SFTPClient-class.html"><code>paramiko.SFTPClient</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPClient-class.html#chown"><code>chown</code></a></td>
- <td>Method in class <a href="paramiko.SFTPClient-class.html"><code>paramiko.SFTPClient</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SecurityOptions-class.html#ciphers"><code>ciphers</code></a></td>
- <td>Method in class <a href="paramiko.SFTPClient-class.html"><code>paramiko.SFTPClient</code></a> in class <a href="paramiko.SecurityOptions-class.html"><code>paramiko.SecurityOptions</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Agent-class.html#close"><code>close</code></a></td>
- <td>Method in class <a href="paramiko.Agent-class.html"><code>paramiko.Agent</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BufferedFile-class.html#close"><code>close</code></a></td>
- <td>Method in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#close"><code>close</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPClient-class.html#close"><code>close</code></a></td>
- <td>Method in class <a href="paramiko.SFTPClient-class.html"><code>paramiko.SFTPClient</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPFile-class.html#close"><code>close</code></a></td>
- <td>Method in class <a href="paramiko.SFTPFile-class.html"><code>paramiko.SFTPFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPHandle-class.html#close"><code>close</code></a></td>
- <td>Method in class <a href="paramiko.SFTPHandle-class.html"><code>paramiko.SFTPHandle</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#close"><code>close</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#CMD_ATTRS"><code>CMD_ATTRS</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#CMD_CLOSE"><code>CMD_CLOSE</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#CMD_DATA"><code>CMD_DATA</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#CMD_EXTENDED"><code>CMD_EXTENDED</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#CMD_EXTENDED_REPLY"><code>CMD_EXTENDED_REPLY</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#CMD_FSETSTAT"><code>CMD_FSETSTAT</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#CMD_FSTAT"><code>CMD_FSTAT</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#CMD_HANDLE"><code>CMD_HANDLE</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#CMD_INIT"><code>CMD_INIT</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#CMD_LSTAT"><code>CMD_LSTAT</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#CMD_MKDIR"><code>CMD_MKDIR</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#CMD_NAME"><code>CMD_NAME</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#CMD_NAMES"><code>CMD_NAMES</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#CMD_OPEN"><code>CMD_OPEN</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#CMD_OPENDIR"><code>CMD_OPENDIR</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#CMD_READ"><code>CMD_READ</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#CMD_READDIR"><code>CMD_READDIR</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#CMD_READLINK"><code>CMD_READLINK</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#CMD_REALPATH"><code>CMD_REALPATH</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#CMD_REMOVE"><code>CMD_REMOVE</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#CMD_RENAME"><code>CMD_RENAME</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#CMD_RMDIR"><code>CMD_RMDIR</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#CMD_SETSTAT"><code>CMD_SETSTAT</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#CMD_STAT"><code>CMD_STAT</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#CMD_STATUS"><code>CMD_STATUS</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#CMD_SYMLINK"><code>CMD_SYMLINK</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#CMD_VERSION"><code>CMD_VERSION</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#CMD_WRITE"><code>CMD_WRITE</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SecurityOptions-class.html#compression"><code>compression</code></a></td>
- <td>Module in package <a href="paramiko-module.html"><code>paramiko</code></a> in class <a href="paramiko.SecurityOptions-class.html"><code>paramiko.SecurityOptions</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#connect"><code>connect</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPServer-class.html#convert_errno"><code>convert_errno</code></a></td>
- <td>Method in class <a href="paramiko.SFTPServer-class.html"><code>paramiko.SFTPServer</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.util-module.html#deflate_long"><code>deflate_long</code></a></td>
- <td>Function in module <a href="paramiko.util-module.html"><code>paramiko.util</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SecurityOptions-class.html#digests"><code>digests</code></a></td>
- <td>Function in module <a href="paramiko.util-module.html"><code>paramiko.util</code></a> in class <a href="paramiko.SecurityOptions-class.html"><code>paramiko.SecurityOptions</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.DSSKey-class.html"><code>DSSKey</code></a></td>
- <td>Class in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.dsskey-module.html"><code>dsskey</code></a></td>
- <td>Module in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><code>exc_info</code></td>
- <td>Function in module <code>sys</code></td></tr>
- <tr><td width="15%"><a href="exceptions.Exception-class.html"><code>Exception</code></a></td>
- <td>Class in module <code>exceptions</code></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#exec_command"><code>exec_command</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPClient-class.html#file"><code>file</code></a></td>
- <td>Method in class <a href="paramiko.SFTPClient-class.html"><code>paramiko.SFTPClient</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.file-module.html"><code>file</code></a></td>
- <td>Module in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#fileno"><code>fileno</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.util.PFilter-class.html#filter"><code>filter</code></a></td>
- <td>Method in class <a href="paramiko.util.PFilter-class.html"><code>paramiko.util.PFilter</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPServer-class.html#finish_subsystem"><code>finish_subsystem</code></a></td>
- <td>Method in class <a href="paramiko.SFTPServer-class.html"><code>paramiko.SFTPServer</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SubsystemHandler-class.html#finish_subsystem"><code>finish_subsystem</code></a></td>
- <td>Method in class <a href="paramiko.SubsystemHandler-class.html"><code>paramiko.SubsystemHandler</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPAttributes-class.html#FLAG_AMTIME"><code>FLAG_AMTIME</code></a></td>
- <td>Variable in class <a href="paramiko.SFTPAttributes-class.html"><code>paramiko.SFTPAttributes</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPAttributes-class.html#FLAG_EXTENDED"><code>FLAG_EXTENDED</code></a></td>
- <td>Variable in class <a href="paramiko.SFTPAttributes-class.html"><code>paramiko.SFTPAttributes</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPAttributes-class.html#FLAG_PERMISSIONS"><code>FLAG_PERMISSIONS</code></a></td>
- <td>Variable in class <a href="paramiko.SFTPAttributes-class.html"><code>paramiko.SFTPAttributes</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPAttributes-class.html#FLAG_SIZE"><code>FLAG_SIZE</code></a></td>
- <td>Variable in class <a href="paramiko.SFTPAttributes-class.html"><code>paramiko.SFTPAttributes</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPAttributes-class.html#FLAG_UIDGID"><code>FLAG_UIDGID</code></a></td>
- <td>Variable in class <a href="paramiko.SFTPAttributes-class.html"><code>paramiko.SFTPAttributes</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BufferedFile-class.html#flush"><code>flush</code></a></td>
- <td>Method in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.util-module.html#format_binary"><code>format_binary</code></a></td>
- <td>Function in module <a href="paramiko.util-module.html"><code>paramiko.util</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.util-module.html#format_binary_line"><code>format_binary_line</code></a></td>
- <td>Function in module <a href="paramiko.util-module.html"><code>paramiko.util</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.util-module.html#format_binary_weird"><code>format_binary_weird</code></a></td>
- <td>Function in module <a href="paramiko.util-module.html"><code>paramiko.util</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPAttributes-class.html#from_stat"><code>from_stat</code></a></td>
- <td>Method in class <a href="paramiko.SFTPAttributes-class.html"><code>paramiko.SFTPAttributes</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPClient-class.html#from_transport"><code>from_transport</code></a></td>
- <td>Method in class <a href="paramiko.SFTPClient-class.html"><code>paramiko.SFTPClient</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.DSSKey-class.html#generate"><code>generate</code></a></td>
- <td>Method in class <a href="paramiko.DSSKey-class.html"><code>paramiko.DSSKey</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.RSAKey-class.html#generate"><code>generate</code></a></td>
- <td>Method in class <a href="paramiko.RSAKey-class.html"><code>paramiko.RSAKey</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.util-module.html#generate_key_bytes"><code>generate_key_bytes</code></a></td>
- <td>Function in module <a href="paramiko.util-module.html"><code>paramiko.util</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPClient-class.html#get"><code>get</code></a></td>
- <td>Method in class <a href="paramiko.SFTPClient-class.html"><code>paramiko.SFTPClient</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.DSSKey-class.html#get_bits"><code>get_bits</code></a></td>
- <td>Method in class <a href="paramiko.DSSKey-class.html"><code>paramiko.DSSKey</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.RSAKey-class.html#get_bits"><code>get_bits</code></a></td>
- <td>Method in class <a href="paramiko.RSAKey-class.html"><code>paramiko.RSAKey</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Message-class.html#get_boolean"><code>get_boolean</code></a></td>
- <td>Method in class <a href="paramiko.Message-class.html"><code>paramiko.Message</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Message-class.html#get_byte"><code>get_byte</code></a></td>
- <td>Method in class <a href="paramiko.Message-class.html"><code>paramiko.Message</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Message-class.html#get_bytes"><code>get_bytes</code></a></td>
- <td>Method in class <a href="paramiko.Message-class.html"><code>paramiko.Message</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#get_exception"><code>get_exception</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#get_hexdump"><code>get_hexdump</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#get_id"><code>get_id</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Message-class.html#get_int"><code>get_int</code></a></td>
- <td>Method in class <a href="paramiko.Message-class.html"><code>paramiko.Message</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Message-class.html#get_int64"><code>get_int64</code></a></td>
- <td>Method in class <a href="paramiko.Message-class.html"><code>paramiko.Message</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Agent-class.html#get_keys"><code>get_keys</code></a></td>
- <td>Method in class <a href="paramiko.Agent-class.html"><code>paramiko.Agent</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Message-class.html#get_list"><code>get_list</code></a></td>
- <td>Method in class <a href="paramiko.Message-class.html"><code>paramiko.Message</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#get_log_channel"><code>get_log_channel</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.util-module.html#get_logger"><code>get_logger</code></a></td>
- <td>Function in module <a href="paramiko.util-module.html"><code>paramiko.util</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Message-class.html#get_mpint"><code>get_mpint</code></a></td>
- <td>Method in class <a href="paramiko.Message-class.html"><code>paramiko.Message</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.AgentKey-class.html#get_name"><code>get_name</code></a></td>
- <td>Method in class <a href="paramiko.AgentKey-class.html"><code>paramiko.AgentKey</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#get_name"><code>get_name</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.DSSKey-class.html#get_name"><code>get_name</code></a></td>
- <td>Method in class <a href="paramiko.DSSKey-class.html"><code>paramiko.DSSKey</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.RSAKey-class.html#get_name"><code>get_name</code></a></td>
- <td>Method in class <a href="paramiko.RSAKey-class.html"><code>paramiko.RSAKey</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#get_pty"><code>get_pty</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Message-class.html#get_remainder"><code>get_remainder</code></a></td>
- <td>Method in class <a href="paramiko.Message-class.html"><code>paramiko.Message</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#get_remote_server_key"><code>get_remote_server_key</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#get_security_options"><code>get_security_options</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SubsystemHandler-class.html#get_server"><code>get_server</code></a></td>
- <td>Method in class <a href="paramiko.SubsystemHandler-class.html"><code>paramiko.SubsystemHandler</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#get_server_key"><code>get_server_key</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Message-class.html#get_so_far"><code>get_so_far</code></a></td>
- <td>Method in class <a href="paramiko.Message-class.html"><code>paramiko.Message</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Message-class.html#get_string"><code>get_string</code></a></td>
- <td>Method in class <a href="paramiko.Message-class.html"><code>paramiko.Message</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.util-module.html#get_thread_id"><code>get_thread_id</code></a></td>
- <td>Function in module <a href="paramiko.util-module.html"><code>paramiko.util</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#get_transport"><code>get_transport</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#get_username"><code>get_username</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPClient-class.html#getcwd"><code>getcwd</code></a></td>
- <td>Method in class <a href="paramiko.SFTPClient-class.html"><code>paramiko.SFTPClient</code></a></td></tr>
- <tr><td width="15%"><a href="threading.Thread-class.html#getName"><code>getName</code></a></td>
- <td>Method in class <a href="threading.Thread-class.html"><code>threading.Thread</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#gettimeout"><code>gettimeout</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPFile-class.html#gettimeout"><code>gettimeout</code></a></td>
- <td>Method in class <a href="paramiko.SFTPFile-class.html"><code>paramiko.SFTPFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#global_request"><code>global_request</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.util-module.html#hexify"><code>hexify</code></a></td>
- <td>Function in module <a href="paramiko.util-module.html"><code>paramiko.util</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.util-module.html#inflate_long"><code>inflate_long</code></a></td>
- <td>Function in module <a href="paramiko.util-module.html"><code>paramiko.util</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.server.InteractiveQuery-class.html"><code>InteractiveQuery</code></a></td>
- <td>Class in module <a href="paramiko.server-module.html"><code>paramiko.server</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#invoke_shell"><code>invoke_shell</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#invoke_subsystem"><code>invoke_subsystem</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#is_active"><code>is_active</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#is_authenticated"><code>is_authenticated</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="threading.Thread-class.html#isAlive"><code>isAlive</code></a></td>
- <td>Method in class <a href="threading.Thread-class.html"><code>threading.Thread</code></a></td></tr>
- <tr><td width="15%"><a href="threading.Thread-class.html#isDaemon"><code>isDaemon</code></a></td>
- <td>Method in class <a href="threading.Thread-class.html"><code>threading.Thread</code></a></td></tr>
- <tr><td width="15%"><a href="threading.Thread-class.html#join"><code>join</code></a></td>
- <td>Method in class <a href="threading.Thread-class.html"><code>threading.Thread</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SecurityOptions-class.html#kex"><code>kex</code></a></td>
- <td>Method in class <a href="threading.Thread-class.html"><code>threading.Thread</code></a> in class <a href="paramiko.SecurityOptions-class.html"><code>paramiko.SecurityOptions</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SecurityOptions-class.html#key_types"><code>key_types</code></a></td>
- <td>Class in module <a href="../private/paramiko.kex_group1-module.html"><code>paramiko.kex_group1</code></a> in class <a href="paramiko.SecurityOptions-class.html"><code>paramiko.SecurityOptions</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPClient-class.html#listdir"><code>listdir</code></a></td>
- <td>Method in class <a href="paramiko.SFTPClient-class.html"><code>paramiko.SFTPClient</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPClient-class.html#listdir_attr"><code>listdir_attr</code></a></td>
- <td>Method in class <a href="paramiko.SFTPClient-class.html"><code>paramiko.SFTPClient</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.util-module.html#load_host_keys"><code>load_host_keys</code></a></td>
- <td>Function in module <a href="paramiko.util-module.html"><code>paramiko.util</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#load_server_moduli"><code>load_server_moduli</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.util-module.html#log_to_file"><code>log_to_file</code></a></td>
- <td>Function in module <a href="paramiko.util-module.html"><code>paramiko.util</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.util-module.html#lookup_ssh_host_config"><code>lookup_ssh_host_config</code></a></td>
- <td>Function in module <a href="paramiko.util-module.html"><code>paramiko.util</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPClient-class.html#lstat"><code>lstat</code></a></td>
- <td>Method in class <a href="paramiko.SFTPClient-class.html"><code>paramiko.SFTPClient</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#makefile"><code>makefile</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#makefile_stderr"><code>makefile_stderr</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPFile-class.html#MAX_REQUEST_SIZE"><code>MAX_REQUEST_SIZE</code></a></td>
- <td>Variable in class <a href="paramiko.SFTPFile-class.html"><code>paramiko.SFTPFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Message-class.html"><code>Message</code></a></td>
- <td>Class in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.message-module.html"><code>message</code></a></td>
- <td>Module in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#MIN_PACKET_SIZE"><code>MIN_PACKET_SIZE</code></a></td>
- <td>Variable in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPClient-class.html#mkdir"><code>mkdir</code></a></td>
- <td>Method in class <a href="paramiko.SFTPClient-class.html"><code>paramiko.SFTPClient</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.util-module.html#mod_inverse"><code>mod_inverse</code></a></td>
- <td>Function in module <a href="paramiko.util-module.html"><code>paramiko.util</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.type-class.html#mro"><code>mro</code></a></td>
- <td>Method in class <a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BufferedFile-class.html#next"><code>next</code></a></td>
- <td>Method in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPClient-class.html#normalize"><code>normalize</code></a></td>
- <td>Method in class <a href="paramiko.SFTPClient-class.html"><code>paramiko.SFTPClient</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.object-class.html"><code>object</code></a></td>
- <td>Class in module <code>__builtin__</code></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#open_channel"><code>open_channel</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#open_session"><code>open_session</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#open_sftp_client"><code>open_sftp_client</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko-module.html"><code>paramiko</code></a></td>
- <td>Package</td></tr>
- <tr><td width="15%"><a href="paramiko.util-module.html#parse_ssh_config"><code>parse_ssh_config</code></a></td>
- <td>Function in module <a href="paramiko.util-module.html"><code>paramiko.util</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.PasswordRequiredException-class.html"><code>PasswordRequiredException</code></a></td>
- <td>Class in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.util.PFilter-class.html"><code>PFilter</code></a></td>
- <td>Class in module <a href="paramiko.util-module.html"><code>paramiko.util</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.pkey-module.html"><code>pkey</code></a></td>
- <td>Module in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPFile-class.html#prefetch"><code>prefetch</code></a></td>
- <td>Method in class <a href="paramiko.SFTPFile-class.html"><code>paramiko.SFTPFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPClient-class.html#put"><code>put</code></a></td>
- <td>Method in class <a href="paramiko.SFTPClient-class.html"><code>paramiko.SFTPClient</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BufferedFile-class.html#read"><code>read</code></a></td>
- <td>Method in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPHandle-class.html#read"><code>read</code></a></td>
- <td>Method in class <a href="paramiko.SFTPHandle-class.html"><code>paramiko.SFTPHandle</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BufferedFile-class.html#readline"><code>readline</code></a></td>
- <td>Method in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BufferedFile-class.html#readlines"><code>readlines</code></a></td>
- <td>Method in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPClient-class.html#readlink"><code>readlink</code></a></td>
- <td>Method in class <a href="paramiko.SFTPClient-class.html"><code>paramiko.SFTPClient</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#recv"><code>recv</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#recv_exit_status"><code>recv_exit_status</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#recv_ready"><code>recv_ready</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#recv_stderr"><code>recv_stderr</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#recv_stderr_ready"><code>recv_stderr_ready</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPClient-class.html#remove"><code>remove</code></a></td>
- <td>Method in class <a href="paramiko.SFTPClient-class.html"><code>paramiko.SFTPClient</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPClient-class.html#rename"><code>rename</code></a></td>
- <td>Method in class <a href="paramiko.SFTPClient-class.html"><code>paramiko.SFTPClient</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#renegotiate_keys"><code>renegotiate_keys</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#resize_pty"><code>resize_pty</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Message-class.html#rewind"><code>rewind</code></a></td>
- <td>Method in class <a href="paramiko.Message-class.html"><code>paramiko.Message</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPClient-class.html#rmdir"><code>rmdir</code></a></td>
- <td>Method in class <a href="paramiko.SFTPClient-class.html"><code>paramiko.SFTPClient</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.RSAKey-class.html"><code>RSAKey</code></a></td>
- <td>Class in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.rsakey-module.html"><code>rsakey</code></a></td>
- <td>Module in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#run"><code>run</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="threading.Thread-class.html#run"><code>run</code></a></td>
- <td>Method in class <a href="threading.Thread-class.html"><code>threading.Thread</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.util-module.html#safe_string"><code>safe_string</code></a></td>
- <td>Function in module <a href="paramiko.util-module.html"><code>paramiko.util</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SecurityOptions-class.html"><code>SecurityOptions</code></a></td>
- <td>Class in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BufferedFile-class.html#seek"><code>seek</code></a></td>
- <td>Method in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPFile-class.html#seek"><code>seek</code></a></td>
- <td>Method in class <a href="paramiko.SFTPFile-class.html"><code>paramiko.SFTPFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BufferedFile-class.html#SEEK_CUR"><code>SEEK_CUR</code></a></td>
- <td>Variable in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BufferedFile-class.html#SEEK_CUR"><code>SEEK_CUR</code></a></td>
- <td>Variable in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BufferedFile-class.html#SEEK_CUR"><code>SEEK_CUR</code></a></td>
- <td>Variable in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BufferedFile-class.html#SEEK_CUR"><code>SEEK_CUR</code></a></td>
- <td>Variable in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BufferedFile-class.html#SEEK_END"><code>SEEK_END</code></a></td>
- <td>Variable in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BufferedFile-class.html#SEEK_END"><code>SEEK_END</code></a></td>
- <td>Variable in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BufferedFile-class.html#SEEK_END"><code>SEEK_END</code></a></td>
- <td>Variable in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BufferedFile-class.html#SEEK_END"><code>SEEK_END</code></a></td>
- <td>Variable in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BufferedFile-class.html#SEEK_SET"><code>SEEK_SET</code></a></td>
- <td>Variable in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BufferedFile-class.html#SEEK_SET"><code>SEEK_SET</code></a></td>
- <td>Variable in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BufferedFile-class.html#SEEK_SET"><code>SEEK_SET</code></a></td>
- <td>Variable in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BufferedFile-class.html#SEEK_SET"><code>SEEK_SET</code></a></td>
- <td>Variable in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#send"><code>send</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#send_exit_status"><code>send_exit_status</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#send_ignore"><code>send_ignore</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#send_stderr"><code>send_stderr</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#sendall"><code>sendall</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#sendall_stderr"><code>sendall_stderr</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.server-module.html"><code>server</code></a></td>
- <td>Module in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#set_combine_stderr"><code>set_combine_stderr</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPServer-class.html#set_file_attr"><code>set_file_attr</code></a></td>
- <td>Method in class <a href="paramiko.SFTPServer-class.html"><code>paramiko.SFTPServer</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#set_hexdump"><code>set_hexdump</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#set_keepalive"><code>set_keepalive</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#set_log_channel"><code>set_log_channel</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#set_name"><code>set_name</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPFile-class.html#set_pipelined"><code>set_pipelined</code></a></td>
- <td>Method in class <a href="paramiko.SFTPFile-class.html"><code>paramiko.SFTPFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#set_subsystem_handler"><code>set_subsystem_handler</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#setblocking"><code>setblocking</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPFile-class.html#setblocking"><code>setblocking</code></a></td>
- <td>Method in class <a href="paramiko.SFTPFile-class.html"><code>paramiko.SFTPFile</code></a></td></tr>
- <tr><td width="15%"><a href="threading.Thread-class.html#setDaemon"><code>setDaemon</code></a></td>
- <td>Method in class <a href="threading.Thread-class.html"><code>threading.Thread</code></a></td></tr>
- <tr><td width="15%"><a href="threading.Thread-class.html#setName"><code>setName</code></a></td>
- <td>Method in class <a href="threading.Thread-class.html"><code>threading.Thread</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#settimeout"><code>settimeout</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPFile-class.html#settimeout"><code>settimeout</code></a></td>
- <td>Method in class <a href="paramiko.SFTPFile-class.html"><code>paramiko.SFTPFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTP-class.html"><code>SFTP</code></a></td>
- <td>Class in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html"><code>sftp</code></a></td>
- <td>Module in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp_attr-module.html"><code>sftp_attr</code></a></td>
- <td>Module in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#SFTP_BAD_MESSAGE"><code>SFTP_BAD_MESSAGE</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp_client-module.html"><code>sftp_client</code></a></td>
- <td>Module in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#SFTP_CONNECTION_LOST"><code>SFTP_CONNECTION_LOST</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#SFTP_DESC"><code>SFTP_DESC</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#SFTP_EOF"><code>SFTP_EOF</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#SFTP_FAILURE"><code>SFTP_FAILURE</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp_file-module.html"><code>sftp_file</code></a></td>
- <td>Module in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#SFTP_FLAG_APPEND"><code>SFTP_FLAG_APPEND</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#SFTP_FLAG_CREATE"><code>SFTP_FLAG_CREATE</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#SFTP_FLAG_EXCL"><code>SFTP_FLAG_EXCL</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#SFTP_FLAG_READ"><code>SFTP_FLAG_READ</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#SFTP_FLAG_TRUNC"><code>SFTP_FLAG_TRUNC</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#SFTP_FLAG_WRITE"><code>SFTP_FLAG_WRITE</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp_handle-module.html"><code>sftp_handle</code></a></td>
- <td>Module in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#SFTP_NO_CONNECTION"><code>SFTP_NO_CONNECTION</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#SFTP_NO_SUCH_FILE"><code>SFTP_NO_SUCH_FILE</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#SFTP_OK"><code>SFTP_OK</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#SFTP_OP_UNSUPPORTED"><code>SFTP_OP_UNSUPPORTED</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp-module.html#SFTP_PERMISSION_DENIED"><code>SFTP_PERMISSION_DENIED</code></a></td>
- <td>Variable in module <a href="paramiko.sftp-module.html"><code>paramiko.sftp</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp_server-module.html"><code>sftp_server</code></a></td>
- <td>Module in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.sftp_si-module.html"><code>sftp_si</code></a></td>
- <td>Module in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPAttributes-class.html"><code>SFTPAttributes</code></a></td>
- <td>Class in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPClient-class.html"><code>SFTPClient</code></a></td>
- <td>Class in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPError-class.html"><code>SFTPError</code></a></td>
- <td>Class in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPFile-class.html"><code>SFTPFile</code></a></td>
- <td>Class in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPHandle-class.html"><code>SFTPHandle</code></a></td>
- <td>Class in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPServer-class.html"><code>SFTPServer</code></a></td>
- <td>Class in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#shutdown"><code>shutdown</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#shutdown_read"><code>shutdown_read</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Channel-class.html#shutdown_write"><code>shutdown_write</code></a></td>
- <td>Method in class <a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.AgentKey-class.html#sign_ssh_data"><code>sign_ssh_data</code></a></td>
- <td>Method in class <a href="paramiko.AgentKey-class.html"><code>paramiko.AgentKey</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.DSSKey-class.html#sign_ssh_data"><code>sign_ssh_data</code></a></td>
- <td>Method in class <a href="paramiko.DSSKey-class.html"><code>paramiko.DSSKey</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.RSAKey-class.html#sign_ssh_data"><code>sign_ssh_data</code></a></td>
- <td>Method in class <a href="paramiko.RSAKey-class.html"><code>paramiko.RSAKey</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.agent-module.html#SSH2_AGENT_IDENTITIES_ANSWER"><code>SSH2_AGENT_IDENTITIES_ANSWER</code></a></td>
- <td>Variable in module <a href="paramiko.agent-module.html"><code>paramiko.agent</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.agent-module.html#SSH2_AGENT_SIGN_RESPONSE"><code>SSH2_AGENT_SIGN_RESPONSE</code></a></td>
- <td>Variable in module <a href="paramiko.agent-module.html"><code>paramiko.agent</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.agent-module.html#SSH2_AGENTC_REQUEST_IDENTITIES"><code>SSH2_AGENTC_REQUEST_IDENTITIES</code></a></td>
- <td>Variable in module <a href="paramiko.agent-module.html"><code>paramiko.agent</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.agent-module.html#SSH2_AGENTC_SIGN_REQUEST"><code>SSH2_AGENTC_SIGN_REQUEST</code></a></td>
- <td>Variable in module <a href="paramiko.agent-module.html"><code>paramiko.agent</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SSHException-class.html"><code>SSHException</code></a></td>
- <td>Class in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="threading.Thread-class.html#start"><code>start</code></a></td>
- <td>Method in class <a href="threading.Thread-class.html"><code>threading.Thread</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#start_client"><code>start_client</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#start_server"><code>start_server</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPServer-class.html#start_subsystem"><code>start_subsystem</code></a></td>
- <td>Method in class <a href="paramiko.SFTPServer-class.html"><code>paramiko.SFTPServer</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SubsystemHandler-class.html#start_subsystem"><code>start_subsystem</code></a></td>
- <td>Method in class <a href="paramiko.SubsystemHandler-class.html"><code>paramiko.SubsystemHandler</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPClient-class.html#stat"><code>stat</code></a></td>
- <td>Method in class <a href="paramiko.SFTPClient-class.html"><code>paramiko.SFTPClient</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPFile-class.html#stat"><code>stat</code></a></td>
- <td>Method in class <a href="paramiko.SFTPFile-class.html"><code>paramiko.SFTPFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPHandle-class.html#stat"><code>stat</code></a></td>
- <td>Method in class <a href="paramiko.SFTPHandle-class.html"><code>paramiko.SFTPHandle</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#stop_thread"><code>stop_thread</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SubsystemHandler-class.html"><code>SubsystemHandler</code></a></td>
- <td>Class in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPClient-class.html#symlink"><code>symlink</code></a></td>
- <td>Method in class <a href="paramiko.SFTPClient-class.html"><code>paramiko.SFTPClient</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.util-module.html#tb_strings"><code>tb_strings</code></a></td>
- <td>Function in module <a href="paramiko.util-module.html"><code>paramiko.util</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BufferedFile-class.html#tell"><code>tell</code></a></td>
- <td>Method in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="threading.Thread-class.html"><code>Thread</code></a></td>
- <td>Class in module <code>threading</code></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html"><code>Transport</code></a></td>
- <td>Class in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.transport-module.html"><code>transport</code></a></td>
- <td>Module in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="__builtin__.type-class.html"><code>type</code></a></td>
- <td>Class in module <code>__builtin__</code></td></tr>
- <tr><td width="15%"><a href="paramiko.util-module.html#unhexify"><code>unhexify</code></a></td>
- <td>Function in module <a href="paramiko.util-module.html"><code>paramiko.util</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.Transport-class.html#use_compression"><code>use_compression</code></a></td>
- <td>Method in class <a href="paramiko.Transport-class.html"><code>paramiko.Transport</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.util-module.html"><code>util</code></a></td>
- <td>Module in package <a href="paramiko-module.html"><code>paramiko</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPClient-class.html#utime"><code>utime</code></a></td>
- <td>Method in class <a href="paramiko.SFTPClient-class.html"><code>paramiko.SFTPClient</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.DSSKey-class.html#verify_ssh_sig"><code>verify_ssh_sig</code></a></td>
- <td>Method in class <a href="paramiko.DSSKey-class.html"><code>paramiko.DSSKey</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.RSAKey-class.html#verify_ssh_sig"><code>verify_ssh_sig</code></a></td>
- <td>Method in class <a href="paramiko.RSAKey-class.html"><code>paramiko.RSAKey</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BufferedFile-class.html#write"><code>write</code></a></td>
- <td>Method in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.SFTPHandle-class.html#write"><code>write</code></a></td>
- <td>Method in class <a href="paramiko.SFTPHandle-class.html"><code>paramiko.SFTPHandle</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.DSSKey-class.html#write_private_key_file"><code>write_private_key_file</code></a></td>
- <td>Method in class <a href="paramiko.DSSKey-class.html"><code>paramiko.DSSKey</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.RSAKey-class.html#write_private_key_file"><code>write_private_key_file</code></a></td>
- <td>Method in class <a href="paramiko.RSAKey-class.html"><code>paramiko.RSAKey</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BufferedFile-class.html#writelines"><code>writelines</code></a></td>
- <td>Method in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
- <tr><td width="15%"><a href="paramiko.BufferedFile-class.html#xreadlines"><code>xreadlines</code></a></td>
- <td>Method in class <a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></td></tr>
-</table>
-<br />
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th bgcolor="#70b0f0" class="navselect">&nbsp;&nbsp;&nbsp;Index&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:48 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/public/paramiko-module.html b/docs/public/paramiko-module.html
deleted file mode 100644
index 15da9ab..0000000
--- a/docs/public/paramiko-module.html
+++ /dev/null
@@ -1,229 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th bgcolor="#70b0f0" class="navselect">&nbsp;&nbsp;&nbsp;Home&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- Package&nbsp;paramiko
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<a href="../private/paramiko-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko-module.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF PACKAGE DESCRIPTION =========== -->
-<h2 class="package">Package paramiko</h2>
-
-<p><i>Paramiko</i> (a combination of the esperanto words for
-&quot;paranoid&quot; and &quot;friend&quot;) is a module for python 2.3
-or greater that implements the SSH2 protocol for secure (encrypted and
-authenticated) connections to remote machines. Unlike SSL (aka TLS), the
-SSH2 protocol does not require heirarchical certificates signed by a
-powerful central authority. You may know SSH2 as the protocol that
-replaced <code>telnet</code> and <code>rsh</code> for secure access to
-remote shells, but the protocol also includes the ability to open
-arbitrary channels to remote services across an encrypted tunnel. (This
-is how <code>sftp</code> works, for example.)</p>
-<p>To use this package, pass a socket (or socket-like object) to a <a
-href="paramiko.Transport-class.html"
-class="link"><code>Transport</code></a>, and use <a
-href="paramiko.Transport-class.html#start_server"
-class="link"><code>start_server</code></a> or <a
-href="paramiko.Transport-class.html#start_client"
-class="link"><code>start_client</code></a> to negoatite with the remote
-host as either a server or client. As a client, you are responsible for
-authenticating using a password or private key, and checking the server's
-host key. <i>(Key signature and verification is done by paramiko, but you
-will need to provide private keys and check that the content of a public
-key matches what you expected to see.)</i> As a server, you are
-responsible for deciding which users, passwords, and keys to allow, and
-what kind of channels to allow.</p>
-<p>Once you have finished, either side may request flow-controlled <a
-href="paramiko.Channel-class.html" class="link"><code>Channel</code></a>s
-to the other side, which are python objects that act like sockets, but
-send and receive data over the encrypted session.</p>
-<p>Paramiko is written entirely in python (no C or platform-dependent
-code) and is released under the GNU Lesser General Public License
-(LGPL).</p>
-Website: <a
-href="http://www.lag.net/paramiko/">http://www.lag.net/paramiko/</a>
-<hr/>
-<p><b>Version:</b> 1.5.2 (rhydon)
-</p>
-
-<p><b>Author:</b> Robey Pointer
-</p>
-
-<p><b>Contact:</b> robey&#64;lag.net
-</p>
-
-<p><b>License:</b> GNU Lesser General Public License (LGPL)
-</p>
-
-
-<!-- =========== START OF SUBMODULES =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Submodules</th></tr>
- <tr><td><ul>
-<li> <b><a href="paramiko.agent-module.html"><code>agent</code></a></b>: <i>SSH Agent interface for Unix clients.</i>
-<li> <b><a href="paramiko.dsskey-module.html"><code>dsskey</code></a></b>: <i><a href="paramiko.DSSKey-class.html"
-class="link"><code>DSSKey</code></a></i>
-<li> <b><a href="paramiko.file-module.html"><code>file</code></a></b>: <i>BufferedFile.</i>
-<li> <b><a href="paramiko.message-module.html"><code>message</code></a></b>: <i>Implementation of an SSH2 &quot;message&quot;.</i>
-<li> <b><a href="paramiko.pkey-module.html"><code>pkey</code></a></b>: <i>Common API for all public keys.</i>
-<li> <b><a href="paramiko.rsakey-module.html"><code>rsakey</code></a></b>: <i><a href="paramiko.RSAKey-class.html"
-class="link"><code>RSAKey</code></a></i>
-<li> <b><a href="paramiko.server-module.html"><code>server</code></a></b>: <i><a href="../private/paramiko.ServerInterface-class.html"
-class="link"><code>ServerInterface</code></a> is an interface to override
-for server support.</i>
-<li> <b><a href="paramiko.sftp-module.html"><code>sftp</code></a></b>
-<li> <b><a href="paramiko.sftp_attr-module.html"><code>sftp_attr</code></a></b>
-<li> <b><a href="paramiko.sftp_client-module.html"><code>sftp_client</code></a></b>: <i>Client-mode SFTP support.</i>
-<li> <b><a href="paramiko.sftp_file-module.html"><code>sftp_file</code></a></b>: <i><a href="paramiko.SFTPFile-class.html"
-class="link"><code>SFTPFile</code></a></i>
-<li> <b><a href="paramiko.sftp_handle-module.html"><code>sftp_handle</code></a></b>: <i>Abstraction of an SFTP file handle (for server mode).</i>
-<li> <b><a href="paramiko.sftp_server-module.html"><code>sftp_server</code></a></b>: <i>Server-mode SFTP support.</i>
-<li> <b><a href="paramiko.sftp_si-module.html"><code>sftp_si</code></a></b>: <i><a href="../private/paramiko.SFTPServerInterface-class.html"
-class="link"><code>SFTPServerInterface</code></a> is an interface to
-override for SFTP server support.</i>
-<li> <b><a href="paramiko.transport-module.html"><code>transport</code></a></b>: <i><a href="paramiko.Transport-class.html"
-class="link"><code>Transport</code></a> handles the core SSH2
-protocol.</i>
-<li> <b><a href="paramiko.util-module.html"><code>util</code></a></b>: <i>Useful functions used by the rest of paramiko.</i>
- </ul></td></tr>
-</table><br />
-
-
-<!-- =========== START OF CLASSES =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Classes</th></tr>
-<tr><td width="15%">
- <b><a href="paramiko.Agent-class.html"><code>Agent</code></a></b></td>
- <td>Client interface for using private keys from an SSH agent running on
-the local machine.</td></tr>
-<tr><td width="15%">
- <b><a href="paramiko.AgentKey-class.html"><code>AgentKey</code></a></b></td>
- <td>Private key held in a local SSH agent.</td></tr>
-<tr><td width="15%">
- <b><a href="paramiko.BufferedFile-class.html"><code>BufferedFile</code></a></b></td>
- <td>Reusable base class to implement python-style file buffering around a
-simpler stream.</td></tr>
-<tr><td width="15%">
- <b><a href="paramiko.Channel-class.html"><code>Channel</code></a></b></td>
- <td>A secure tunnel across an SSH <a href="paramiko.Transport-class.html"
-class="link"><code>Transport</code></a>.</td></tr>
-<tr><td width="15%">
- <b><a href="paramiko.DSSKey-class.html"><code>DSSKey</code></a></b></td>
- <td>Representation of a DSS key which can be used to sign an verify SSH2
-data.</td></tr>
-<tr><td width="15%">
- <b><a href="paramiko.Message-class.html"><code>Message</code></a></b></td>
- <td>An SSH2 <i>Message</i> is a stream of bytes that encodes some
-combination of strings, integers, bools, and infinite-precision integers
-(known in python as <i>long</i>s).</td></tr>
-<tr><td width="15%">
- <b><a href="paramiko.RSAKey-class.html"><code>RSAKey</code></a></b></td>
- <td>Representation of an RSA key which can be used to sign and verify SSH2
-data.</td></tr>
-<tr><td width="15%">
- <b><a href="paramiko.SecurityOptions-class.html"><code>SecurityOptions</code></a></b></td>
- <td>Simple object containing the security preferences of an ssh
-transport.</td></tr>
-<tr><td width="15%">
- <b><a href="paramiko.SFTP-class.html"><code>SFTP</code></a></b></td>
- <td>an alias for <a href="paramiko.SFTPClient-class.html"
-class="link"><code>SFTPClient</code></a> for backwards compatability</td></tr>
-<tr><td width="15%">
- <b><a href="paramiko.SFTPAttributes-class.html"><code>SFTPAttributes</code></a></b></td>
- <td>Representation of the attributes of a file (or proxied file) for SFTP
-in client or server mode.</td></tr>
-<tr><td width="15%">
- <b><a href="paramiko.SFTPClient-class.html"><code>SFTPClient</code></a></b></td>
- <td>SFTP client object.</td></tr>
-<tr><td width="15%">
- <b><a href="paramiko.SFTPFile-class.html"><code>SFTPFile</code></a></b></td>
- <td>Proxy object for a file on the remote server, in client mode SFTP.</td></tr>
-<tr><td width="15%">
- <b><a href="paramiko.SFTPHandle-class.html"><code>SFTPHandle</code></a></b></td>
- <td>Abstract object representing a handle to an open file (or folder) in
-an SFTP server implementation.</td></tr>
-<tr><td width="15%">
- <b><a href="paramiko.SFTPServer-class.html"><code>SFTPServer</code></a></b></td>
- <td>Server-side SFTP subsystem support.</td></tr>
-<tr><td width="15%">
- <b><a href="paramiko.SubsystemHandler-class.html"><code>SubsystemHandler</code></a></b></td>
- <td>Handler for a subsytem in server mode.</td></tr>
-<tr><td width="15%">
- <b><a href="paramiko.Transport-class.html"><code>Transport</code></a></b></td>
- <td>An SSH Transport attaches to a stream (usually a socket), negotiates
-an encrypted session, authenticates, and then creates stream tunnels,
-called <a href="paramiko.Channel-class.html"
-class="link"><code>Channel</code></a>s, across the session.</td></tr>
-</table><br />
-
-
-<!-- =========== START OF EXCEPTIONS =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Exceptions</th></tr>
-<tr><td width="15%">
- <b><a href="paramiko.BadAuthenticationType-class.html"><code>BadAuthenticationType</code></a></b></td>
- <td>Exception raised when an authentication type (like password) is used,
-but the server isn't allowing that type.</td></tr>
-<tr><td width="15%">
- <b><a href="paramiko.PasswordRequiredException-class.html"><code>PasswordRequiredException</code></a></b></td>
- <td>Exception raised when a password is needed to unlock a private key
-file.</td></tr>
-<tr><td width="15%">
- <b><a href="paramiko.SFTPError-class.html"><code>SFTPError</code></a></b></td>
- <td>&nbsp;</td></tr>
-<tr><td width="15%">
- <b><a href="paramiko.SSHException-class.html"><code>SSHException</code></a></b></td>
- <td>Exception raised by failures in SSH2 protocol negotiation or logic
-errors.</td></tr>
-</table><br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th bgcolor="#70b0f0" class="navselect">&nbsp;&nbsp;&nbsp;Home&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/public/paramiko.Agent-class.html b/docs/public/paramiko.Agent-class.html
deleted file mode 100644
index 144efdf..0000000
--- a/docs/public/paramiko.Agent-class.html
+++ /dev/null
@@ -1,147 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.Agent</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Class&nbsp;Agent
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<a href="../private/paramiko.Agent-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.Agent-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Class Agent</h2>
-
-<hr/>
-
-<p>Client interface for using private keys from an SSH agent running on
-the local machine. If an SSH agent is running, this class can be used to
-connect to it and retreive <a href="../private/paramiko.PKey-class.html"
-class="link"><code>PKey</code></a> objects which can be used when
-attempting to authenticate to remote SSH servers.</p>
-Because the SSH agent protocol uses environment variables and
-unix-domain sockets, this probably doesn't work on Windows. It does work
-on most posix platforms though (Linux and MacOS X, for example).
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Agent-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Open a session with the local machine's SSH agent, if one is
-running.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Agent-class.html#close" class="summary-sig-name"><code>close</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Close the SSH agent connection.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> tuple of <a href="paramiko.AgentKey-class.html"
- class="link"><code>AgentKey</code></a>
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Agent-class.html#get_keys" class="summary-sig-name"><code>get_keys</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return the list of keys available through the SSH agent, if any.</td></tr>
-</table><br />
-
-
-<!-- =========== START OF METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Method Details</th></tr>
-</table>
-
-<a name="__init__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__init__</span>(<span class=sig-arg>self</span>)</span>
- <br /><i>(Constructor)</i>
- </h3>
- Open a session with the local machine's SSH agent, if one is
- running. If no agent is running, initialization will succeed, but <a
- href="paramiko.Agent-class.html#get_keys"
- class="link"><code>get_keys</code></a> will return an empty tuple.
- <dl><dt></dt><dd>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>SSHException</b></code> -
- if an SSH agent is found, but speaks an incompatible
- protocol
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="close"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">close</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Close the SSH agent connection.
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-
-<a name="get_keys"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_keys</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Return the list of keys available through the SSH agent, if any. If
- no SSH agent was running (or it couldn't be contacted), an empty list
- will be returned.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- a list of keys available on the SSH agent
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=tuple of <a href="paramiko.AgentKey-class.html"
- class="link"><code>AgentKey</code></a>)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:48 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/public/paramiko.AgentKey-class.html b/docs/public/paramiko.AgentKey-class.html
deleted file mode 100644
index 203e0f4..0000000
--- a/docs/public/paramiko.AgentKey-class.html
+++ /dev/null
@@ -1,236 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.AgentKey</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Class&nbsp;AgentKey
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<a href="../private/paramiko.AgentKey-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.AgentKey-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type AgentKey</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
- <a href="../private/paramiko.PKey-class.html"><code>PKey</code></a> --+
- |
- <b>AgentKey</b>
-</pre><br />
-
-<hr/>
-
-Private key held in a local SSH agent. This type of key can be used
-for authenticating to a remote server (signing). Most other key
-operations work as expected.
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__init__"></a><span class="summary-sig"><span class="summary-sig-name">__init__</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>agent</span>,
- <span class=summary-sig-arg>blob</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.AgentKey-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return a string of an SSH <a href="paramiko.Message-class.html"
-class="link"><code>Message</code></a> made up of the public part(s) of
-this key.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.AgentKey-class.html#get_name" class="summary-sig-name"><code>get_name</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return the name of this private key implementation.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> <a href="paramiko.Message-class.html"
- class="link"><code>Message</code></a>
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.AgentKey-class.html#sign_ssh_data" class="summary-sig-name"><code>sign_ssh_data</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>randpool</span>,
- <span class=summary-sig-arg>data</span>)</span></code>
-<br />
-Sign a blob of data with this private key, and return a <a
-href="paramiko.Message-class.html" class="link"><code>Message</code></a>
-representing an SSH signature message.</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__repr__() &lt;==&gt; repr(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-</table><br />
-
-
-<!-- =========== START OF INSTANCE METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Instance Method Details</th></tr>
-</table>
-
-<a name="__str__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__str__</span>(<span class=sig-arg>self</span>)</span>
- <br /><i>(Informal representation operator)</i>
- </h3>
- Return a string of an SSH <a href="paramiko.Message-class.html"
- class="link"><code>Message</code></a> made up of the public part(s) of
- this key. This string is suitable for passing to <a
- href="../private/paramiko.PKey-class.html#__init__"
- class="link"><code>__init__</code></a> to re-create the key object
- later.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- string representation of an SSH key message.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="../private/paramiko.PKey-class.html#__str__"><code>paramiko.PKey.__str__</code></a> <i>(inherited documentation)</i>
-</dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="get_name"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_name</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Return the name of this private key implementation.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- name of this private key type, in SSH terminology (for
- example, <code>&quot;ssh-rsa&quot;</code>).
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="../private/paramiko.PKey-class.html#get_name"><code>paramiko.PKey.get_name</code></a> <i>(inherited documentation)</i>
-</dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="sign_ssh_data"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">sign_ssh_data</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>randpool</span>,
- <span class=sig-arg>data</span>)</span>
- </h3>
- Sign a blob of data with this private key, and return a <a
- href="paramiko.Message-class.html"
- class="link"><code>Message</code></a> representing an SSH signature
- message.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>randpool</b></code> -
- a secure random number generator.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<code>Crypto.Util.randpool.RandomPool</code>)</i>
- <dd><code><b>data</b></code> -
- the data to sign.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- an SSH signature message.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.Message-class.html"
- class="link"><code>Message</code></a>)</i>
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="../private/paramiko.PKey-class.html#sign_ssh_data"><code>paramiko.PKey.sign_ssh_data</code></a> <i>(inherited documentation)</i>
-</dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/public/paramiko.BadAuthenticationType-class.html b/docs/public/paramiko.BadAuthenticationType-class.html
deleted file mode 100644
index 27659ed..0000000
--- a/docs/public/paramiko.BadAuthenticationType-class.html
+++ /dev/null
@@ -1,141 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.BadAuthenticationType</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Class&nbsp;BadAuthenticationType
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<a href="../private/paramiko.BadAuthenticationType-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.BadAuthenticationType-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Class BadAuthenticationType</h2>
-
-<pre class="base-tree">
-<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+
- |
- <a href="paramiko.SSHException-class.html"><code>SSHException</code></a> --+
- |
- <b>BadAuthenticationType</b>
-</pre><br />
-
-<hr/>
-
-Exception raised when an authentication type (like password) is used,
-but the server isn't allowing that type. (It may only allow public-key,
-for example.)
-<hr/>
-
-<p><b>Since:</b> 1.1
-</p>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__init__"></a><span class="summary-sig"><span class="summary-sig-name">__init__</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>explanation</span>,
- <span class=summary-sig-arg>types</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__str__"></a><span class="summary-sig"><span class="summary-sig-name">__str__</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-</td></tr>
-</table><br />
-
-
-<!-- =========== START OF INSTANCE VARIABLE SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Instance Variable Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">list</font></td>
-<td><b><a href="paramiko.BadAuthenticationType-class.html#allowed_types"><code>allowed_types</code></a></b>: list of allowed authentication types provided by the server (possible
-values are: <code>&quot;none&quot;</code>,
-<code>&quot;password&quot;</code>, and
-<code>&quot;publickey&quot;</code>).</td></tr>
-</table><br />
-
-
-<!-- =========== START OF INSTANCE VARIABLE DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Instance Variable Details</th></tr>
-</table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="allowed_types"></a>
-<h3>allowed_types</h3>
-list of allowed authentication types provided by the server (possible
-values are: <code>&quot;none&quot;</code>,
-<code>&quot;password&quot;</code>, and
-<code>&quot;publickey&quot;</code>).
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- list
-
- </dd>
-<span title="[]"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-[] </pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:48 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/public/paramiko.BufferedFile-class.html b/docs/public/paramiko.BufferedFile-class.html
deleted file mode 100644
index 535c74f..0000000
--- a/docs/public/paramiko.BufferedFile-class.html
+++ /dev/null
@@ -1,554 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.BufferedFile</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Class&nbsp;BufferedFile
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<a href="../private/paramiko.BufferedFile-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.BufferedFile-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type BufferedFile</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
- <b>BufferedFile</b>
-</pre><br />
-
-<dl><dt><b>Known Subclasses:</b></dt>
-<dd>
- <a href="paramiko.SFTPFile-class.html"><code>SFTPFile</code></a></dd></dl>
-
-<hr/>
-
-Reusable base class to implement python-style file buffering around a
-simpler stream.
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__init__"></a><span class="summary-sig"><span class="summary-sig-name">__init__</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__del__"></a><span class="summary-sig"><span class="summary-sig-name">__del__</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> iterator
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#__iter__" class="summary-sig-name"><code>__iter__</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Returns an iterator that can be used to iterate over the lines in this
-file.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#close" class="summary-sig-name"><code>close</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Close the file.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#flush" class="summary-sig-name"><code>flush</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Write out any data in the write buffer.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#next" class="summary-sig-name"><code>next</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Returns the next line from the input, or raises
-<code>StopIteration</code> when EOF is hit.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#read" class="summary-sig-name"><code>read</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>size</span>)</span></code>
-<br />
-Read at most <code>size</code> bytes from the file (less if we hit the
-end of the file first).</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#readline" class="summary-sig-name"><code>readline</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>size</span>)</span></code>
-<br />
-Read one entire line from the file.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> list
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#readlines" class="summary-sig-name"><code>readlines</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>sizehint</span>)</span></code>
-<br />
-Read all remaining lines using <a
-href="paramiko.BufferedFile-class.html#readline"
-class="link"><code>readline</code></a> and return them as a list.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#seek" class="summary-sig-name"><code>seek</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>offset</span>,
- <span class=summary-sig-arg>whence</span>)</span></code>
-<br />
-Set the file's current position, like stdio's <code>fseek</code>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> int
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#tell" class="summary-sig-name"><code>tell</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return the file's current position.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#write" class="summary-sig-name"><code>write</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>data</span>)</span></code>
-<br />
-Write data to the file.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#writelines" class="summary-sig-name"><code>writelines</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>sequence</span>)</span></code>
-<br />
-Write a sequence of strings to the file.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> iterator
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#xreadlines" class="summary-sig-name"><code>xreadlines</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Identical to <code>iter(f)</code>.</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__repr__() &lt;==&gt; repr(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__str__() &lt;==&gt; str(x)</td></tr>
-</table><br />
-
-
-<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Class Variable Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.BufferedFile-class.html#SEEK_CUR"><code>SEEK_CUR</code></a></b> = <span title="1">1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.BufferedFile-class.html#SEEK_END"><code>SEEK_END</code></a></b> = <span title="2">2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.BufferedFile-class.html#SEEK_SET"><code>SEEK_SET</code></a></b> = <span title="0">0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-</table><br />
-
-
-<!-- =========== START OF METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Method Details</th></tr>
-</table>
-
-<a name="__iter__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__iter__</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Returns an iterator that can be used to iterate over the lines in
- this file. This iterator happens to return the file itself, since a
- file is its own iterator.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- an interator.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=iterator)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>ValueError</b></code> -
- if the file is closed.
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="close"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">close</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Close the file. Future read and write operations will fail.
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-
-<a name="flush"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">flush</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Write out any data in the write buffer. This may do nothing if write
- buffering is not turned on.
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-
-<a name="next"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">next</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Returns the next line from the input, or raises
- <code>StopIteration</code> when EOF is hit. Unlike python file objects,
- it's okay to mix calls to <code>next</code> and <a
- href="paramiko.BufferedFile-class.html#readline"
- class="link"><code>readline</code></a>.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- a line read from the file.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>StopIteration</b></code> -
- when the end of the file is reached.
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="read"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">read</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>size</span>=<span class=sig-default>None</span>)</span>
- </h3>
- Read at most <code>size</code> bytes from the file (less if we hit
- the end of the file first). If the <code>size</code> argument is
- negative or omitted, read all the remaining data in the file.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>size</b></code> -
- maximum number of bytes to read.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- data read from the file, or an empty string if EOF was
- encountered immediately.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="readline"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">readline</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>size</span>=<span class=sig-default>None</span>)</span>
- </h3>
- Read one entire line from the file. A trailing newline character is
- kept in the string (but may be absent when a file ends with an
- incomplete line). If the size argument is present and non-negative, it
- is a maximum byte count (including the trailing newline) and an
- incomplete line may be returned. An empty string is returned only when
- EOF is encountered immediately.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>size</b></code> -
- maximum length of returned string.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- next line of the file, or an empty string if the end of the
- file has been reached.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
-<p><b>Note:</b> Unlike stdio's <code>fgets()</code>, the returned string contains null
-characters (<code>'\0'</code>) if they occurred in the input.
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="readlines"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">readlines</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>sizehint</span>=<span class=sig-default>None</span>)</span>
- </h3>
- Read all remaining lines using <a
- href="paramiko.BufferedFile-class.html#readline"
- class="link"><code>readline</code></a> and return them as a list. If
- the optional <code>sizehint</code> argument is present, instead of
- reading up to EOF, whole lines totalling approximately sizehint bytes
- (possibly after rounding up to an internal buffer size) are read.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>sizehint</b></code> -
- desired maximum number of bytes to read.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- list of lines read from the file.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=list)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="seek"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">seek</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>offset</span>,
- <span class=sig-arg>whence</span>=<span class=sig-default>0</span>)</span>
- </h3>
- Set the file's current position, like stdio's <code>fseek</code>.
- Not all file objects support seeking.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>offset</b></code> -
- position to move to within the file, relative to
- <code>whence</code>.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- <dd><code><b>whence</b></code> -
- type of movement: 0 = absolute; 1 = relative to the current
- position; 2 = relative to the end of the file.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>IOError</b></code> -
- if the file doesn't support random access.
- </dl>
-<p><b>Note:</b> If a file is opened in append mode (<code>'a'</code> or
-<code>'a+'</code>), any seek operations will be undone at the next write
-(as the file position will move back to the end of the file).
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="tell"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">tell</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Return the file's current position. This may not be accurate or
- useful if the underlying file doesn't support random access, or was
- opened in append mode.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- file position (in bytes).
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="write"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">write</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>data</span>)</span>
- </h3>
- Write data to the file. If write buffering is on
- (<code>bufsize</code> was specified and non-zero), some or all of the
- data may not actually be written yet. (Use <a
- href="paramiko.BufferedFile-class.html#flush"
- class="link"><code>flush</code></a> or <a
- href="paramiko.BufferedFile-class.html#close"
- class="link"><code>close</code></a> to force buffered data to be
- written out.)
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>data</b></code> -
- data to write.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="writelines"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">writelines</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>sequence</span>)</span>
- </h3>
- Write a sequence of strings to the file. The sequence can be any
- iterable object producing strings, typically a list of strings. (The
- name is intended to match <a
- href="paramiko.BufferedFile-class.html#readlines"
- class="link"><code>readlines</code></a>; <code>writelines</code> does
- not add line separators.)
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>sequence</b></code> -
- an iterable sequence of strings.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=sequence)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="xreadlines"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">xreadlines</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Identical to <code>iter(f)</code>. This is a deprecated file
- interface that predates python iterator support.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- an iterator.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=iterator)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF CLASS VARIABLE DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Class Variable Details</th></tr>
-</table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="SEEK_CUR"></a>
-<h3>SEEK_CUR</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="1"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="SEEK_END"></a>
-<h3>SEEK_END</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="2"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="SEEK_SET"></a>
-<h3>SEEK_SET</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="0"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/public/paramiko.Channel-class.html b/docs/public/paramiko.Channel-class.html
deleted file mode 100644
index 89bff06..0000000
--- a/docs/public/paramiko.Channel-class.html
+++ /dev/null
@@ -1,1241 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.Channel</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Class&nbsp;Channel
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<a href="../private/paramiko.Channel-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.Channel-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type Channel</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
- <b>Channel</b>
-</pre><br />
-
-<hr/>
-
-<p>A secure tunnel across an SSH <a href="paramiko.Transport-class.html"
-class="link"><code>Transport</code></a>. A Channel is meant to behave
-like a socket, and has an API that should be indistinguishable from the
-python socket API.</p>
-Because SSH2 has a windowing kind of flow control, if you stop reading
-data from a Channel and its buffer fills up, the server will be unable to
-send you any more data until you read some of it. (This won't affect
-other channels on the same transport -- all channels on a single
-transport are flow-controlled independently.) Similarly, if the server
-isn't reading data you send, calls to <a
-href="paramiko.Channel-class.html#send"
-class="link"><code>send</code></a> may block, unless you set a timeout.
-This is exactly like a normal network socket, so it shouldn't be too
-surprising.
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>chanid</span>)</span></code>
-<br />
-Create a new channel.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__del__"></a><span class="summary-sig"><span class="summary-sig-name">__del__</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return a string representation of this object, for debugging.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#close" class="summary-sig-name"><code>close</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Close the channel.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> bool
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#exec_command" class="summary-sig-name"><code>exec_command</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>command</span>)</span></code>
-<br />
-Execute a command on the server.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> int
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#fileno" class="summary-sig-name"><code>fileno</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Returns an OS-level file descriptor which can be used for polling, but
-but <i>not</i> for reading or writing).</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> int
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#get_id" class="summary-sig-name"><code>get_id</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return the ID # for this channel.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#get_name" class="summary-sig-name"><code>get_name</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Get the name of this channel that was previously set by <a
-href="paramiko.Channel-class.html#set_name"
-class="link"><code>set_name</code></a>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> bool
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#get_pty" class="summary-sig-name"><code>get_pty</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>term</span>,
- <span class=summary-sig-arg>width</span>,
- <span class=summary-sig-arg>height</span>)</span></code>
-<br />
-Request a pseudo-terminal from the server.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> <a href="paramiko.Transport-class.html"
- class="link"><code>Transport</code></a>
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#get_transport" class="summary-sig-name"><code>get_transport</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return the <a href="paramiko.Transport-class.html"
-class="link"><code>Transport</code></a> associated with this channel.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> float
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#gettimeout" class="summary-sig-name"><code>gettimeout</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Returns the timeout in seconds (as a float) associated with socket
-operations, or <code>None</code> if no timeout is set.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> bool
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#invoke_shell" class="summary-sig-name"><code>invoke_shell</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Request an interactive shell session on this channel.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> bool
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#invoke_subsystem" class="summary-sig-name"><code>invoke_subsystem</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>subsystem</span>)</span></code>
-<br />
-Request a subsystem on the server (for example,
-<code>sftp</code>).</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> <a href="../private/paramiko.ChannelFile-class.html"
- class="link"><code>ChannelFile</code></a>
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#makefile" class="summary-sig-name"><code>makefile</code></a>(<span class=summary-sig-arg>self</span>,
- <span class="summary-sig-vararg">*params</span>)</span></code>
-<br />
-Return a file-like object associated with this channel.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> <a href="../private/paramiko.ChannelFile-class.html"
- class="link"><code>ChannelFile</code></a>
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#makefile_stderr" class="summary-sig-name"><code>makefile_stderr</code></a>(<span class=summary-sig-arg>self</span>,
- <span class="summary-sig-vararg">*params</span>)</span></code>
-<br />
-Return a file-like object associated with this channel's stderr
-stream.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#recv" class="summary-sig-name"><code>recv</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>nbytes</span>)</span></code>
-<br />
-Receive data from the channel.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> int
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#recv_exit_status" class="summary-sig-name"><code>recv_exit_status</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return the exit status from the process on the server.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> boolean
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#recv_ready" class="summary-sig-name"><code>recv_ready</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Returns true if data is buffered and ready to be read from this
-channel.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#recv_stderr" class="summary-sig-name"><code>recv_stderr</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>nbytes</span>)</span></code>
-<br />
-Receive data from the channel's stderr stream.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> boolean
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#recv_stderr_ready" class="summary-sig-name"><code>recv_stderr_ready</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Returns true if data is buffered and ready to be read from this
-channel's stderr stream.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> bool
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#resize_pty" class="summary-sig-name"><code>resize_pty</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>width</span>,
- <span class=summary-sig-arg>height</span>)</span></code>
-<br />
-Resize the pseudo-terminal.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> int
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#send" class="summary-sig-name"><code>send</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>s</span>)</span></code>
-<br />
-Send data to the channel.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#send_exit_status" class="summary-sig-name"><code>send_exit_status</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>status</span>)</span></code>
-<br />
-Send the exit status of an executed command to the client.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> int
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#send_stderr" class="summary-sig-name"><code>send_stderr</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>s</span>)</span></code>
-<br />
-Send data to the channel on the &quot;stderr&quot; stream.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#sendall" class="summary-sig-name"><code>sendall</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>s</span>)</span></code>
-<br />
-Send data to the channel, without allowing partial results.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#sendall_stderr" class="summary-sig-name"><code>sendall_stderr</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>s</span>)</span></code>
-<br />
-Send data to the channel's &quot;stderr&quot; stream, without allowing
-partial results.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> bool
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#set_combine_stderr" class="summary-sig-name"><code>set_combine_stderr</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>combine</span>)</span></code>
-<br />
-Set whether stderr should be combined into stdout on this channel.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#set_name" class="summary-sig-name"><code>set_name</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>name</span>)</span></code>
-<br />
-Set a name for this channel.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#setblocking" class="summary-sig-name"><code>setblocking</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>blocking</span>)</span></code>
-<br />
-Set blocking or non-blocking mode of the channel: if
-<code>blocking</code> is 0, the channel is set to non-blocking mode;
-otherwise it's set to blocking mode.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#settimeout" class="summary-sig-name"><code>settimeout</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>timeout</span>)</span></code>
-<br />
-Set a timeout on blocking read/write operations.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#shutdown" class="summary-sig-name"><code>shutdown</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>how</span>)</span></code>
-<br />
-Shut down one or both halves of the connection.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#shutdown_read" class="summary-sig-name"><code>shutdown_read</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Shutdown the receiving side of this socket, closing the stream in the
-incoming direction.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Channel-class.html#shutdown_write" class="summary-sig-name"><code>shutdown_write</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Shutdown the sending side of this socket, closing the stream in the
-outgoing direction.</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__str__() &lt;==&gt; str(x)</td></tr>
-</table><br />
-
-
-<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Class Variable Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.Channel-class.html#MIN_PACKET_SIZE"><code>MIN_PACKET_SIZE</code></a></b> = <span title="1024">1024&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-</table><br />
-
-
-<!-- =========== START OF METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Method Details</th></tr>
-</table>
-
-<a name="__init__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__init__</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>chanid</span>)</span>
- <br /><i>(Constructor)</i>
- </h3>
- Create a new channel. The channel is not associated with any
- particular session or <a href="paramiko.Transport-class.html"
- class="link"><code>Transport</code></a> until the Transport attaches
- it. Normally you would only call this method from the constructor of a
- subclass of <a href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a>.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>chanid</b></code> -
- the ID of this channel, as passed by an existing <a
- href="paramiko.Transport-class.html"
- class="link"><code>Transport</code></a>.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="__builtin__.object-class.html#__init__"><code>__builtin__.object.__init__</code></a></dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="__repr__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__repr__</span>(<span class=sig-arg>self</span>)</span>
- <br /><i>(Representation operator)</i>
- </h3>
- Return a string representation of this object, for debugging.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- str
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="__builtin__.object-class.html#__repr__"><code>__builtin__.object.__repr__</code></a></dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="close"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">close</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Close the channel. All future read/write operations on the channel
- will fail. The remote end will receive no more data (after queued data
- is flushed). Channels are automatically closed when their <a
- href="paramiko.Transport-class.html"
- class="link"><code>Transport</code></a> is closed or when they are
- garbage collected.
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-
-<a name="exec_command"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">exec_command</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>command</span>)</span>
- </h3>
- <p>Execute a command on the server. If the server allows it, the
- channel will then be directly connected to the stdin, stdout, and
- stderr of the command being executed.</p>
- When the command finishes executing, the channel will be closed and
- can't be reused. You must open a new channel if you wish to execute
- another command.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>command</b></code> -
- a shell command to execute.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- <code>True</code> if the operation succeeded;
- <code>False</code> if not.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=bool)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="fileno"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">fileno</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- <p>Returns an OS-level file descriptor which can be used for polling,
- but but <i>not</i> for reading or writing). This is primaily to allow
- python's <code>select</code> module to work.</p>
- The first time <code>fileno</code> is called on a channel, a pipe is
- created to simulate real OS-level file descriptor (FD) behavior.
- Because of this, two OS-level FDs are created, which will use up FDs
- faster than normal. You won't notice this effect unless you open
- hundreds or thousands of channels simultaneously, but it's still
- notable.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- an OS-level file descriptor
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
-<p><b>Warning:</b> This method causes channel reads to be slightly less efficient.
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="get_id"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_id</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Return the ID # for this channel. The channel ID is unique across a
- <a href="paramiko.Transport-class.html"
- class="link"><code>Transport</code></a> and usually a small number.
- It's also the number passed to <a
- href="../private/paramiko.ServerInterface-class.html#check_channel_request"
- class="link"><code>ServerInterface.check_channel_request</code></a>
- when determining whether to accept a channel request in server
- mode.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- the ID of this channel.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
-<p><b>Since:</b> ivysaur
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="get_name"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_name</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Get the name of this channel that was previously set by <a
- href="paramiko.Channel-class.html#set_name"
- class="link"><code>set_name</code></a>.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- the name of this channel.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="get_pty"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_pty</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>term</span>=<span class=sig-default>'vt100'</span>,
- <span class=sig-arg>width</span>=<span class=sig-default>80</span>,
- <span class=sig-arg>height</span>=<span class=sig-default>24</span>)</span>
- </h3>
- Request a pseudo-terminal from the server. This is usually used
- right after creating a client channel, to ask the server to provide
- some basic terminal semantics for a shell invoked with <a
- href="paramiko.Channel-class.html#invoke_shell"
- class="link"><code>invoke_shell</code></a>. It isn't necessary (or
- desirable) to call this method if you're going to exectue a single
- command with <a href="paramiko.Channel-class.html#exec_command"
- class="link"><code>exec_command</code></a>.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>term</b></code> -
- the terminal type to emulate (for example,
- <code>'vt100'</code>).
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>width</b></code> -
- width (in characters) of the terminal screen
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- <dd><code><b>height</b></code> -
- height (in characters) of the terminal screen
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- <code>True</code> if the operation succeeded;
- <code>False</code> if not.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=bool)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="get_transport"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_transport</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Return the <a href="paramiko.Transport-class.html"
- class="link"><code>Transport</code></a> associated with this
- channel.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- the <a href="paramiko.Transport-class.html"
- class="link"><code>Transport</code></a> that was used to create
- this channel.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.Transport-class.html"
- class="link"><code>Transport</code></a>)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="gettimeout"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">gettimeout</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Returns the timeout in seconds (as a float) associated with socket
- operations, or <code>None</code> if no timeout is set. This reflects
- the last call to <a href="paramiko.Channel-class.html#setblocking"
- class="link"><code>setblocking</code></a> or <a
- href="paramiko.Channel-class.html#settimeout"
- class="link"><code>settimeout</code></a>.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- timeout in seconds, or <code>None</code>.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=float)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="invoke_shell"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">invoke_shell</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- <p>Request an interactive shell session on this channel. If the server
- allows it, the channel will then be directly connected to the stdin,
- stdout, and stderr of the shell.</p>
- <p>Normally you would call <a
- href="paramiko.Channel-class.html#get_pty"
- class="link"><code>get_pty</code></a> before this, in which case the
- shell will operate through the pty, and the channel will be connected
- to the stdin and stdout of the pty.</p>
- When the shell exits, the channel will be closed and can't be
- reused. You must open a new channel if you wish to open another
- shell.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- <code>True</code> if the operation succeeded;
- <code>False</code> if not.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=bool)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="invoke_subsystem"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">invoke_subsystem</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>subsystem</span>)</span>
- </h3>
- <p>Request a subsystem on the server (for example, <code>sftp</code>).
- If the server allows it, the channel will then be directly connected to
- the requested subsystem.</p>
- When the subsystem finishes, the channel will be closed and can't be
- reused.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>subsystem</b></code> -
- name of the subsystem being requested.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- <code>True</code> if the operation succeeded;
- <code>False</code> if not.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=bool)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="makefile"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">makefile</span>(<span class=sig-arg>self</span>,
- <span class="sig-vararg">*params</span>)</span>
- </h3>
- Return a file-like object associated with this channel. The optional
- <code>mode</code> and <code>bufsize</code> arguments are interpreted
- the same way as by the built-in <code>file()</code> function in
- python.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- object which can be used for python file I/O.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="../private/paramiko.ChannelFile-class.html"
- class="link"><code>ChannelFile</code></a>)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="makefile_stderr"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">makefile_stderr</span>(<span class=sig-arg>self</span>,
- <span class="sig-vararg">*params</span>)</span>
- </h3>
- <p>Return a file-like object associated with this channel's stderr
- stream. Only channels using <a
- href="paramiko.Channel-class.html#exec_command"
- class="link"><code>exec_command</code></a> or <a
- href="paramiko.Channel-class.html#invoke_shell"
- class="link"><code>invoke_shell</code></a> without a pty will ever have
- data on the stderr stream.</p>
- The optional <code>mode</code> and <code>bufsize</code> arguments
- are interpreted the same way as by the built-in <code>file()</code>
- function in python. For a client, it only makes sense to open this file
- for reading. For a server, it only makes sense to open this file for
- writing.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- object which can be used for python file I/O.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="../private/paramiko.ChannelFile-class.html"
- class="link"><code>ChannelFile</code></a>)</i>
- </dd>
- </dl>
-<p><b>Since:</b> 1.1
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="recv"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">recv</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>nbytes</span>)</span>
- </h3>
- Receive data from the channel. The return value is a string
- representing the data received. The maximum amount of data to be
- received at once is specified by <code>nbytes</code>. If a string of
- length zero is returned, the channel stream has closed.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>nbytes</b></code> -
- maximum number of bytes to read.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- data.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>socket.timeout</b></code> -
- if no data is ready before the timeout set by <a
- href="paramiko.Channel-class.html#settimeout"
- class="link"><code>settimeout</code></a>.
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="recv_exit_status"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">recv_exit_status</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Return the exit status from the process on the server. This is
- mostly useful for retrieving the reults of an <a
- href="paramiko.Channel-class.html#exec_command"
- class="link"><code>exec_command</code></a>. If the command hasn't
- finished yet, this method will wait until it does, or until the channel
- is closed. If no exit status is provided by the server, -1 is
- returned.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- the exit code of the process on the server.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
-<p><b>Since:</b> 1.2
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="recv_ready"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">recv_ready</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Returns true if data is buffered and ready to be read from this
- channel. A <code>False</code> result does not mean that the channel has
- closed; it means you may need to wait before more data arrives.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- <code>True</code> if a <a
- href="paramiko.Channel-class.html#recv"
- class="link"><code>recv</code></a> call on this channel would
- immediately return at least one byte; <code>False</code>
- otherwise.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=boolean)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="recv_stderr"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">recv_stderr</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>nbytes</span>)</span>
- </h3>
- Receive data from the channel's stderr stream. Only channels using
- <a href="paramiko.Channel-class.html#exec_command"
- class="link"><code>exec_command</code></a> or <a
- href="paramiko.Channel-class.html#invoke_shell"
- class="link"><code>invoke_shell</code></a> without a pty will ever have
- data on the stderr stream. The return value is a string representing
- the data received. The maximum amount of data to be received at once is
- specified by <code>nbytes</code>. If a string of length zero is
- returned, the channel stream has closed.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>nbytes</b></code> -
- maximum number of bytes to read.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- data.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>socket.timeout</b></code> -
- if no data is ready before the timeout set by <a
- href="paramiko.Channel-class.html#settimeout"
- class="link"><code>settimeout</code></a>.
- </dl>
-<p><b>Since:</b> 1.1
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="recv_stderr_ready"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">recv_stderr_ready</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Returns true if data is buffered and ready to be read from this
- channel's stderr stream. Only channels using <a
- href="paramiko.Channel-class.html#exec_command"
- class="link"><code>exec_command</code></a> or <a
- href="paramiko.Channel-class.html#invoke_shell"
- class="link"><code>invoke_shell</code></a> without a pty will ever have
- data on the stderr stream.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- <code>True</code> if a <a
- href="paramiko.Channel-class.html#recv_stderr"
- class="link"><code>recv_stderr</code></a> call on this channel
- would immediately return at least one byte; <code>False</code>
- otherwise.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=boolean)</i>
- </dd>
- </dl>
-<p><b>Since:</b> 1.1
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="resize_pty"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">resize_pty</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>width</span>=<span class=sig-default>80</span>,
- <span class=sig-arg>height</span>=<span class=sig-default>24</span>)</span>
- </h3>
- Resize the pseudo-terminal. This can be used to change the width and
- height of the terminal emulation created in a previous <a
- href="paramiko.Channel-class.html#get_pty"
- class="link"><code>get_pty</code></a> call.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>width</b></code> -
- new width (in characters) of the terminal screen
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- <dd><code><b>height</b></code> -
- new height (in characters) of the terminal screen
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- <code>True</code> if the operation succeeded;
- <code>False</code> if not.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=bool)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="send"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">send</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>s</span>)</span>
- </h3>
- Send data to the channel. Returns the number of bytes sent, or 0 if
- the channel stream is closed. Applications are responsible for checking
- that all data has been sent: if only some of the data was transmitted,
- the application needs to attempt delivery of the remaining data.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>s</b></code> -
- data to send.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- number of bytes actually sent.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>socket.timeout</b></code> -
- if no data could be sent before the timeout set by <a
- href="paramiko.Channel-class.html#settimeout"
- class="link"><code>settimeout</code></a>.
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="send_exit_status"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">send_exit_status</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>status</span>)</span>
- </h3>
- Send the exit status of an executed command to the client. (This
- really only makes sense in server mode.) Many clients expect to get
- some sort of status code back from an executed command after it
- completes.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>status</b></code> -
- the exit code of the process
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
-<p><b>Since:</b> 1.2
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="send_stderr"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">send_stderr</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>s</span>)</span>
- </h3>
- Send data to the channel on the &quot;stderr&quot; stream. This is
- normally only used by servers to send output from shell commands --
- clients won't use this. Returns the number of bytes sent, or 0 if the
- channel stream is closed. Applications are responsible for checking
- that all data has been sent: if only some of the data was transmitted,
- the application needs to attempt delivery of the remaining data.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>s</b></code> -
- data to send.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- number of bytes actually sent.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>socket.timeout</b></code> -
- if no data could be sent before the timeout set by <a
- href="paramiko.Channel-class.html#settimeout"
- class="link"><code>settimeout</code></a>.
- </dl>
-<p><b>Since:</b> 1.1
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="sendall"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">sendall</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>s</span>)</span>
- </h3>
- Send data to the channel, without allowing partial results. Unlike
- <a href="paramiko.Channel-class.html#send"
- class="link"><code>send</code></a>, this method continues to send data
- from the given string until either all data has been sent or an error
- occurs. Nothing is returned.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>s</b></code> -
- data to send.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>socket.timeout</b></code> -
- if sending stalled for longer than the timeout set by <a
- href="paramiko.Channel-class.html#settimeout"
- class="link"><code>settimeout</code></a>.
- <dd><code><b>socket.error</b></code> -
- if an error occured before the entire string was sent.
- </dl>
-<p><b>Note:</b> If the channel is closed while only part of the data hase been sent,
-there is no way to determine how much data (if any) was sent. This is
-irritating, but identically follows python's API.
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="sendall_stderr"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">sendall_stderr</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>s</span>)</span>
- </h3>
- Send data to the channel's &quot;stderr&quot; stream, without
- allowing partial results. Unlike <a
- href="paramiko.Channel-class.html#send_stderr"
- class="link"><code>send_stderr</code></a>, this method continues to
- send data from the given string until all data has been sent or an
- error occurs. Nothing is returned.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>s</b></code> -
- data to send to the client as &quot;stderr&quot; output.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>socket.timeout</b></code> -
- if sending stalled for longer than the timeout set by <a
- href="paramiko.Channel-class.html#settimeout"
- class="link"><code>settimeout</code></a>.
- <dd><code><b>socket.error</b></code> -
- if an error occured before the entire string was sent.
- </dl>
-<p><b>Since:</b> 1.1
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="set_combine_stderr"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">set_combine_stderr</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>combine</span>)</span>
- </h3>
- <p>Set whether stderr should be combined into stdout on this channel.
- The default is <code>False</code>, but in some cases it may be
- convenient to have both streams combined.</p>
- <p>If this is <code>False</code>, and <a
- href="paramiko.Channel-class.html#exec_command"
- class="link"><code>exec_command</code></a> is called (or
- <code>invoke_shell</code> with no pty), output to stderr will not show
- up through the <a href="paramiko.Channel-class.html#recv"
- class="link"><code>recv</code></a> and <a
- href="paramiko.Channel-class.html#recv_ready"
- class="link"><code>recv_ready</code></a> calls. You will have to use <a
- href="paramiko.Channel-class.html#recv_stderr"
- class="link"><code>recv_stderr</code></a> and <a
- href="paramiko.Channel-class.html#recv_stderr_ready"
- class="link"><code>recv_stderr_ready</code></a> to get stderr
- output.</p>
- If this is <code>True</code>, data will never show up via <a
- href="paramiko.Channel-class.html#recv_stderr"
- class="link"><code>recv_stderr</code></a> or <a
- href="paramiko.Channel-class.html#recv_stderr_ready"
- class="link"><code>recv_stderr_ready</code></a>.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>combine</b></code> -
- <code>True</code> if stderr output should be combined into
- stdout on this channel.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=bool)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- previous setting.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=bool)</i>
- </dd>
- </dl>
-<p><b>Since:</b> 1.1
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="set_name"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">set_name</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>name</span>)</span>
- </h3>
- Set a name for this channel. Currently it's only used to set the
- name of the log level used for debugging. The name can be fetched with
- the <a href="paramiko.Channel-class.html#get_name"
- class="link"><code>get_name</code></a> method.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>name</b></code> -
- new channel name.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="setblocking"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">setblocking</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>blocking</span>)</span>
- </h3>
- <p>Set blocking or non-blocking mode of the channel: if
- <code>blocking</code> is 0, the channel is set to non-blocking mode;
- otherwise it's set to blocking mode. Initially all channels are in
- blocking mode.</p>
- <p>In non-blocking mode, if a <a
- href="paramiko.Channel-class.html#recv"
- class="link"><code>recv</code></a> call doesn't find any data, or if a
- <a href="paramiko.Channel-class.html#send"
- class="link"><code>send</code></a> call can't immediately dispose of
- the data, an error exception is raised. In blocking mode, the calls
- block until they can proceed.</p>
- <code>chan.setblocking(0)</code> is equivalent to
- <code>chan.settimeout(0)</code>; <code>chan.setblocking(1)</code> is
- equivalent to <code>chan.settimeout(None)</code>.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>blocking</b></code> -
- 0 to set non-blocking mode; non-0 to set blocking mode.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="settimeout"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">settimeout</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>timeout</span>)</span>
- </h3>
- <p>Set a timeout on blocking read/write operations. The
- <code>timeout</code> argument can be a nonnegative float expressing
- seconds, or <code>None</code>. If a float is given, subsequent channel
- read/write operations will raise a timeout exception if the timeout
- period value has elapsed before the operation has completed. Setting a
- timeout of <code>None</code> disables timeouts on socket
- operations.</p>
- <code>chan.settimeout(0.0)</code> is equivalent to
- <code>chan.setblocking(0)</code>; <code>chan.settimeout(None)</code> is
- equivalent to <code>chan.setblocking(1)</code>.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>timeout</b></code> -
- seconds to wait for a pending read/write operation before
- raising <code>socket.timeout</code>, or <code>None</code> for no
- timeout.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=float)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="shutdown"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">shutdown</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>how</span>)</span>
- </h3>
- Shut down one or both halves of the connection. If <code>how</code>
- is 0, further receives are disallowed. If <code>how</code> is 1,
- further sends are disallowed. If <code>how</code> is 2, further sends
- and receives are disallowed. This closes the stream in one or both
- directions.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>how</b></code> -
- 0 (stop receiving), 1 (stop sending), or 2 (stop receiving and
- sending).
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="shutdown_read"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">shutdown_read</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Shutdown the receiving side of this socket, closing the stream in
- the incoming direction. After this call, future reads on this channel
- will fail instantly. This is a convenience method, equivalent to
- <code>shutdown(0)</code>, for people who don't make it a habit to
- memorize unix constants from the 1970s.
- <dl><dt></dt><dd>
-<p><b>Since:</b> 1.2
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="shutdown_write"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">shutdown_write</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Shutdown the sending side of this socket, closing the stream in the
- outgoing direction. After this call, future writes on this channel will
- fail instantly. This is a convenience method, equivalent to
- <code>shutdown(1)</code>, for people who don't make it a habit to
- memorize unix constants from the 1970s.
- <dl><dt></dt><dd>
-<p><b>Since:</b> 1.2
-</p>
-
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF CLASS VARIABLE DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Class Variable Details</th></tr>
-</table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="MIN_PACKET_SIZE"></a>
-<h3>MIN_PACKET_SIZE</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="1024"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-1024&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/public/paramiko.DSSKey-class.html b/docs/public/paramiko.DSSKey-class.html
deleted file mode 100644
index f36e784..0000000
--- a/docs/public/paramiko.DSSKey-class.html
+++ /dev/null
@@ -1,423 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.DSSKey</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Class&nbsp;DSSKey
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<a href="../private/paramiko.DSSKey-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.DSSKey-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type DSSKey</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
- <a href="../private/paramiko.PKey-class.html"><code>PKey</code></a> --+
- |
- <b>DSSKey</b>
-</pre><br />
-
-<hr/>
-
-Representation of a DSS key which can be used to sign an verify SSH2
-data.
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.DSSKey-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>msg</span>,
- <span class=summary-sig-arg>data</span>)</span></code>
-<br />
-Create a new instance of this public key type.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__hash__"></a><span class="summary-sig"><span class="summary-sig-name">__hash__</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.DSSKey-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return a string of an SSH <a href="paramiko.Message-class.html"
-class="link"><code>Message</code></a> made up of the public part(s) of
-this key.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> bool
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.DSSKey-class.html#can_sign" class="summary-sig-name"><code>can_sign</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return <code>True</code> if this key has the private part necessary
-for signing data.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> <a href="paramiko.DSSKey-class.html"
- class="link"><code>DSSKey</code></a>
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.DSSKey-class.html#generate" class="summary-sig-name"><code>generate</code></a>(<span class=summary-sig-arg>bits</span>,
- <span class=summary-sig-arg>progress_func</span>)</span></code>
-<br />
-Generate a new private DSS key. <i>(Static method)</i>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> int
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.DSSKey-class.html#get_bits" class="summary-sig-name"><code>get_bits</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return the number of significant bits in this key.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.DSSKey-class.html#get_name" class="summary-sig-name"><code>get_name</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return the name of this private key implementation.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="sign_ssh_data"></a><span class="summary-sig"><span class="summary-sig-name">sign_ssh_data</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>rpool</span>,
- <span class=summary-sig-arg>data</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> boolean
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.DSSKey-class.html#verify_ssh_sig" class="summary-sig-name"><code>verify_ssh_sig</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>data</span>,
- <span class=summary-sig-arg>msg</span>)</span></code>
-<br />
-Given a blob of data, and an SSH message representing a signature of
-that data, verify that it was signed with this key.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.DSSKey-class.html#write_private_key_file" class="summary-sig-name"><code>write_private_key_file</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>filename</span>,
- <span class=summary-sig-arg>password</span>)</span></code>
-<br />
-Write private key contents into a file.</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__repr__() &lt;==&gt; repr(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-</table><br />
-
-
-<!-- =========== START OF INSTANCE METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Instance Method Details</th></tr>
-</table>
-
-<a name="__init__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__init__</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>msg</span>=<span class=sig-default>None</span>,
- <span class=sig-arg>data</span>=<span class=sig-default>None</span>,
- <span class=sig-arg>filename</span>=<span class=sig-default>None</span>,
- <span class=sig-arg>password</span>=<span class=sig-default>None</span>,
- <span class=sig-arg>vals</span>=<span class=sig-default>None</span>)</span>
- <br /><i>(Constructor)</i>
- </h3>
- Create a new instance of this public key type. If <code>msg</code>
- is given, the key's public part(s) will be filled in from the message.
- If <code>data</code> is given, the key's public part(s) will be filled
- in from the string.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>msg</b></code> -
- an optional SSH <a href="paramiko.Message-class.html"
- class="link"><code>Message</code></a> containing a public key of
- this type.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.Message-class.html"
- class="link"><code>Message</code></a>)</i>
- <dd><code><b>data</b></code> -
- an optional string containing a public key of this type
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>SSHException</b></code> -
- if a key cannot be created from the <code>data</code> or
- <code>msg</code> given, or no key was passed in.
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="../private/paramiko.PKey-class.html#__init__"><code>paramiko.PKey.__init__</code></a> <i>(inherited documentation)</i>
-</dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="__str__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__str__</span>(<span class=sig-arg>self</span>)</span>
- <br /><i>(Informal representation operator)</i>
- </h3>
- Return a string of an SSH <a href="paramiko.Message-class.html"
- class="link"><code>Message</code></a> made up of the public part(s) of
- this key. This string is suitable for passing to <a
- href="../private/paramiko.PKey-class.html#__init__"
- class="link"><code>__init__</code></a> to re-create the key object
- later.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- string representation of an SSH key message.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="../private/paramiko.PKey-class.html#__str__"><code>paramiko.PKey.__str__</code></a> <i>(inherited documentation)</i>
-</dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="can_sign"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">can_sign</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Return <code>True</code> if this key has the private part necessary
- for signing data.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- <code>True</code> if this is a private key.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=bool)</i>
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="../private/paramiko.PKey-class.html#can_sign"><code>paramiko.PKey.can_sign</code></a> <i>(inherited documentation)</i>
-</dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="get_bits"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_bits</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Return the number of significant bits in this key. This is useful
- for judging the relative security of a key.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- bits in the key.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="../private/paramiko.PKey-class.html#get_bits"><code>paramiko.PKey.get_bits</code></a> <i>(inherited documentation)</i>
-</dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="get_name"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_name</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Return the name of this private key implementation.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- name of this private key type, in SSH terminology (for
- example, <code>&quot;ssh-rsa&quot;</code>).
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="../private/paramiko.PKey-class.html#get_name"><code>paramiko.PKey.get_name</code></a> <i>(inherited documentation)</i>
-</dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="verify_ssh_sig"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">verify_ssh_sig</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>data</span>,
- <span class=sig-arg>msg</span>)</span>
- </h3>
- Given a blob of data, and an SSH message representing a signature of
- that data, verify that it was signed with this key.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>data</b></code> -
- the data that was signed.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>msg</b></code> -
- an SSH signature message
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.Message-class.html"
- class="link"><code>Message</code></a>)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- <code>True</code> if the signature verifies correctly;
- <code>False</code> otherwise.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=boolean)</i>
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="../private/paramiko.PKey-class.html#verify_ssh_sig"><code>paramiko.PKey.verify_ssh_sig</code></a> <i>(inherited documentation)</i>
-</dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="write_private_key_file"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">write_private_key_file</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>filename</span>,
- <span class=sig-arg>password</span>=<span class=sig-default>None</span>)</span>
- </h3>
- Write private key contents into a file. If the password is not
- <code>None</code>, the key is encrypted before writing.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>filename</b></code> -
- name of the file to write.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>password</b></code> -
- an optional password to use to encrypt the key file.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>IOError</b></code> -
- if there was an error writing the file.
- <dd><code><b>SSHException</b></code> -
- if the key is invalid.
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="../private/paramiko.PKey-class.html#write_private_key_file"><code>paramiko.PKey.write_private_key_file</code></a> <i>(inherited documentation)</i>
-</dd>
- </dl>
-<p><b>Since:</b> fearow
-</p>
-
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF STATIC METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Static Method Details</th></tr>
-</table>
-
-<a name="generate"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">generate</span>(<span class=sig-arg>bits</span>=<span class=sig-default>1024</span>,
- <span class=sig-arg>progress_func</span>=<span class=sig-default>None</span>)</span>
- </h3>
- Generate a new private DSS key. This factory function can be used to
- generate a new host key or authentication key.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>bits</b></code> -
- number of bits the generated key should be.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- <dd><code><b>progress_func</b></code> -
- an optional function to call at key points in key generation
- (used by <code>pyCrypto.PublicKey</code>).
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=function)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- new private key
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.DSSKey-class.html"
- class="link"><code>DSSKey</code></a>)</i>
- </dd>
- </dl>
-<p><b>Since:</b> fearow
-</p>
-
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:48 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/public/paramiko.Message-class.html b/docs/public/paramiko.Message-class.html
deleted file mode 100644
index 7f097f8..0000000
--- a/docs/public/paramiko.Message-class.html
+++ /dev/null
@@ -1,650 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.Message</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Class&nbsp;Message
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<a href="../private/paramiko.Message-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.Message-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type Message</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
- <b>Message</b>
-</pre><br />
-
-<hr/>
-
-<p>An SSH2 <i>Message</i> is a stream of bytes that encodes some
-combination of strings, integers, bools, and infinite-precision integers
-(known in python as <i>long</i>s). This class builds or breaks down such
-a byte stream.</p>
-Normally you don't need to deal with anything this low-level, but it's
-exposed for people implementing custom extensions, or features that
-paramiko doesn't support yet.
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Message-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>content</span>)</span></code>
-<br />
-Create a new SSH2 Message.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> string
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Message-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Returns a string representation of this object, for debugging.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> string
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Message-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return the byte stream content of this Message, as a string.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Message-class.html#add" class="summary-sig-name"><code>add</code></a>(<span class=summary-sig-arg>self</span>,
- <span class="summary-sig-vararg">*seq</span>)</span></code>
-<br />
-Add a sequence of items to the stream.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Message-class.html#add_boolean" class="summary-sig-name"><code>add_boolean</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>b</span>)</span></code>
-<br />
-Add a boolean value to the stream.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Message-class.html#add_byte" class="summary-sig-name"><code>add_byte</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>b</span>)</span></code>
-<br />
-Write a single byte to the stream, without any formatting.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Message-class.html#add_bytes" class="summary-sig-name"><code>add_bytes</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>b</span>)</span></code>
-<br />
-Write bytes to the stream, without any formatting.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Message-class.html#add_int" class="summary-sig-name"><code>add_int</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>n</span>)</span></code>
-<br />
-Add an integer to the stream.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Message-class.html#add_int64" class="summary-sig-name"><code>add_int64</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>n</span>)</span></code>
-<br />
-Add a 64-bit int to the stream.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Message-class.html#add_list" class="summary-sig-name"><code>add_list</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>l</span>)</span></code>
-<br />
-Add a list of strings to the stream.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Message-class.html#add_mpint" class="summary-sig-name"><code>add_mpint</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>z</span>)</span></code>
-<br />
-Add a long int to the stream, encoded as an infinite-precision
-integer.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Message-class.html#add_string" class="summary-sig-name"><code>add_string</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>s</span>)</span></code>
-<br />
-Add a string to the stream.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> bool
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Message-class.html#get_boolean" class="summary-sig-name"><code>get_boolean</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Fetch a boolean from the stream.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> string
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Message-class.html#get_byte" class="summary-sig-name"><code>get_byte</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return the next byte of the Message, without decomposing it.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> string
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Message-class.html#get_bytes" class="summary-sig-name"><code>get_bytes</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>n</span>)</span></code>
-<br />
-Return the next <code>n</code> bytes of the Message, without
-decomposing into an int, string, etc.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> int
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Message-class.html#get_int" class="summary-sig-name"><code>get_int</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Fetch an int from the stream.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> long
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Message-class.html#get_int64" class="summary-sig-name"><code>get_int64</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Fetch a 64-bit int from the stream.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> list of strings
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Message-class.html#get_list" class="summary-sig-name"><code>get_list</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Fetch a list of strings from the stream.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> long
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Message-class.html#get_mpint" class="summary-sig-name"><code>get_mpint</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Fetch a long int (mpint) from the stream.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> string
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Message-class.html#get_remainder" class="summary-sig-name"><code>get_remainder</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return the bytes of this Message that haven't already been parsed and
-returned.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> string
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Message-class.html#get_so_far" class="summary-sig-name"><code>get_so_far</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Returns the bytes of this Message that have been parsed and
-returned.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> string
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Message-class.html#get_string" class="summary-sig-name"><code>get_string</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Fetch a string from the stream.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Message-class.html#rewind" class="summary-sig-name"><code>rewind</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Rewind the message to the beginning as if no items had been parsed out
-of it yet.</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-</table><br />
-
-
-<!-- =========== START OF METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Method Details</th></tr>
-</table>
-
-<a name="__init__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__init__</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>content</span>=<span class=sig-default>None</span>)</span>
- <br /><i>(Constructor)</i>
- </h3>
- Create a new SSH2 Message.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>content</b></code> -
- the byte stream to use as the Message content (passed in only
- when decomposing a Message).
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="__builtin__.object-class.html#__init__"><code>__builtin__.object.__init__</code></a></dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="__repr__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__repr__</span>(<span class=sig-arg>self</span>)</span>
- <br /><i>(Representation operator)</i>
- </h3>
- Returns a string representation of this object, for debugging.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- string
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="__builtin__.object-class.html#__repr__"><code>__builtin__.object.__repr__</code></a></dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="__str__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__str__</span>(<span class=sig-arg>self</span>)</span>
- <br /><i>(Informal representation operator)</i>
- </h3>
- Return the byte stream content of this Message, as a string.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- the contents of this Message.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="__builtin__.object-class.html#__str__"><code>__builtin__.object.__str__</code></a></dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="add"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">add</span>(<span class=sig-arg>self</span>,
- <span class="sig-vararg">*seq</span>)</span>
- </h3>
- Add a sequence of items to the stream. The values are encoded based
- on their type: str, int, bool, list, or long.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>seq</b></code> -
- the sequence of items
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=sequence)</i>
- </dd>
- </dl>
-<p><b>Bug:</b> longs are encoded non-deterministically. Don't use this method.
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="add_boolean"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">add_boolean</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>b</span>)</span>
- </h3>
- Add a boolean value to the stream.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>b</b></code> -
- boolean value to add
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=bool)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="add_byte"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">add_byte</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>b</span>)</span>
- </h3>
- Write a single byte to the stream, without any formatting.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>b</b></code> -
- byte to add
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="add_bytes"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">add_bytes</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>b</span>)</span>
- </h3>
- Write bytes to the stream, without any formatting.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>b</b></code> -
- bytes to add
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="add_int"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">add_int</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>n</span>)</span>
- </h3>
- Add an integer to the stream.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>n</b></code> -
- integer to add
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="add_int64"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">add_int64</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>n</span>)</span>
- </h3>
- Add a 64-bit int to the stream.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>n</b></code> -
- long int to add
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=long)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="add_list"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">add_list</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>l</span>)</span>
- </h3>
- Add a list of strings to the stream. They are encoded identically to
- a single string of values separated by commas. (Yes, really, that's how
- SSH2 does it.)
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>l</b></code> -
- list of strings to add
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=list(str))</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="add_mpint"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">add_mpint</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>z</span>)</span>
- </h3>
- Add a long int to the stream, encoded as an infinite-precision
- integer. This method only works on positive numbers.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>z</b></code> -
- long int to add
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=long)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="add_string"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">add_string</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>s</span>)</span>
- </h3>
- Add a string to the stream.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>s</b></code> -
- string to add
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="get_boolean"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_boolean</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Fetch a boolean from the stream.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- <code>True</code> or <code>False</code> (from the
- Message).
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=bool)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="get_byte"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_byte</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Return the next byte of the Message, without decomposing it. This is
- equivalent to <a href="paramiko.Message-class.html#get_bytes"
- class="link"><code>get_bytes(1)</code></a>.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- the next byte of the Message, or <code>'
- aren't any bytes remaining.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="get_bytes"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_bytes</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>n</span>)</span>
- </h3>
- Return the next <code>n</code> bytes of the Message, without
- decomposing into an int, string, etc. Just the raw bytes are
- returned.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- a string of the next <code>n</code> bytes of the Message, or a
- string of <code>n</code> zero bytes, if there aren't
- <code>n</code> bytes remaining.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="get_int"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_int</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Fetch an int from the stream.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- a 32-bit unsigned integer.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="get_int64"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_int64</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Fetch a 64-bit int from the stream.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- a 64-bit unsigned integer.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=long)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="get_list"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_list</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Fetch a list of strings from the stream. These are trivially encoded
- as comma-separated values in a string.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- a list of strings.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=list of strings)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="get_mpint"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_mpint</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Fetch a long int (mpint) from the stream.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- an arbitrary-length integer.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=long)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="get_remainder"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_remainder</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Return the bytes of this Message that haven't already been parsed
- and returned.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- a string of the bytes not parsed yet.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="get_so_far"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_so_far</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Returns the bytes of this Message that have been parsed and
- returned. The string passed into a Message's constructor can be
- regenerated by concatenating <code>get_so_far</code> and <a
- href="paramiko.Message-class.html#get_remainder"
- class="link"><code>get_remainder</code></a>.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- a string of the bytes parsed so far.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="get_string"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_string</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Fetch a string from the stream. This could be a byte string and may
- contain unprintable characters. (It's not unheard of for a string to
- contain another byte-stream Message.)
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- a string.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="rewind"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">rewind</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Rewind the message to the beginning as if no items had been parsed
- out of it yet.
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:46 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/public/paramiko.PasswordRequiredException-class.html b/docs/public/paramiko.PasswordRequiredException-class.html
deleted file mode 100644
index 3d05e9c..0000000
--- a/docs/public/paramiko.PasswordRequiredException-class.html
+++ /dev/null
@@ -1,91 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.PasswordRequiredException</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Class&nbsp;PasswordRequiredException
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<a href="../private/paramiko.PasswordRequiredException-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.PasswordRequiredException-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Class PasswordRequiredException</h2>
-
-<pre class="base-tree">
-<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+
- |
- <a href="paramiko.SSHException-class.html"><code>SSHException</code></a> --+
- |
- <b>PasswordRequiredException</b>
-</pre><br />
-
-<hr/>
-
-Exception raised when a password is needed to unlock a private key
-file.
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-</td></tr>
-</table><br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:48 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/public/paramiko.RSAKey-class.html b/docs/public/paramiko.RSAKey-class.html
deleted file mode 100644
index 168a684..0000000
--- a/docs/public/paramiko.RSAKey-class.html
+++ /dev/null
@@ -1,423 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.RSAKey</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Class&nbsp;RSAKey
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<a href="../private/paramiko.RSAKey-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.RSAKey-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type RSAKey</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
- <a href="../private/paramiko.PKey-class.html"><code>PKey</code></a> --+
- |
- <b>RSAKey</b>
-</pre><br />
-
-<hr/>
-
-Representation of an RSA key which can be used to sign and verify SSH2
-data.
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.RSAKey-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>msg</span>,
- <span class=summary-sig-arg>data</span>)</span></code>
-<br />
-Create a new instance of this public key type.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__hash__"></a><span class="summary-sig"><span class="summary-sig-name">__hash__</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.RSAKey-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return a string of an SSH <a href="paramiko.Message-class.html"
-class="link"><code>Message</code></a> made up of the public part(s) of
-this key.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> bool
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.RSAKey-class.html#can_sign" class="summary-sig-name"><code>can_sign</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return <code>True</code> if this key has the private part necessary
-for signing data.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> <a href="paramiko.RSAKey-class.html"
- class="link"><code>RSAKey</code></a>
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.RSAKey-class.html#generate" class="summary-sig-name"><code>generate</code></a>(<span class=summary-sig-arg>bits</span>,
- <span class=summary-sig-arg>progress_func</span>)</span></code>
-<br />
-Generate a new private RSA key. <i>(Static method)</i>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> int
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.RSAKey-class.html#get_bits" class="summary-sig-name"><code>get_bits</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return the number of significant bits in this key.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.RSAKey-class.html#get_name" class="summary-sig-name"><code>get_name</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return the name of this private key implementation.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="sign_ssh_data"></a><span class="summary-sig"><span class="summary-sig-name">sign_ssh_data</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>rpool</span>,
- <span class=summary-sig-arg>data</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> boolean
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.RSAKey-class.html#verify_ssh_sig" class="summary-sig-name"><code>verify_ssh_sig</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>data</span>,
- <span class=summary-sig-arg>msg</span>)</span></code>
-<br />
-Given a blob of data, and an SSH message representing a signature of
-that data, verify that it was signed with this key.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.RSAKey-class.html#write_private_key_file" class="summary-sig-name"><code>write_private_key_file</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>filename</span>,
- <span class=summary-sig-arg>password</span>)</span></code>
-<br />
-Write private key contents into a file.</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__repr__() &lt;==&gt; repr(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-</table><br />
-
-
-<!-- =========== START OF INSTANCE METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Instance Method Details</th></tr>
-</table>
-
-<a name="__init__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__init__</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>msg</span>=<span class=sig-default>None</span>,
- <span class=sig-arg>data</span>=<span class=sig-default>None</span>,
- <span class=sig-arg>filename</span>=<span class=sig-default>None</span>,
- <span class=sig-arg>password</span>=<span class=sig-default>None</span>,
- <span class=sig-arg>vals</span>=<span class=sig-default>None</span>)</span>
- <br /><i>(Constructor)</i>
- </h3>
- Create a new instance of this public key type. If <code>msg</code>
- is given, the key's public part(s) will be filled in from the message.
- If <code>data</code> is given, the key's public part(s) will be filled
- in from the string.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>msg</b></code> -
- an optional SSH <a href="paramiko.Message-class.html"
- class="link"><code>Message</code></a> containing a public key of
- this type.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.Message-class.html"
- class="link"><code>Message</code></a>)</i>
- <dd><code><b>data</b></code> -
- an optional string containing a public key of this type
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>SSHException</b></code> -
- if a key cannot be created from the <code>data</code> or
- <code>msg</code> given, or no key was passed in.
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="../private/paramiko.PKey-class.html#__init__"><code>paramiko.PKey.__init__</code></a> <i>(inherited documentation)</i>
-</dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="__str__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__str__</span>(<span class=sig-arg>self</span>)</span>
- <br /><i>(Informal representation operator)</i>
- </h3>
- Return a string of an SSH <a href="paramiko.Message-class.html"
- class="link"><code>Message</code></a> made up of the public part(s) of
- this key. This string is suitable for passing to <a
- href="../private/paramiko.PKey-class.html#__init__"
- class="link"><code>__init__</code></a> to re-create the key object
- later.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- string representation of an SSH key message.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="../private/paramiko.PKey-class.html#__str__"><code>paramiko.PKey.__str__</code></a> <i>(inherited documentation)</i>
-</dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="can_sign"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">can_sign</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Return <code>True</code> if this key has the private part necessary
- for signing data.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- <code>True</code> if this is a private key.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=bool)</i>
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="../private/paramiko.PKey-class.html#can_sign"><code>paramiko.PKey.can_sign</code></a> <i>(inherited documentation)</i>
-</dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="get_bits"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_bits</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Return the number of significant bits in this key. This is useful
- for judging the relative security of a key.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- bits in the key.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="../private/paramiko.PKey-class.html#get_bits"><code>paramiko.PKey.get_bits</code></a> <i>(inherited documentation)</i>
-</dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="get_name"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_name</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Return the name of this private key implementation.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- name of this private key type, in SSH terminology (for
- example, <code>&quot;ssh-rsa&quot;</code>).
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="../private/paramiko.PKey-class.html#get_name"><code>paramiko.PKey.get_name</code></a> <i>(inherited documentation)</i>
-</dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="verify_ssh_sig"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">verify_ssh_sig</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>data</span>,
- <span class=sig-arg>msg</span>)</span>
- </h3>
- Given a blob of data, and an SSH message representing a signature of
- that data, verify that it was signed with this key.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>data</b></code> -
- the data that was signed.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>msg</b></code> -
- an SSH signature message
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.Message-class.html"
- class="link"><code>Message</code></a>)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- <code>True</code> if the signature verifies correctly;
- <code>False</code> otherwise.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=boolean)</i>
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="../private/paramiko.PKey-class.html#verify_ssh_sig"><code>paramiko.PKey.verify_ssh_sig</code></a> <i>(inherited documentation)</i>
-</dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="write_private_key_file"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">write_private_key_file</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>filename</span>,
- <span class=sig-arg>password</span>=<span class=sig-default>None</span>)</span>
- </h3>
- Write private key contents into a file. If the password is not
- <code>None</code>, the key is encrypted before writing.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>filename</b></code> -
- name of the file to write.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>password</b></code> -
- an optional password to use to encrypt the key file.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>IOError</b></code> -
- if there was an error writing the file.
- <dd><code><b>SSHException</b></code> -
- if the key is invalid.
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="../private/paramiko.PKey-class.html#write_private_key_file"><code>paramiko.PKey.write_private_key_file</code></a> <i>(inherited documentation)</i>
-</dd>
- </dl>
-<p><b>Since:</b> fearow
-</p>
-
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF STATIC METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Static Method Details</th></tr>
-</table>
-
-<a name="generate"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">generate</span>(<span class=sig-arg>bits</span>,
- <span class=sig-arg>progress_func</span>=<span class=sig-default>None</span>)</span>
- </h3>
- Generate a new private RSA key. This factory function can be used to
- generate a new host key or authentication key.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>bits</b></code> -
- number of bits the generated key should be.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- <dd><code><b>progress_func</b></code> -
- an optional function to call at key points in key generation
- (used by <code>pyCrypto.PublicKey</code>).
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=function)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- new private key
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.RSAKey-class.html"
- class="link"><code>RSAKey</code></a>)</i>
- </dd>
- </dl>
-<p><b>Since:</b> fearow
-</p>
-
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/public/paramiko.SFTP-class.html b/docs/public/paramiko.SFTP-class.html
deleted file mode 100644
index 72ebc70..0000000
--- a/docs/public/paramiko.SFTP-class.html
+++ /dev/null
@@ -1,287 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.SFTP</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Class&nbsp;SFTP
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<a href="../private/paramiko.SFTP-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.SFTP-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type SFTP</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
- <a href="../private/paramiko.BaseSFTP-class.html"><code>BaseSFTP</code></a> --+
- |
- <a href="paramiko.SFTPClient-class.html"><code>SFTPClient</code></a> --+
- |
- <b>SFTP</b>
-</pre><br />
-
-<hr/>
-
-an alias for <a href="paramiko.SFTPClient-class.html"
-class="link"><code>SFTPClient</code></a> for backwards compatability
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from SFTPClient</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>sock</span>)</span></code>
-<br />
-Create an SFTP client from an existing <a
-href="paramiko.Channel-class.html"
-class="link"><code>Channel</code></a>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#__del__" class="summary-sig-name"><code>__del__</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#chdir" class="summary-sig-name"><code>chdir</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>)</span></code>
-<br />
-Change the &quot;current directory&quot; of this SFTP session.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#chmod" class="summary-sig-name"><code>chmod</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>,
- <span class=summary-sig-arg>mode</span>)</span></code>
-<br />
-Change the mode (permissions) of a file.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#chown" class="summary-sig-name"><code>chown</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>,
- <span class=summary-sig-arg>uid</span>,
- <span class=summary-sig-arg>gid</span>)</span></code>
-<br />
-Change the owner (<code>uid</code>) and group (<code>gid</code>) of a
-file.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#close" class="summary-sig-name"><code>close</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Close the SFTP session and its underlying channel.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> SFTPFile
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#file" class="summary-sig-name"><code>file</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>filename</span>,
- <span class=summary-sig-arg>mode</span>,
- <span class=summary-sig-arg>bufsize</span>)</span></code>
-<br />
-Open a file on the remote server.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> <a href="paramiko.SFTPClient-class.html"
- class="link"><code>SFTPClient</code></a>
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#from_transport" class="summary-sig-name"><code>from_transport</code></a>(<span class=summary-sig-arg>selfclass</span>,
- <span class=summary-sig-arg>t</span>)</span></code>
-<br />
-Create an SFTP client channel from an open <a
-href="paramiko.Transport-class.html"
-class="link"><code>Transport</code></a>. <i>(Class method)</i>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#get" class="summary-sig-name"><code>get</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>remotepath</span>,
- <span class=summary-sig-arg>localpath</span>)</span></code>
-<br />
-Copy a remote file (<code>remotepath</code>) from the SFTP server to
-the local host as <code>localpath</code>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#getcwd" class="summary-sig-name"><code>getcwd</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return the &quot;current working directory&quot; for this SFTP
-session, as emulated by paramiko.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> list of str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#listdir" class="summary-sig-name"><code>listdir</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>)</span></code>
-<br />
-Return a list containing the names of the entries in the given
-<code>path</code>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> list of <a href="paramiko.SFTPAttributes-class.html"
- class="link"><code>SFTPAttributes</code></a>
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#listdir_attr" class="summary-sig-name"><code>listdir_attr</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>)</span></code>
-<br />
-Return a list containing <a href="paramiko.SFTPAttributes-class.html"
-class="link"><code>SFTPAttributes</code></a> objects corresponding to
-files in the given <code>path</code>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> SFTPAttributes
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#lstat" class="summary-sig-name"><code>lstat</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>)</span></code>
-<br />
-Retrieve information about a file on the remote system, without
-following symbolic links (shortcuts).</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#mkdir" class="summary-sig-name"><code>mkdir</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>,
- <span class=summary-sig-arg>mode</span>)</span></code>
-<br />
-Create a folder (directory) named <code>path</code> with numeric mode
-<code>mode</code>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#normalize" class="summary-sig-name"><code>normalize</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>)</span></code>
-<br />
-Return the normalized path (on the server) of a given path.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> SFTPFile
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#file" class="summary-sig-name"><code>open</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>filename</span>,
- <span class=summary-sig-arg>mode</span>,
- <span class=summary-sig-arg>bufsize</span>)</span></code>
-<br />
-Open a file on the remote server.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#put" class="summary-sig-name"><code>put</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>localpath</span>,
- <span class=summary-sig-arg>remotepath</span>)</span></code>
-<br />
-Copy a local file (<code>localpath</code>) to the SFTP server as
-<code>remotepath</code>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#readlink" class="summary-sig-name"><code>readlink</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>)</span></code>
-<br />
-Return the target of a symbolic link (shortcut).</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#remove" class="summary-sig-name"><code>remove</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>)</span></code>
-<br />
-Remove the file at the given path.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#rename" class="summary-sig-name"><code>rename</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>oldpath</span>,
- <span class=summary-sig-arg>newpath</span>)</span></code>
-<br />
-Rename a file or folder from <code>oldpath</code> to
-<code>newpath</code>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#rmdir" class="summary-sig-name"><code>rmdir</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>)</span></code>
-<br />
-Remove the folder named <code>path</code>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> SFTPAttributes
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#stat" class="summary-sig-name"><code>stat</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>)</span></code>
-<br />
-Retrieve information about a file on the remote system.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#symlink" class="summary-sig-name"><code>symlink</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>source</span>,
- <span class=summary-sig-arg>dest</span>)</span></code>
-<br />
-Create a symbolic link (shortcut) of the <code>source</code> path at
-<code>destination</code>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#remove" class="summary-sig-name"><code>unlink</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>)</span></code>
-<br />
-Remove the file at the given path.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#utime" class="summary-sig-name"><code>utime</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>,
- <span class=summary-sig-arg>times</span>)</span></code>
-<br />
-Set the access and modified times of the file specified by
-<code>path</code>.</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__repr__() &lt;==&gt; repr(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__str__() &lt;==&gt; str(x)</td></tr>
-</table><br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/public/paramiko.SFTPAttributes-class.html b/docs/public/paramiko.SFTPAttributes-class.html
deleted file mode 100644
index c3cc57c..0000000
--- a/docs/public/paramiko.SFTPAttributes-class.html
+++ /dev/null
@@ -1,360 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.SFTPAttributes</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Class&nbsp;SFTPAttributes
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<a href="../private/paramiko.SFTPAttributes-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.SFTPAttributes-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type SFTPAttributes</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
- <b>SFTPAttributes</b>
-</pre><br />
-
-<hr/>
-
-Representation of the attributes of a file (or proxied file) for SFTP
-in client or server mode. It attemps to mirror the object returned by
-<code>os.stat</code> as closely as possible, so it may have the following
-fields, with the same meanings as those returned by an
-<code>os.stat</code> object:
-<ul>
- <li>
- st_size
- </li>
- <li>
- st_uid
- </li>
- <li>
- st_gid
- </li>
- <li>
- st_mode
- </li>
- <li>
- st_atime
- </li>
- <li>
- st_mtime
- </li>
-</ul>
-Because SFTP allows flags to have other arbitrary named attributes,
-these are stored in a dict named <code>attr</code>. Occasionally, the
-filename is also stored, in <code>filename</code>.
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPAttributes-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Create a new (empty) SFTPAttributes object.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__repr__"></a><span class="summary-sig"><span class="summary-sig-name">__repr__</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPAttributes-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-create a unix-style long description of the file (like ls -l)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> <a href="paramiko.SFTPAttributes-class.html"
- class="link"><code>SFTPAttributes</code></a>
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPAttributes-class.html#from_stat" class="summary-sig-name"><code>from_stat</code></a>(<span class=summary-sig-arg>cls</span>,
- <span class=summary-sig-arg>obj</span>,
- <span class=summary-sig-arg>filename</span>)</span></code>
-<br />
-Create an SFTPAttributes object from an existing <code>stat</code>
-object (an object returned by <code>os.stat</code>). <i>(Class method)</i>
-</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-</table><br />
-
-
-<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Class Variable Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.SFTPAttributes-class.html#FLAG_AMTIME"><code>FLAG_AMTIME</code></a></b> = <span title="8">8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>long</code></font></td>
-<td><b><a href="paramiko.SFTPAttributes-class.html#FLAG_EXTENDED"><code>FLAG_EXTENDED</code></a></b> = <span title="2147483648L"><code>2147483648L </code>
-</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.SFTPAttributes-class.html#FLAG_PERMISSIONS"><code>FLAG_PERMISSIONS</code></a></b> = <span title="4">4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.SFTPAttributes-class.html#FLAG_SIZE"><code>FLAG_SIZE</code></a></b> = <span title="1">1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.SFTPAttributes-class.html#FLAG_UIDGID"><code>FLAG_UIDGID</code></a></b> = <span title="2">2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-</table><br />
-
-
-<!-- =========== START OF INSTANCE METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Instance Method Details</th></tr>
-</table>
-
-<a name="__init__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__init__</span>(<span class=sig-arg>self</span>)</span>
- <br /><i>(Constructor)</i>
- </h3>
- Create a new (empty) SFTPAttributes object. All fields will be
- empty.
- <dl><dt></dt><dd>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="__builtin__.object-class.html#__init__"><code>__builtin__.object.__init__</code></a></dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="__str__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__str__</span>(<span class=sig-arg>self</span>)</span>
- <br /><i>(Informal representation operator)</i>
- </h3>
- create a unix-style long description of the file (like ls -l)
- <dl><dt></dt><dd>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="__builtin__.object-class.html#__str__"><code>__builtin__.object.__str__</code></a></dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF CLASS METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Class Method Details</th></tr>
-</table>
-
-<a name="from_stat"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">from_stat</span>(<span class=sig-arg>cls</span>,
- <span class=sig-arg>obj</span>,
- <span class=sig-arg>filename</span>=<span class=sig-default>None</span>)</span>
- </h3>
- Create an SFTPAttributes object from an existing <code>stat</code>
- object (an object returned by <code>os.stat</code>).
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>obj</b></code> -
- an object returned by <code>os.stat</code> (or
- equivalent).
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=object)</i>
- <dd><code><b>filename</b></code> -
- the filename associated with this file.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- new <a href="paramiko.SFTPAttributes-class.html"
- class="link"><code>SFTPAttributes</code></a> object with the same
- attribute fields.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.SFTPAttributes-class.html"
- class="link"><code>SFTPAttributes</code></a>)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF CLASS VARIABLE DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Class Variable Details</th></tr>
-</table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="FLAG_AMTIME"></a>
-<h3>FLAG_AMTIME</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="8"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="FLAG_EXTENDED"></a>
-<h3>FLAG_EXTENDED</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>long</code>
-
- </dd>
-<span title="2147483648L"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-2147483648L </pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="FLAG_PERMISSIONS"></a>
-<h3>FLAG_PERMISSIONS</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="4"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="FLAG_SIZE"></a>
-<h3>FLAG_SIZE</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="1"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="FLAG_UIDGID"></a>
-<h3>FLAG_UIDGID</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="2"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/public/paramiko.SFTPClient-class.html b/docs/public/paramiko.SFTPClient-class.html
deleted file mode 100644
index d691c5e..0000000
--- a/docs/public/paramiko.SFTPClient-class.html
+++ /dev/null
@@ -1,1009 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.SFTPClient</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Class&nbsp;SFTPClient
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<a href="../private/paramiko.SFTPClient-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.SFTPClient-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type SFTPClient</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
- <a href="../private/paramiko.BaseSFTP-class.html"><code>BaseSFTP</code></a> --+
- |
- <b>SFTPClient</b>
-</pre><br />
-
-<dl><dt><b>Known Subclasses:</b></dt>
-<dd>
- <a href="paramiko.SFTP-class.html"><code>SFTP</code></a></dd></dl>
-
-<hr/>
-
-SFTP client object. <code>SFTPClient</code> is used to open an sftp
-session across an open ssh <a href="paramiko.Transport-class.html"
-class="link"><code>Transport</code></a> and do remote file
-operations.
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>sock</span>)</span></code>
-<br />
-Create an SFTP client from an existing <a
-href="paramiko.Channel-class.html"
-class="link"><code>Channel</code></a>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__del__"></a><span class="summary-sig"><span class="summary-sig-name">__del__</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#chdir" class="summary-sig-name"><code>chdir</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>)</span></code>
-<br />
-Change the &quot;current directory&quot; of this SFTP session.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#chmod" class="summary-sig-name"><code>chmod</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>,
- <span class=summary-sig-arg>mode</span>)</span></code>
-<br />
-Change the mode (permissions) of a file.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#chown" class="summary-sig-name"><code>chown</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>,
- <span class=summary-sig-arg>uid</span>,
- <span class=summary-sig-arg>gid</span>)</span></code>
-<br />
-Change the owner (<code>uid</code>) and group (<code>gid</code>) of a
-file.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#close" class="summary-sig-name"><code>close</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Close the SFTP session and its underlying channel.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> SFTPFile
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#file" class="summary-sig-name"><code>file</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>filename</span>,
- <span class=summary-sig-arg>mode</span>,
- <span class=summary-sig-arg>bufsize</span>)</span></code>
-<br />
-Open a file on the remote server.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> <a href="paramiko.SFTPClient-class.html"
- class="link"><code>SFTPClient</code></a>
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#from_transport" class="summary-sig-name"><code>from_transport</code></a>(<span class=summary-sig-arg>selfclass</span>,
- <span class=summary-sig-arg>t</span>)</span></code>
-<br />
-Create an SFTP client channel from an open <a
-href="paramiko.Transport-class.html"
-class="link"><code>Transport</code></a>. <i>(Class method)</i>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#get" class="summary-sig-name"><code>get</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>remotepath</span>,
- <span class=summary-sig-arg>localpath</span>)</span></code>
-<br />
-Copy a remote file (<code>remotepath</code>) from the SFTP server to
-the local host as <code>localpath</code>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#getcwd" class="summary-sig-name"><code>getcwd</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return the &quot;current working directory&quot; for this SFTP
-session, as emulated by paramiko.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> list of str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#listdir" class="summary-sig-name"><code>listdir</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>)</span></code>
-<br />
-Return a list containing the names of the entries in the given
-<code>path</code>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> list of <a href="paramiko.SFTPAttributes-class.html"
- class="link"><code>SFTPAttributes</code></a>
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#listdir_attr" class="summary-sig-name"><code>listdir_attr</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>)</span></code>
-<br />
-Return a list containing <a href="paramiko.SFTPAttributes-class.html"
-class="link"><code>SFTPAttributes</code></a> objects corresponding to
-files in the given <code>path</code>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> SFTPAttributes
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#lstat" class="summary-sig-name"><code>lstat</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>)</span></code>
-<br />
-Retrieve information about a file on the remote system, without
-following symbolic links (shortcuts).</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#mkdir" class="summary-sig-name"><code>mkdir</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>,
- <span class=summary-sig-arg>mode</span>)</span></code>
-<br />
-Create a folder (directory) named <code>path</code> with numeric mode
-<code>mode</code>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#normalize" class="summary-sig-name"><code>normalize</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>)</span></code>
-<br />
-Return the normalized path (on the server) of a given path.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> SFTPFile
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#file" class="summary-sig-name"><code>open</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>filename</span>,
- <span class=summary-sig-arg>mode</span>,
- <span class=summary-sig-arg>bufsize</span>)</span></code>
-<br />
-Open a file on the remote server.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#put" class="summary-sig-name"><code>put</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>localpath</span>,
- <span class=summary-sig-arg>remotepath</span>)</span></code>
-<br />
-Copy a local file (<code>localpath</code>) to the SFTP server as
-<code>remotepath</code>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#readlink" class="summary-sig-name"><code>readlink</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>)</span></code>
-<br />
-Return the target of a symbolic link (shortcut).</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#remove" class="summary-sig-name"><code>remove</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>)</span></code>
-<br />
-Remove the file at the given path.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#rename" class="summary-sig-name"><code>rename</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>oldpath</span>,
- <span class=summary-sig-arg>newpath</span>)</span></code>
-<br />
-Rename a file or folder from <code>oldpath</code> to
-<code>newpath</code>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#rmdir" class="summary-sig-name"><code>rmdir</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>)</span></code>
-<br />
-Remove the folder named <code>path</code>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> SFTPAttributes
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#stat" class="summary-sig-name"><code>stat</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>)</span></code>
-<br />
-Retrieve information about a file on the remote system.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#symlink" class="summary-sig-name"><code>symlink</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>source</span>,
- <span class=summary-sig-arg>dest</span>)</span></code>
-<br />
-Create a symbolic link (shortcut) of the <code>source</code> path at
-<code>destination</code>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#remove" class="summary-sig-name"><code>unlink</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>)</span></code>
-<br />
-Remove the file at the given path.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPClient-class.html#utime" class="summary-sig-name"><code>utime</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>path</span>,
- <span class=summary-sig-arg>times</span>)</span></code>
-<br />
-Set the access and modified times of the file specified by
-<code>path</code>.</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__repr__() &lt;==&gt; repr(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__str__() &lt;==&gt; str(x)</td></tr>
-</table><br />
-
-
-<!-- =========== START OF INSTANCE METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Instance Method Details</th></tr>
-</table>
-
-<a name="__init__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__init__</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>sock</span>)</span>
- <br /><i>(Constructor)</i>
- </h3>
- <p>Create an SFTP client from an existing <a
- href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a>. The channel should already have
- requested the <code>&quot;sftp&quot;</code> subsystem.</p>
- An alternate way to create an SFTP client context is by using <a
- href="paramiko.SFTPClient-class.html#from_transport"
- class="link"><code>from_transport</code></a>.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>sock</b></code> -
- an open <a href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a> using the
- <code>&quot;sftp&quot;</code> subsystem.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a>)</i>
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="../private/paramiko.BaseSFTP-class.html#__init__"><code>paramiko.BaseSFTP.__init__</code></a></dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="chdir"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">chdir</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>path</span>)</span>
- </h3>
- Change the &quot;current directory&quot; 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.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>path</b></code> -
- new current working directory
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>IOError</b></code> -
- if the requested path doesn't exist on the server
- </dl>
-<p><b>Since:</b> 1.4
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="chmod"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">chmod</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>path</span>,
- <span class=sig-arg>mode</span>)</span>
- </h3>
- Change the mode (permissions) of a file. The permissions are
- unix-style and identical to those used by python's
- <code>os.chmod</code> function.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>path</b></code> -
- path of the file to change the permissions of.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- <dd><code><b>mode</b></code> -
- new permissions.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="chown"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">chown</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>path</span>,
- <span class=sig-arg>uid</span>,
- <span class=sig-arg>gid</span>)</span>
- </h3>
- Change the owner (<code>uid</code>) and group (<code>gid</code>) of
- a file. As with python's <code>os.chown</code> function, you must pass
- both arguments, so if you only want to change one, use <a
- href="paramiko.SFTPClient-class.html#stat"
- class="link"><code>stat</code></a> first to retrieve the current owner
- and group.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>path</b></code> -
- path of the file to change the owner and group of.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- <dd><code><b>uid</b></code> -
- new owner's uid
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- <dd><code><b>gid</b></code> -
- new group id
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="close"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">close</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Close the SFTP session and its underlying channel.
- <dl><dt></dt><dd>
-<p><b>Since:</b> 1.4
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="file"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">file</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>filename</span>,
- <span class=sig-arg>mode</span>=<span class=sig-default>'r'</span>,
- <span class=sig-arg>bufsize</span>=<span class=sig-default>-1</span>)</span>
- </h3>
- <p>Open a file on the remote server. The arguments are the same as for
- python's built-in <code>file</code> (aka <code>open</code>). A
- file-like object is returned, which closely mimics the behavior of a
- normal python file object.</p>
- <p>The mode indicates how the file is to be opened: <code>'r'</code>
- for reading, <code>'w'</code> for writing (truncating an existing
- file), <code>'a'</code> for appending, <code>'r+'</code> for
- reading/writing, <code>'w+'</code> for reading/writing (truncating an
- existing file), <code>'a+'</code> for reading/appending. The python
- <code>'b'</code> flag is ignored, since SSH treats all files as binary.
- The <code>'U'</code> flag is supported in a compatible way.</p>
- <p>Since 1.5.2, an <code>'x'</code> 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 <code>O_EXCL</code> flag in posix.</p>
- The file will be buffered in standard python style by default, but
- can be altered with the <code>bufsize</code> parameter. <code>0</code>
- turns off buffering, <code>1</code> uses line buffering, and any number
- greater than 1 (<code>&gt;1</code>) uses that specific buffer size.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>filename</b></code> -
- name of the file to open.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- <dd><code><b>mode</b></code> -
- mode (python-style) to open in.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- <dd><code><b>bufsize</b></code> -
- desired buffering (-1 = default buffer size)
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- a file object representing the open file.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=SFTPFile)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>IOError</b></code> -
- if the file could not be opened.
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="get"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>remotepath</span>,
- <span class=sig-arg>localpath</span>)</span>
- </h3>
- Copy a remote file (<code>remotepath</code>) from the SFTP server to
- the local host as <code>localpath</code>. Any exception raised by
- operations will be passed through. This method is primarily provided as
- a convenience.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>remotepath</b></code> -
- the remote file to copy
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>localpath</b></code> -
- the destination path on the local host
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
-<p><b>Since:</b> 1.4
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="getcwd"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">getcwd</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Return the &quot;current working directory&quot; for this SFTP
- session, as emulated by paramiko. If no directory has been set with <a
- href="paramiko.SFTPClient-class.html#chdir"
- class="link"><code>chdir</code></a>, this method will return
- <code>None</code>.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- the current working directory on the server, or
- <code>None</code>
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
-<p><b>Since:</b> 1.4
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="listdir"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">listdir</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>path</span>=<span class=sig-default>'.'</span>)</span>
- </h3>
- Return a list containing the names of the entries in the given
- <code>path</code>. The list is in arbitrary order. It does not include
- the special entries <code>'.'</code> and <code>'..'</code> even if they
- are present in the folder. This method is meant to mirror
- <code>os.listdir</code> as closely as possible. For a list of full <a
- href="paramiko.SFTPAttributes-class.html"
- class="link"><code>SFTPAttributes</code></a> objects, see <a
- href="paramiko.SFTPClient-class.html#listdir_attr"
- class="link"><code>listdir_attr</code></a>.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>path</b></code> -
- path to list (defaults to <code>'.'</code>)
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- list of filenames
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=list of str)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="listdir_attr"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">listdir_attr</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>path</span>=<span class=sig-default>'.'</span>)</span>
- </h3>
- Return a list containing <a
- href="paramiko.SFTPAttributes-class.html"
- class="link"><code>SFTPAttributes</code></a> objects corresponding to
- files in the given <code>path</code>. The list is in arbitrary order.
- It does not include the special entries <code>'.'</code> and
- <code>'..'</code> even if they are present in the folder.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>path</b></code> -
- path to list (defaults to <code>'.'</code>)
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- list of attributes
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=list of <a href="paramiko.SFTPAttributes-class.html"
- class="link"><code>SFTPAttributes</code></a>)</i>
- </dd>
- </dl>
-<p><b>Since:</b> 1.2
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="lstat"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">lstat</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>path</span>)</span>
- </h3>
- Retrieve information about a file on the remote system, without
- following symbolic links (shortcuts). This otherwise behaves exactly
- the same as <a href="paramiko.SFTPClient-class.html#stat"
- class="link"><code>stat</code></a>.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>path</b></code> -
- the filename to stat.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- an object containing attributes about the given file.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=SFTPAttributes)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="mkdir"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">mkdir</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>path</span>,
- <span class=sig-arg>mode</span>=<span class=sig-default>511</span>)</span>
- </h3>
- Create a folder (directory) named <code>path</code> with numeric
- mode <code>mode</code>. The default mode is 0777 (octal). On some
- systems, mode is ignored. Where it is used, the current umask value is
- first masked out.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>path</b></code> -
- name of the folder to create.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- <dd><code><b>mode</b></code> -
- permissions (posix-style) for the newly-created folder.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="normalize"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">normalize</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>path</span>)</span>
- </h3>
- Return the normalized path (on the server) of a given path. This can
- be used to quickly resolve symbolic links or determine what the server
- is considering to be the &quot;current folder&quot; (by passing
- <code>'.'</code> as <code>path</code>).
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>path</b></code> -
- path to be normalized.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- normalized form of the given path.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>IOError</b></code> -
- if the path can't be resolved on the server
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="file"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">open</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>filename</span>,
- <span class=sig-arg>mode</span>=<span class=sig-default>'r'</span>,
- <span class=sig-arg>bufsize</span>=<span class=sig-default>-1</span>)</span>
- </h3>
- <p>Open a file on the remote server. The arguments are the same as for
- python's built-in <code>file</code> (aka <code>open</code>). A
- file-like object is returned, which closely mimics the behavior of a
- normal python file object.</p>
- <p>The mode indicates how the file is to be opened: <code>'r'</code>
- for reading, <code>'w'</code> for writing (truncating an existing
- file), <code>'a'</code> for appending, <code>'r+'</code> for
- reading/writing, <code>'w+'</code> for reading/writing (truncating an
- existing file), <code>'a+'</code> for reading/appending. The python
- <code>'b'</code> flag is ignored, since SSH treats all files as binary.
- The <code>'U'</code> flag is supported in a compatible way.</p>
- <p>Since 1.5.2, an <code>'x'</code> 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 <code>O_EXCL</code> flag in posix.</p>
- The file will be buffered in standard python style by default, but
- can be altered with the <code>bufsize</code> parameter. <code>0</code>
- turns off buffering, <code>1</code> uses line buffering, and any number
- greater than 1 (<code>&gt;1</code>) uses that specific buffer size.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>filename</b></code> -
- name of the file to open.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- <dd><code><b>mode</b></code> -
- mode (python-style) to open in.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- <dd><code><b>bufsize</b></code> -
- desired buffering (-1 = default buffer size)
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- a file object representing the open file.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=SFTPFile)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>IOError</b></code> -
- if the file could not be opened.
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="put"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">put</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>localpath</span>,
- <span class=sig-arg>remotepath</span>)</span>
- </h3>
- <p>Copy a local file (<code>localpath</code>) to the SFTP server as
- <code>remotepath</code>. Any exception raised by operations will be
- passed through. This method is primarily provided as a convenience.</p>
- The SFTP operations use pipelining for speed.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>localpath</b></code> -
- the local file to copy
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>remotepath</b></code> -
- the destination path on the SFTP server
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
-<p><b>Since:</b> 1.4
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="readlink"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">readlink</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>path</span>)</span>
- </h3>
- Return the target of a symbolic link (shortcut). You can use <a
- href="paramiko.SFTPClient-class.html#symlink"
- class="link"><code>symlink</code></a> to create these. The result may
- be either an absolute or relative pathname.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>path</b></code> -
- path of the symbolic link file.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- target path.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="remove"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">remove</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>path</span>)</span>
- </h3>
- Remove the file at the given path.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>path</b></code> -
- path (absolute or relative) of the file to remove.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>IOError</b></code> -
- if the path refers to a folder (directory). Use <a
- href="paramiko.SFTPClient-class.html#rmdir"
- class="link"><code>rmdir</code></a> to remove a folder.
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="rename"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">rename</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>oldpath</span>,
- <span class=sig-arg>newpath</span>)</span>
- </h3>
- Rename a file or folder from <code>oldpath</code> to
- <code>newpath</code>.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>oldpath</b></code> -
- existing name of the file or folder.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- <dd><code><b>newpath</b></code> -
- new name for the file or folder.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>IOError</b></code> -
- if <code>newpath</code> is a folder, or something else goes
- wrong.
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="rmdir"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">rmdir</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>path</span>)</span>
- </h3>
- Remove the folder named <code>path</code>.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>path</b></code> -
- name of the folder to remove.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="stat"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">stat</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>path</span>)</span>
- </h3>
- <p>Retrieve information about a file on the remote system. The return
- value is an object whose attributes correspond to the attributes of
- python's <code>stat</code> structure as returned by
- <code>os.stat</code>, except that it contains fewer fields. An SFTP
- server may return as much or as little info as it wants, so the results
- may vary from server to server.</p>
- <p>Unlike a python <code>stat</code> object, the result may not be
- accessed as a tuple. This is mostly due to the author's slack
- factor.</p>
- The fields supported are: <code>st_mode</code>,
- <code>st_size</code>, <code>st_uid</code>, <code>st_gid</code>,
- <code>st_atime</code>, and <code>st_mtime</code>.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>path</b></code> -
- the filename to stat.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- an object containing attributes about the given file.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=SFTPAttributes)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="symlink"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">symlink</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>source</span>,
- <span class=sig-arg>dest</span>)</span>
- </h3>
- Create a symbolic link (shortcut) of the <code>source</code> path at
- <code>destination</code>.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>source</b></code> -
- path of the original file.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- <dd><code><b>dest</b></code> -
- path of the newly created symlink.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="remove"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">unlink</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>path</span>)</span>
- </h3>
- Remove the file at the given path.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>path</b></code> -
- path (absolute or relative) of the file to remove.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>IOError</b></code> -
- if the path refers to a folder (directory). Use <a
- href="paramiko.SFTPClient-class.html#rmdir"
- class="link"><code>rmdir</code></a> to remove a folder.
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="utime"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">utime</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>path</span>,
- <span class=sig-arg>times</span>)</span>
- </h3>
- Set the access and modified times of the file specified by
- <code>path</code>. If <code>times</code> is <code>None</code>, then the
- file's access and modified times are set to the current time.
- Otherwise, <code>times</code> must be a 2-tuple of numbers, of the form
- <code>(atime, mtime)</code>, which is used to set the access and
- modified times, respectively. This bizarre API is mimicked from python
- for the sake of consistency -- I apologize.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>path</b></code> -
- path of the file to modify.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- <dd><code><b>times</b></code> -
- <code>None</code> or a tuple of (access time, modified time)
- in standard internet epoch time (seconds since 01 January 1970
- GMT).
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=tuple of int)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF CLASS METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Class Method Details</th></tr>
-</table>
-
-<a name="from_transport"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">from_transport</span>(<span class=sig-arg>selfclass</span>,
- <span class=sig-arg>t</span>)</span>
- </h3>
- Create an SFTP client channel from an open <a
- href="paramiko.Transport-class.html"
- class="link"><code>Transport</code></a>.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>t</b></code> -
- an open <a href="paramiko.Transport-class.html"
- class="link"><code>Transport</code></a> which is already
- authenticated.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.Transport-class.html"
- class="link"><code>Transport</code></a>)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- a new <a href="paramiko.SFTPClient-class.html"
- class="link"><code>SFTPClient</code></a> object, referring to an
- sftp session (channel) across the transport.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.SFTPClient-class.html"
- class="link"><code>SFTPClient</code></a>)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/public/paramiko.SFTPError-class.html b/docs/public/paramiko.SFTPError-class.html
deleted file mode 100644
index ed3a76d..0000000
--- a/docs/public/paramiko.SFTPError-class.html
+++ /dev/null
@@ -1,85 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.SFTPError</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Class&nbsp;SFTPError
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<a href="../private/paramiko.SFTPError-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.SFTPError-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Class SFTPError</h2>
-
-<pre class="base-tree">
-<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+
- |
- <b>SFTPError</b>
-</pre><br />
-
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-</td></tr>
-</table><br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/public/paramiko.SFTPFile-class.html b/docs/public/paramiko.SFTPFile-class.html
deleted file mode 100644
index 6425f07..0000000
--- a/docs/public/paramiko.SFTPFile-class.html
+++ /dev/null
@@ -1,560 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.SFTPFile</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Class&nbsp;SFTPFile
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<a href="../private/paramiko.SFTPFile-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.SFTPFile-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type SFTPFile</h2>
-
-<pre class="base-tree">
- <a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
-<a href="paramiko.BufferedFile-class.html"><code>BufferedFile</code></a> --+
- |
- <b>SFTPFile</b>
-</pre><br />
-
-<hr/>
-
-Proxy object for a file on the remote server, in client mode SFTP.
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__init__"></a><span class="summary-sig"><span class="summary-sig-name">__init__</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>sftp</span>,
- <span class=summary-sig-arg>handle</span>,
- <span class=summary-sig-arg>mode</span>,
- <span class=summary-sig-arg>bufsize</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__del__"></a><span class="summary-sig"><span class="summary-sig-name">__del__</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPFile-class.html#check" class="summary-sig-name"><code>check</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>hash_algorithm</span>,
- <span class=summary-sig-arg>offset</span>,
- <span class=summary-sig-arg>length</span>,
- <span class=summary-sig-arg>block_size</span>)</span></code>
-<br />
-Ask the server for a hash of a section of this file.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPFile-class.html#close" class="summary-sig-name"><code>close</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Close the file.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> float
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPFile-class.html#gettimeout" class="summary-sig-name"><code>gettimeout</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Returns the timeout in seconds (as a float) associated with the socket
-or ssh <a href="paramiko.Channel-class.html"
-class="link"><code>Channel</code></a> used for this file.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPFile-class.html#prefetch" class="summary-sig-name"><code>prefetch</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Pre-fetch the remaining contents of this file in anticipation of
-future <a href="paramiko.BufferedFile-class.html#read"
-class="link"><code>read</code></a> calls.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPFile-class.html#seek" class="summary-sig-name"><code>seek</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>offset</span>,
- <span class=summary-sig-arg>whence</span>)</span></code>
-<br />
-Set the file's current position, like stdio's <code>fseek</code>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPFile-class.html#set_pipelined" class="summary-sig-name"><code>set_pipelined</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>pipelined</span>)</span></code>
-<br />
-Turn on/off the pipelining of write operations to this file.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPFile-class.html#setblocking" class="summary-sig-name"><code>setblocking</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>blocking</span>)</span></code>
-<br />
-Set blocking or non-blocking mode on the underiying socket or ssh <a
-href="paramiko.Channel-class.html"
-class="link"><code>Channel</code></a>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPFile-class.html#settimeout" class="summary-sig-name"><code>settimeout</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>timeout</span>)</span></code>
-<br />
-Set a timeout on read/write operations on the underlying socket or ssh
-<a href="paramiko.Channel-class.html"
-class="link"><code>Channel</code></a>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> SFTPAttributes
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPFile-class.html#stat" class="summary-sig-name"><code>stat</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Retrieve information about this file from the remote system.</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from BufferedFile</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> iterator
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#__iter__" class="summary-sig-name"><code>__iter__</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Returns an iterator that can be used to iterate over the lines in this
-file.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#flush" class="summary-sig-name"><code>flush</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Write out any data in the write buffer.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#next" class="summary-sig-name"><code>next</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Returns the next line from the input, or raises
-<code>StopIteration</code> when EOF is hit.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#read" class="summary-sig-name"><code>read</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>size</span>)</span></code>
-<br />
-Read at most <code>size</code> bytes from the file (less if we hit the
-end of the file first).</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#readline" class="summary-sig-name"><code>readline</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>size</span>)</span></code>
-<br />
-Read one entire line from the file.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> list
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#readlines" class="summary-sig-name"><code>readlines</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>sizehint</span>)</span></code>
-<br />
-Read all remaining lines using <a
-href="paramiko.BufferedFile-class.html#readline"
-class="link"><code>readline</code></a> and return them as a list.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> int
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#tell" class="summary-sig-name"><code>tell</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return the file's current position.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#write" class="summary-sig-name"><code>write</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>data</span>)</span></code>
-<br />
-Write data to the file.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#writelines" class="summary-sig-name"><code>writelines</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>sequence</span>)</span></code>
-<br />
-Write a sequence of strings to the file.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> iterator
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.BufferedFile-class.html#xreadlines" class="summary-sig-name"><code>xreadlines</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Identical to <code>iter(f)</code>.</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__repr__() &lt;==&gt; repr(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__str__() &lt;==&gt; str(x)</td></tr>
-</table><br />
-
-
-<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Class Variable Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.SFTPFile-class.html#MAX_REQUEST_SIZE"><code>MAX_REQUEST_SIZE</code></a></b> = <span title="32768">32768&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from BufferedFile</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.BufferedFile-class.html#SEEK_CUR"><code>SEEK_CUR</code></a></b> = <span title="1">1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.BufferedFile-class.html#SEEK_END"><code>SEEK_END</code></a></b> = <span title="2">2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.BufferedFile-class.html#SEEK_SET"><code>SEEK_SET</code></a></b> = <span title="0">0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-</table><br />
-
-
-<!-- =========== START OF METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Method Details</th></tr>
-</table>
-
-<a name="check"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">check</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>hash_algorithm</span>,
- <span class=sig-arg>offset</span>=<span class=sig-default>0</span>,
- <span class=sig-arg>length</span>=<span class=sig-default>0</span>,
- <span class=sig-arg>block_size</span>=<span class=sig-default>0</span>)</span>
- </h3>
- <p>Ask the server for a hash of a section of this file. This can be
- used to verify a successful upload or download, or for various
- rsync-like operations.</p>
- <p>The file is hashed from <code>offset</code>, for <code>length</code>
- bytes. If <code>length</code> is 0, the remainder of the file is
- hashed. Thus, if both <code>offset</code> and <code>length</code> are
- zero, the entire file is hashed.</p>
- <p>Normally, <code>block_size</code> will be 0 (the default), and this
- method will return a byte string representing the requested hash (for
- example, a string of length 16 for MD5, or 20 for SHA-1). If a non-zero
- <code>block_size</code> is given, each chunk of the file (from
- <code>offset</code> to <code>offset + length</code>) of
- <code>block_size</code> bytes is computed as a separate hash. The hash
- results are all concatenated and returned as a single string.</p>
- For example, <code>check('sha1', 0, 1024, 512)</code> will return a
- string of length 40. The first 20 bytes will be the SHA-1 of the first
- 512 bytes of the file, and the last 20 bytes will be the SHA-1 of the
- next 512 bytes.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>hash_algorithm</b></code> -
- the name of the hash algorithm to use (normally
- <code>&quot;sha1&quot;</code> or
- <code>&quot;md5&quot;</code>)
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>offset</b></code> -
- offset into the file to begin hashing (0 means to start from
- the beginning)
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int or long)</i>
- <dd><code><b>length</b></code> -
- number of bytes to hash (0 means continue to the end of the
- file)
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int or long)</i>
- <dd><code><b>block_size</b></code> -
- number of bytes to hash per result (must not be less than 256;
- 0 means to compute only one hash of the entire segment)
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- string of bytes representing the hash of each block,
- concatenated together
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>IOError</b></code> -
- if the server doesn't support the &quot;check-file&quot;
- extension, or possibly doesn't support the hash algorithm
- requested
- </dl>
-<p><b>Note:</b> Many (most?) servers don't support this extension yet.
-</p>
-
-<p><b>Since:</b> 1.4
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="close"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">close</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>_async</span>=<span class=sig-default>False</span>)</span>
- </h3>
- Close the file. Future read and write operations will fail.
- <dl><dt></dt><dd>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="paramiko.BufferedFile-class.html#close"><code>paramiko.BufferedFile.close</code></a> <i>(inherited documentation)</i>
-</dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="gettimeout"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">gettimeout</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Returns the timeout in seconds (as a float) associated with the
- socket or ssh <a href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a> used for this file.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- float
- </dd>
- </dl>
-<p><b>See Also:</b> <a href="paramiko.Channel-class.html#gettimeout"
-class="link"><code>Channel.gettimeout</code></a>
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="prefetch"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">prefetch</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Pre-fetch the remaining contents of this file in anticipation of
- future <a href="paramiko.BufferedFile-class.html#read"
- class="link"><code>read</code></a> calls. If reading the entire file,
- pre-fetching can dramatically improve the download speed by avoiding
- roundtrip latency. The file's contents are incrementally buffered in a
- background thread.
- <dl><dt></dt><dd>
-<p><b>Since:</b> 1.5.1
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="seek"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">seek</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>offset</span>,
- <span class=sig-arg>whence</span>=<span class=sig-default>0</span>)</span>
- </h3>
- Set the file's current position, like stdio's <code>fseek</code>.
- Not all file objects support seeking.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>offset</b></code> -
- position to move to within the file, relative to
- <code>whence</code>.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- <dd><code><b>whence</b></code> -
- type of movement: 0 = absolute; 1 = relative to the current
- position; 2 = relative to the end of the file.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>IOError</b></code> -
- if the file doesn't support random access.
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="paramiko.BufferedFile-class.html#seek"><code>paramiko.BufferedFile.seek</code></a> <i>(inherited documentation)</i>
-</dd>
- </dl>
-<p><b>Note:</b> If a file is opened in append mode (<code>'a'</code> or
-<code>'a+'</code>), any seek operations will be undone at the next write
-(as the file position will move back to the end of the file).
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="set_pipelined"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">set_pipelined</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>pipelined</span>=<span class=sig-default>True</span>)</span>
- </h3>
- <p>Turn on/off the pipelining of write operations to this file. When
- pipelining is on, paramiko won't wait for the server response after
- each write operation. Instead, they're collected as they come in. At
- the first non-write operation (including <a
- href="paramiko.SFTPFile-class.html#close"
- class="link"><code>close</code></a>), all remaining server responses
- are collected. This means that if there was an error with one of your
- later writes, an exception might be thrown from within <a
- href="paramiko.SFTPFile-class.html#close"
- class="link"><code>close</code></a> instead of <a
- href="paramiko.BufferedFile-class.html#write"
- class="link"><code>write</code></a>.</p>
- By default, files are <i>not</i> pipelined.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>pipelined</b></code> -
- <code>True</code> if pipelining should be turned on for this
- file; <code>False</code> otherwise
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=bool)</i>
- </dd>
- </dl>
-<p><b>Since:</b> 1.5
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="setblocking"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">setblocking</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>blocking</span>)</span>
- </h3>
- Set blocking or non-blocking mode on the underiying socket or ssh <a
- href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a>.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>blocking</b></code> -
- 0 to set non-blocking mode; non-0 to set blocking mode.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
-<p><b>See Also:</b> <a href="paramiko.Channel-class.html#setblocking"
-class="link"><code>Channel.setblocking</code></a>
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="settimeout"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">settimeout</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>timeout</span>)</span>
- </h3>
- Set a timeout on read/write operations on the underlying socket or
- ssh <a href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a>.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>timeout</b></code> -
- seconds to wait for a pending read/write operation before
- raising <code>socket.timeout</code>, or <code>None</code> for no
- timeout
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=float)</i>
- </dd>
- </dl>
-<p><b>See Also:</b> <a href="paramiko.Channel-class.html#settimeout"
-class="link"><code>Channel.settimeout</code></a>
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="stat"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">stat</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Retrieve information about this file from the remote system. This is
- exactly like <a href="paramiko.SFTP-class.html#stat"
- class="link"><code>SFTP.stat</code></a>, except that it operates on an
- already-open file.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- an object containing attributes about this file.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=SFTPAttributes)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF CLASS VARIABLE DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Class Variable Details</th></tr>
-</table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="MAX_REQUEST_SIZE"></a>
-<h3>MAX_REQUEST_SIZE</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="32768"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-32768&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/public/paramiko.SFTPHandle-class.html b/docs/public/paramiko.SFTPHandle-class.html
deleted file mode 100644
index 662ee6a..0000000
--- a/docs/public/paramiko.SFTPHandle-class.html
+++ /dev/null
@@ -1,325 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.SFTPHandle</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Class&nbsp;SFTPHandle
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<a href="../private/paramiko.SFTPHandle-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.SFTPHandle-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type SFTPHandle</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
- <b>SFTPHandle</b>
-</pre><br />
-
-<hr/>
-
-<p>Abstract object representing a handle to an open file (or folder) in
-an SFTP server implementation. Each handle has a string representation
-used by the client to refer to the underlying file.</p>
-Server implementations can (and should) subclass SFTPHandle to
-implement features of a file handle, like <a
-href="paramiko.SFTPHandle-class.html#stat"
-class="link"><code>stat</code></a> or <a
-href="paramiko.SFTPHandle-class.html#chattr"
-class="link"><code>chattr</code></a>.
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__init__"></a><span class="summary-sig"><span class="summary-sig-name">__init__</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> int
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPHandle-class.html#chattr" class="summary-sig-name"><code>chattr</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>attr</span>)</span></code>
-<br />
-Change the attributes of this file.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPHandle-class.html#close" class="summary-sig-name"><code>close</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-When a client closes a file, this method is called on the handle.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPHandle-class.html#read" class="summary-sig-name"><code>read</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>offset</span>,
- <span class=summary-sig-arg>length</span>)</span></code>
-<br />
-Read up to <code>length</code> bytes from this file, starting at
-position <code>offset</code>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> <a href="paramiko.SFTPAttributes-class.html"
- class="link"><code>SFTPAttributes</code></a> <i>or error
- code</i>
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPHandle-class.html#stat" class="summary-sig-name"><code>stat</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return an <a href="paramiko.SFTPAttributes-class.html"
-class="link"><code>SFTPAttributes</code></a> object referring to this
-open file, or an error code.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPHandle-class.html#write" class="summary-sig-name"><code>write</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>offset</span>,
- <span class=summary-sig-arg>data</span>)</span></code>
-<br />
-Write <code>data</code> into this file at position
-<code>offset</code>.</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__repr__() &lt;==&gt; repr(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__str__() &lt;==&gt; str(x)</td></tr>
-</table><br />
-
-
-<!-- =========== START OF METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Method Details</th></tr>
-</table>
-
-<a name="chattr"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">chattr</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>attr</span>)</span>
- </h3>
- Change the attributes of this file. The <code>attr</code> object
- will contain only those fields provided by the client in its request,
- so you should check for the presence of fields before using them.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>attr</b></code> -
- the attributes to change on this file.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.SFTPAttributes-class.html"
- class="link"><code>SFTPAttributes</code></a>)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- an error code like <a
- href="../private/paramiko-module.html#SFTP_OK"
- class="link"><code>SFTP_OK</code></a>.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="close"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">close</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- <p>When a client closes a file, this method is called on the handle.
- Normally you would use this method to close the underlying OS level
- file object(s).</p>
- The default implementation checks for attributes on
- <code>self</code> named <code>readfile</code> and/or
- <code>writefile</code>, and if either or both are present, their
- <code>close()</code> methods are called. This means that if you are
- using the default implementations of <a
- href="paramiko.SFTPHandle-class.html#read"
- class="link"><code>read</code></a> and <a
- href="paramiko.SFTPHandle-class.html#write"
- class="link"><code>write</code></a>, this method's default
- implementation should be fine also.
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-
-<a name="read"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">read</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>offset</span>,
- <span class=sig-arg>length</span>)</span>
- </h3>
- <p>Read up to <code>length</code> bytes from this file, starting at
- position <code>offset</code>. The offset may be a python long, since
- SFTP allows it to be 64 bits.</p>
- <p>If the end of the file has been reached, this method may return an
- empty string to signify EOF, or it may also return <a
- href="../private/paramiko-module.html#SFTP_EOF"
- class="link"><code>SFTP_EOF</code></a>.</p>
- The default implementation checks for an attribute on
- <code>self</code> named <code>readfile</code>, and if present, performs
- the read operation on the python file-like object found there. (This is
- meant as a time saver for the common case where you are wrapping a
- python file object.)
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>offset</b></code> -
- position in the file to start reading from.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int or long)</i>
- <dd><code><b>length</b></code> -
- number of bytes to attempt to read.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- data read from the file, or an SFTP error code.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="stat"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">stat</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Return an <a href="paramiko.SFTPAttributes-class.html"
- class="link"><code>SFTPAttributes</code></a> object referring to this
- open file, or an error code. This is equivalent to <a
- href="../private/paramiko.SFTPServerInterface-class.html#stat"
- class="link"><code>SFTPServerInterface.stat</code></a>, except it's
- called on an open file instead of a path.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- an attributes object for the given file, or an SFTP error code
- (like <a
- href="../private/paramiko-module.html#SFTP_PERMISSION_DENIED"
- class="link"><code>SFTP_PERMISSION_DENIED</code></a>).
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.SFTPAttributes-class.html"
- class="link"><code>SFTPAttributes</code></a> <i>or error
- code</i>)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="write"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">write</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>offset</span>,
- <span class=sig-arg>data</span>)</span>
- </h3>
- <p>Write <code>data</code> into this file at position
- <code>offset</code>. Extending the file past its original end is
- expected. Unlike python's normal <code>write()</code> methods, this
- method cannot do a partial write: it must write all of
- <code>data</code> or else return an error.</p>
- The default implementation checks for an attribute on
- <code>self</code> named <code>writefile</code>, and if present,
- performs the write operation on the python file-like object found
- there. The attribute is named differently from <code>readfile</code> to
- make it easy to implement read-only (or write-only) files, but if both
- attributes are present, they should refer to the same file.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>offset</b></code> -
- position in the file to start reading from.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int or long)</i>
- <dd><code><b>data</b></code> -
- data to write into the file.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- an SFTP error code like <a
- href="../private/paramiko-module.html#SFTP_OK"
- class="link"><code>SFTP_OK</code></a>.
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/public/paramiko.SFTPServer-class.html b/docs/public/paramiko.SFTPServer-class.html
deleted file mode 100644
index 4d4e827..0000000
--- a/docs/public/paramiko.SFTPServer-class.html
+++ /dev/null
@@ -1,403 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.SFTPServer</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Class&nbsp;SFTPServer
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<a href="../private/paramiko.SFTPServer-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.SFTPServer-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type SFTPServer</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
- <a href="../private/threading._Verbose-class.html"><code>_Verbose</code></a> --+
- |
- <a href="threading.Thread-class.html"><code>Thread</code></a> --+
- |
- <a href="paramiko.SubsystemHandler-class.html"><code>SubsystemHandler</code></a> --+
- |
- <a href="__builtin__.object-class.html"><code>object</code></a> --+ |
- | |
- <a href="../private/paramiko.BaseSFTP-class.html"><code>BaseSFTP</code></a> --+
- |
- <b>SFTPServer</b>
-</pre><br />
-
-<hr/>
-
-Server-side SFTP subsystem support. Since this is a <a
-href="paramiko.SubsystemHandler-class.html"
-class="link"><code>SubsystemHandler</code></a>, it can be (and is meant
-to be) set as the handler for <code>&quot;sftp&quot;</code> requests. Use
-<a href="paramiko.Transport-class.html#set_subsystem_handler"
-class="link"><code>Transport.set_subsystem_handler</code></a> to activate
-this class.
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPServer-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>channel</span>,
- <span class=summary-sig-arg>name</span>,
- <span class=summary-sig-arg>server</span>,
- <span class=summary-sig-arg>sftp_si</span>,
- <span class="summary-sig-vararg">*largs</span>,
- <span class="summary-sig-kwarg">**kwargs</span>)</span></code>
-<br />
-The constructor for SFTPServer is meant to be called from within the
-<a href="paramiko.Transport-class.html"
-class="link"><code>Transport</code></a> as a subsystem handler.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> int
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPServer-class.html#convert_errno" class="summary-sig-name"><code>convert_errno</code></a>(<span class=summary-sig-arg>e</span>)</span></code>
-<br />
-Convert an errno value (as from an <code>OSError</code> or
-<code>IOError</code>) into a standard SFTP result code. <i>(Static method)</i>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPServer-class.html#finish_subsystem" class="summary-sig-name"><code>finish_subsystem</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Perform any cleanup at the end of a subsystem.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPServer-class.html#set_file_attr" class="summary-sig-name"><code>set_file_attr</code></a>(<span class=summary-sig-arg>filename</span>,
- <span class=summary-sig-arg>attr</span>)</span></code>
-<br />
-Change a file's attributes on the local filesystem. <i>(Static method)</i>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SFTPServer-class.html#start_subsystem" class="summary-sig-name"><code>start_subsystem</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>name</span>,
- <span class=summary-sig-arg>transport</span>,
- <span class=summary-sig-arg>channel</span>)</span></code>
-<br />
-Process an ssh subsystem in server mode.</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from SubsystemHandler</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> <a href="../private/paramiko.ServerInterface-class.html"
- class="link"><code>ServerInterface</code></a>
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SubsystemHandler-class.html#get_server" class="summary-sig-name"><code>get_server</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return the <a href="../private/paramiko.ServerInterface-class.html"
-class="link"><code>ServerInterface</code></a> object associated with this
-channel and subsystem.</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Thread</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="threading.Thread-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="threading.Thread-class.html#getName" class="summary-sig-name"><code>getName</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="threading.Thread-class.html#isAlive" class="summary-sig-name"><code>isAlive</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="threading.Thread-class.html#isDaemon" class="summary-sig-name"><code>isDaemon</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="threading.Thread-class.html#join" class="summary-sig-name"><code>join</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>timeout</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="threading.Thread-class.html#run" class="summary-sig-name"><code>run</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="threading.Thread-class.html#setDaemon" class="summary-sig-name"><code>setDaemon</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>daemonic</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="threading.Thread-class.html#setName" class="summary-sig-name"><code>setName</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>name</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="threading.Thread-class.html#start" class="summary-sig-name"><code>start</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__str__() &lt;==&gt; str(x)</td></tr>
-</table><br />
-
-
-<!-- =========== START OF INSTANCE METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Instance Method Details</th></tr>
-</table>
-
-<a name="__init__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__init__</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>channel</span>,
- <span class=sig-arg>name</span>,
- <span class=sig-arg>server</span>,
- <span class=sig-arg>sftp_si</span>=<span class=sig-default>&lt;class&nbsp;'paramiko.SFTPServerInterface'&gt;</span>,
- <span class="sig-vararg">*largs</span>,
- <span class="sig-kwarg">**kwargs</span>)</span>
- <br /><i>(Constructor)</i>
- </h3>
- The constructor for SFTPServer is meant to be called from within the
- <a href="paramiko.Transport-class.html"
- class="link"><code>Transport</code></a> as a subsystem handler.
- <code>server</code> and any additional parameters or keyword parameters
- are passed from the original call to <a
- href="paramiko.Transport-class.html#set_subsystem_handler"
- class="link"><code>Transport.set_subsystem_handler</code></a>.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>channel</b></code> -
- channel passed from the <a
- href="paramiko.Transport-class.html"
- class="link"><code>Transport</code></a>.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a>)</i>
- <dd><code><b>name</b></code> -
- name of the requested subsystem.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>server</b></code> -
- the server object associated with this channel and
- subsystem
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="../private/paramiko.ServerInterface-class.html"
- class="link"><code>ServerInterface</code></a>)</i>
- <dd><code><b>sftp_si</b></code> -
- a subclass of <a
- href="../private/paramiko.SFTPServerInterface-class.html"
- class="link"><code>SFTPServerInterface</code></a> to use for
- handling individual requests.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=class)</i>
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="../private/paramiko.BaseSFTP-class.html#__init__"><code>paramiko.BaseSFTP.__init__</code></a></dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="finish_subsystem"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">finish_subsystem</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Perform any cleanup at the end of a subsystem. The default
- implementation just closes the channel.
- <dl><dt></dt><dd>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="paramiko.SubsystemHandler-class.html#finish_subsystem"><code>paramiko.SubsystemHandler.finish_subsystem</code></a> <i>(inherited documentation)</i>
-</dd>
- </dl>
-<p><b>Since:</b> 1.1
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="start_subsystem"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">start_subsystem</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>name</span>,
- <span class=sig-arg>transport</span>,
- <span class=sig-arg>channel</span>)</span>
- </h3>
- <p>Process an ssh subsystem in server mode. This method is called on a
- new object (and in a new thread) for each subsystem request. It is
- assumed that all subsystem logic will take place here, and when the
- subsystem is finished, this method will return. After this method
- returns, the channel is closed.</p>
- The combination of <code>transport</code> and <code>channel</code>
- are unique; this handler corresponds to exactly one <a
- href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a> on one <a
- href="paramiko.Transport-class.html"
- class="link"><code>Transport</code></a>.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>name</b></code> -
- name of the requested subsystem.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>transport</b></code> -
- the server-mode <a href="paramiko.Transport-class.html"
- class="link"><code>Transport</code></a>.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.Transport-class.html"
- class="link"><code>Transport</code></a>)</i>
- <dd><code><b>channel</b></code> -
- the channel associated with this subsystem request.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a>)</i>
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="paramiko.SubsystemHandler-class.html#start_subsystem"><code>paramiko.SubsystemHandler.start_subsystem</code></a> <i>(inherited documentation)</i>
-</dd>
- </dl>
-<p><b>Note:</b> It is the responsibility of this method to exit if the underlying <a
-href="paramiko.Transport-class.html"
-class="link"><code>Transport</code></a> is closed. This can be done by
-checking <a href="paramiko.Transport-class.html#is_active"
-class="link"><code>Transport.is_active</code></a> or noticing an EOF on
-the <a href="paramiko.Channel-class.html"
-class="link"><code>Channel</code></a>. If this method loops forever
-without checking for this case, your python interpreter may refuse to
-exit because this thread will still be running.
-</p>
-
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF STATIC METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Static Method Details</th></tr>
-</table>
-
-<a name="convert_errno"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">convert_errno</span>(<span class=sig-arg>e</span>)</span>
- </h3>
- Convert an errno value (as from an <code>OSError</code> or
- <code>IOError</code>) into a standard SFTP result code. This is a
- convenience function for trapping exceptions in server code and
- returning an appropriate result.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>e</b></code> -
- an errno code, as from <code>OSError.errno</code>.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- an SFTP error code like <a
- href="../private/paramiko-module.html#SFTP_NO_SUCH_FILE"
- class="link"><code>SFTP_NO_SUCH_FILE</code></a>.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="set_file_attr"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">set_file_attr</span>(<span class=sig-arg>filename</span>,
- <span class=sig-arg>attr</span>)</span>
- </h3>
- <p>Change a file's attributes on the local filesystem. The contents of
- <code>attr</code> are used to change the permissions, owner, group
- ownership, and/or modification &amp; access time of the file, depending
- on which attributes are present in <code>attr</code>.</p>
- This is meant to be a handy helper function for translating SFTP
- file requests into local file operations.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>filename</b></code> -
- name of the file to alter (should usually be an absolute
- path).
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>attr</b></code> -
- attributes to change.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.SFTPAttributes-class.html"
- class="link"><code>SFTPAttributes</code></a>)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/public/paramiko.SSHException-class.html b/docs/public/paramiko.SSHException-class.html
deleted file mode 100644
index a628f2f..0000000
--- a/docs/public/paramiko.SSHException-class.html
+++ /dev/null
@@ -1,94 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.SSHException</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Class&nbsp;SSHException
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<a href="../private/paramiko.SSHException-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.SSHException-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Class SSHException</h2>
-
-<pre class="base-tree">
-<a href="exceptions.Exception-class.html"><code>Exception</code></a> --+
- |
- <b>SSHException</b>
-</pre><br />
-
-<dl><dt><b>Known Subclasses:</b></dt>
-<dd>
- <a href="paramiko.BadAuthenticationType-class.html"><code>BadAuthenticationType</code></a>,
- <a href="paramiko.PasswordRequiredException-class.html"><code>PasswordRequiredException</code></a></dd></dl>
-
-<hr/>
-
-Exception raised by failures in SSH2 protocol negotiation or logic
-errors.
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Exception</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__getitem__" class="summary-sig-name"><code>__getitem__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="exceptions.Exception-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-</td></tr>
-</table><br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:48 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/public/paramiko.SecurityOptions-class.html b/docs/public/paramiko.SecurityOptions-class.html
deleted file mode 100644
index a9ca4be..0000000
--- a/docs/public/paramiko.SecurityOptions-class.html
+++ /dev/null
@@ -1,274 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.SecurityOptions</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Class&nbsp;SecurityOptions
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<a href="../private/paramiko.SecurityOptions-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.SecurityOptions-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type SecurityOptions</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
- <b>SecurityOptions</b>
-</pre><br />
-
-<hr/>
-
-<p>Simple object containing the security preferences of an ssh transport.
-These are tuples of acceptable ciphers, digests, key types, and key
-exchange algorithms, listed in order of preference.</p>
-Changing the contents and/or order of these fields affects the
-underlying <a href="paramiko.Transport-class.html"
-class="link"><code>Transport</code></a> (but only if you change them
-before starting the session). If you try to add an algorithm that
-paramiko doesn't recognize, <code>ValueError</code> will be raised. If
-you try to assign something besides a tuple to one of the fields,
-<code>TypeError</code> will be raised.
-<hr/>
-
-<p><b>Since:</b> ivysaur
-</p>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__init__"></a><span class="summary-sig"><span class="summary-sig-name">__init__</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>transport</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SecurityOptions-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Returns a string representation of this object, for debugging.</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__str__() &lt;==&gt; str(x)</td></tr>
-</table><br />
-
-
-<!-- =========== START OF PROPERTY SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Property Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><b><a href="paramiko.SecurityOptions-class.html#ciphers"><code>ciphers</code></a></b>: Symmetric encryption ciphers</td></tr><tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><b><a href="paramiko.SecurityOptions-class.html#compression"><code>compression</code></a></b>: Compression algorithms</td></tr><tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><b><a href="paramiko.SecurityOptions-class.html#digests"><code>digests</code></a></b>: Digest (one-way hash) algorithms</td></tr><tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><b><a href="paramiko.SecurityOptions-class.html#kex"><code>kex</code></a></b>: Key exchange algorithms</td></tr><tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><b><a href="paramiko.SecurityOptions-class.html#key_types"><code>key_types</code></a></b>: Public-key algorithms</td></tr></table><br />
-
-
-<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Class Variable Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>list</code></font></td>
-<td><b><a href="paramiko.SecurityOptions-class.html#__slots__"><code>__slots__</code></a></b> = <span title="['ciphers', 'digests', 'key_types', 'kex', 'compression', '_transport']"><code>['ciphers',&nbsp;'digests',&nbsp;'key_types',&nbsp;'kex',&nbsp;'<span class="variable-ellipsis">...</span></code>
-</span></td></tr>
-</table><br />
-
-
-<!-- =========== START OF METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Method Details</th></tr>
-</table>
-
-<a name="__repr__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__repr__</span>(<span class=sig-arg>self</span>)</span>
- <br /><i>(Representation operator)</i>
- </h3>
- Returns a string representation of this object, for debugging.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- str
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="__builtin__.object-class.html#__repr__"><code>__builtin__.object.__repr__</code></a></dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF PROPERTY DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Property Details</th></tr>
-</table>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-
-<a name="ciphers"></a>
-<h3>ciphers</h3>
-Symmetric encryption ciphers
-<dl>
- <dt></dt>
- <dd>
- <dl>
- </dl>
- </dd>
-</dl></td></tr></table><table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-
-<a name="compression"></a>
-<h3>compression</h3>
-Compression algorithms
-<dl>
- <dt></dt>
- <dd>
- <dl>
- </dl>
- </dd>
-</dl></td></tr></table><table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-
-<a name="digests"></a>
-<h3>digests</h3>
-Digest (one-way hash) algorithms
-<dl>
- <dt></dt>
- <dd>
- <dl>
- </dl>
- </dd>
-</dl></td></tr></table><table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-
-<a name="kex"></a>
-<h3>kex</h3>
-Key exchange algorithms
-<dl>
- <dt></dt>
- <dd>
- <dl>
- </dl>
- </dd>
-</dl></td></tr></table><table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
-
-<a name="key_types"></a>
-<h3>key_types</h3>
-Public-key algorithms
-<dl>
- <dt></dt>
- <dd>
- <dl>
- </dl>
- </dd>
-</dl></td></tr></table><br />
-
-
-<!-- =========== START OF CLASS VARIABLE DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Class Variable Details</th></tr>
-</table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="__slots__"></a>
-<h3>__slots__</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>list</code>
-
- </dd>
-<span title="['ciphers', 'digests', 'key_types', 'kex', 'compression', '_transport']"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-['ciphers', 'digests', 'key_types', 'kex', 'compression', '_transport'<span class="variable-linewrap">\</span>
-] </pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/public/paramiko.SubsystemHandler-class.html b/docs/public/paramiko.SubsystemHandler-class.html
deleted file mode 100644
index 05c7bdb..0000000
--- a/docs/public/paramiko.SubsystemHandler-class.html
+++ /dev/null
@@ -1,327 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.SubsystemHandler</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Class&nbsp;SubsystemHandler
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<a href="../private/paramiko.SubsystemHandler-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.SubsystemHandler-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type SubsystemHandler</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
- <a href="../private/threading._Verbose-class.html"><code>_Verbose</code></a> --+
- |
- <a href="threading.Thread-class.html"><code>Thread</code></a> --+
- |
- <b>SubsystemHandler</b>
-</pre><br />
-
-<dl><dt><b>Known Subclasses:</b></dt>
-<dd>
- <a href="paramiko.SFTPServer-class.html"><code>SFTPServer</code></a></dd></dl>
-
-<hr/>
-
-<p>Handler for a subsytem in server mode. If you create a subclass of
-this class and pass it to <a
-href="paramiko.Transport-class.html#set_subsystem_handler"
-class="link"><code>Transport.set_subsystem_handler</code></a>, an object
-of this class will be created for each request for this subsystem. Each
-new object will be executed within its own new thread by calling <a
-href="paramiko.SubsystemHandler-class.html#start_subsystem"
-class="link"><code>start_subsystem</code></a>. When that method
-completes, the channel is closed.</p>
-For example, if you made a subclass <code>MP3Handler</code> and
-registered it as the handler for subsystem <code>&quot;mp3&quot;</code>,
-then whenever a client has successfully authenticated and requests
-subsytem <code>&quot;mp3&quot;</code>, an object of class
-<code>MP3Handler</code> will be created, and <a
-href="paramiko.SubsystemHandler-class.html#start_subsystem"
-class="link"><code>start_subsystem</code></a> will be called on it from a
-new thread.
-<hr/>
-
-<p><b>Since:</b> ivysaur
-</p>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SubsystemHandler-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>channel</span>,
- <span class=summary-sig-arg>name</span>,
- <span class=summary-sig-arg>server</span>)</span></code>
-<br />
-Create a new handler for a channel.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SubsystemHandler-class.html#finish_subsystem" class="summary-sig-name"><code>finish_subsystem</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Perform any cleanup at the end of a subsystem.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> <a href="../private/paramiko.ServerInterface-class.html"
- class="link"><code>ServerInterface</code></a>
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SubsystemHandler-class.html#get_server" class="summary-sig-name"><code>get_server</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return the <a href="../private/paramiko.ServerInterface-class.html"
-class="link"><code>ServerInterface</code></a> object associated with this
-channel and subsystem.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.SubsystemHandler-class.html#start_subsystem" class="summary-sig-name"><code>start_subsystem</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>name</span>,
- <span class=summary-sig-arg>transport</span>,
- <span class=summary-sig-arg>channel</span>)</span></code>
-<br />
-Process an ssh subsystem in server mode.</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Thread</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="threading.Thread-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="threading.Thread-class.html#getName" class="summary-sig-name"><code>getName</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="threading.Thread-class.html#isAlive" class="summary-sig-name"><code>isAlive</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="threading.Thread-class.html#isDaemon" class="summary-sig-name"><code>isDaemon</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="threading.Thread-class.html#join" class="summary-sig-name"><code>join</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>timeout</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="threading.Thread-class.html#run" class="summary-sig-name"><code>run</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="threading.Thread-class.html#setDaemon" class="summary-sig-name"><code>setDaemon</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>daemonic</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="threading.Thread-class.html#setName" class="summary-sig-name"><code>setName</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>name</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="threading.Thread-class.html#start" class="summary-sig-name"><code>start</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__str__() &lt;==&gt; str(x)</td></tr>
-</table><br />
-
-
-<!-- =========== START OF METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Method Details</th></tr>
-</table>
-
-<a name="__init__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__init__</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>channel</span>,
- <span class=sig-arg>name</span>,
- <span class=sig-arg>server</span>)</span>
- <br /><i>(Constructor)</i>
- </h3>
- Create a new handler for a channel. This is used by <a
- href="../private/paramiko.ServerInterface-class.html"
- class="link"><code>ServerInterface</code></a> to start up a new handler
- when a channel requests this subsystem. You don't need to override this
- method, but if you do, be sure to pass the <code>channel</code> and
- <code>name</code> parameters through to the original
- <code>__init__</code> method here.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>channel</b></code> -
- the channel associated with this subsystem request.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a>)</i>
- <dd><code><b>name</b></code> -
- name of the requested subsystem.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>server</b></code> -
- the server object for the session that started this
- subsystem
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="../private/paramiko.ServerInterface-class.html"
- class="link"><code>ServerInterface</code></a>)</i>
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="threading.Thread-class.html#__init__"><code>threading.Thread.__init__</code></a></dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="finish_subsystem"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">finish_subsystem</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Perform any cleanup at the end of a subsystem. The default
- implementation just closes the channel.
- <dl><dt></dt><dd>
-<p><b>Since:</b> 1.1
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="get_server"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_server</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Return the <a href="../private/paramiko.ServerInterface-class.html"
- class="link"><code>ServerInterface</code></a> object associated with
- this channel and subsystem.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- <a href="../private/paramiko.ServerInterface-class.html"
- class="link"><code>ServerInterface</code></a>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="start_subsystem"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">start_subsystem</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>name</span>,
- <span class=sig-arg>transport</span>,
- <span class=sig-arg>channel</span>)</span>
- </h3>
- <p>Process an ssh subsystem in server mode. This method is called on a
- new object (and in a new thread) for each subsystem request. It is
- assumed that all subsystem logic will take place here, and when the
- subsystem is finished, this method will return. After this method
- returns, the channel is closed.</p>
- The combination of <code>transport</code> and <code>channel</code>
- are unique; this handler corresponds to exactly one <a
- href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a> on one <a
- href="paramiko.Transport-class.html"
- class="link"><code>Transport</code></a>.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>name</b></code> -
- name of the requested subsystem.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>transport</b></code> -
- the server-mode <a href="paramiko.Transport-class.html"
- class="link"><code>Transport</code></a>.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.Transport-class.html"
- class="link"><code>Transport</code></a>)</i>
- <dd><code><b>channel</b></code> -
- the channel associated with this subsystem request.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a>)</i>
- </dd>
- </dl>
-<p><b>Note:</b> It is the responsibility of this method to exit if the underlying <a
-href="paramiko.Transport-class.html"
-class="link"><code>Transport</code></a> is closed. This can be done by
-checking <a href="paramiko.Transport-class.html#is_active"
-class="link"><code>Transport.is_active</code></a> or noticing an EOF on
-the <a href="paramiko.Channel-class.html"
-class="link"><code>Channel</code></a>. If this method loops forever
-without checking for this case, your python interpreter may refuse to
-exit because this thread will still be running.
-</p>
-
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:48 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/public/paramiko.Transport-class.html b/docs/public/paramiko.Transport-class.html
deleted file mode 100644
index 562982b..0000000
--- a/docs/public/paramiko.Transport-class.html
+++ /dev/null
@@ -1,1524 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.Transport</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Class&nbsp;Transport
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<a href="../private/paramiko.Transport-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.Transport-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type Transport</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
- <a href="../private/threading._Verbose-class.html"><code>_Verbose</code></a> --+
- |
- <a href="threading.Thread-class.html"><code>Thread</code></a> --+
- |
- <b>Transport</b>
-</pre><br />
-
-<hr/>
-
-An SSH Transport attaches to a stream (usually a socket), negotiates
-an encrypted session, authenticates, and then creates stream tunnels,
-called <a href="paramiko.Channel-class.html"
-class="link"><code>Channel</code></a>s, across the session. Multiple
-channels can be multiplexed across a single session (and often are, in
-the case of port forwardings).
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>sock</span>)</span></code>
-<br />
-Create a new SSH session over an existing socket, or socket-like
-object.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__del__"></a><span class="summary-sig"><span class="summary-sig-name">__del__</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Returns a string representation of this object, for debugging.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> <a href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a>
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#accept" class="summary-sig-name"><code>accept</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>timeout</span>)</span></code>
-<br />
-Return the next channel opened by the client over this transport, in
-server mode.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#add_server_key" class="summary-sig-name"><code>add_server_key</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>key</span>)</span></code>
-<br />
-Add a host key to the list of keys used for server mode.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> list
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#auth_interactive" class="summary-sig-name"><code>auth_interactive</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>username</span>,
- <span class=summary-sig-arg>handler</span>,
- <span class=summary-sig-arg>submethods</span>)</span></code>
-<br />
-Authenticate to the server interactively.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> list
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#auth_none" class="summary-sig-name"><code>auth_none</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>username</span>)</span></code>
-<br />
-Try to authenticate to the server using no authentication at all.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> list
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#auth_password" class="summary-sig-name"><code>auth_password</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>username</span>,
- <span class=summary-sig-arg>password</span>,
- <span class=summary-sig-arg>event</span>,
- <span class=summary-sig-arg>fallback</span>)</span></code>
-<br />
-Authenticate to the server using a password.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> list
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#auth_publickey" class="summary-sig-name"><code>auth_publickey</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>username</span>,
- <span class=summary-sig-arg>key</span>,
- <span class=summary-sig-arg>event</span>)</span></code>
-<br />
-Authenticate to the server using a private key.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#close" class="summary-sig-name"><code>close</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Close this session, and any open channels that are tied to it.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#connect" class="summary-sig-name"><code>connect</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>hostkey</span>,
- <span class=summary-sig-arg>username</span>,
- <span class=summary-sig-arg>password</span>,
- <span class=summary-sig-arg>pkey</span>)</span></code>
-<br />
-Negotiate an SSH2 session, and optionally verify the server's host key
-and authenticate using a password or private key.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> Exception
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#get_exception" class="summary-sig-name"><code>get_exception</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return any exception that happened during the last server request.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> bool
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#get_hexdump" class="summary-sig-name"><code>get_hexdump</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return <code>True</code> if the transport is currently logging hex
-dumps of protocol traffic.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> str
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#get_log_channel" class="summary-sig-name"><code>get_log_channel</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return the channel name used for this transport's logging.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> <a href="../private/paramiko.PKey-class.html"
- class="link"><code>PKey</code></a>
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#get_remote_server_key" class="summary-sig-name"><code>get_remote_server_key</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return the host key of the server (in client mode).</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> <a href="paramiko.SecurityOptions-class.html"
- class="link"><code>SecurityOptions</code></a>
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#get_security_options" class="summary-sig-name"><code>get_security_options</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return a <a href="paramiko.SecurityOptions-class.html"
-class="link"><code>SecurityOptions</code></a> object which can be used to
-tweak the encryption algorithms this transport will permit, and the order
-of preference for them.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> <a href="../private/paramiko.PKey-class.html"
- class="link"><code>PKey</code></a>
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#get_server_key" class="summary-sig-name"><code>get_server_key</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return the active host key, in server mode.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> string
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#get_username" class="summary-sig-name"><code>get_username</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return the username this connection is authenticated for.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> <a href="paramiko.Message-class.html"
- class="link"><code>Message</code></a>
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#global_request" class="summary-sig-name"><code>global_request</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>kind</span>,
- <span class=summary-sig-arg>data</span>,
- <span class=summary-sig-arg>wait</span>)</span></code>
-<br />
-Make a global request to the remote host.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> bool
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#is_active" class="summary-sig-name"><code>is_active</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return true if this session is active (open).</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> bool
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#is_authenticated" class="summary-sig-name"><code>is_authenticated</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Return true if this session is active and authenticated.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> bool
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#load_server_moduli" class="summary-sig-name"><code>load_server_moduli</code></a>(<span class=summary-sig-arg>filename</span>)</span></code>
-<br />
-<i>(optional)</i> Load a file of prime moduli for use in doing
-group-exchange key negotiation in server mode. <i>(Static method)</i>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> <a href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a>
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#open_channel" class="summary-sig-name"><code>open_channel</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>kind</span>,
- <span class=summary-sig-arg>dest_addr</span>,
- <span class=summary-sig-arg>src_addr</span>)</span></code>
-<br />
-Request a new channel to the server.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> <a href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a>
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#open_session" class="summary-sig-name"><code>open_session</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Request a new channel to the server, of type
-<code>&quot;session&quot;</code>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> <a href="paramiko.SFTPClient-class.html"
- class="link"><code>SFTPClient</code></a>
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#open_sftp_client" class="summary-sig-name"><code>open_sftp_client</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Create an SFTP client channel from an open transport.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> bool
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#renegotiate_keys" class="summary-sig-name"><code>renegotiate_keys</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-<br />
-Force this session to switch to new keys.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="run"></a><span class="summary-sig"><span class="summary-sig-name">run</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#send_ignore" class="summary-sig-name"><code>send_ignore</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>bytes</span>)</span></code>
-<br />
-Send a junk packet across the encrypted link.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#set_hexdump" class="summary-sig-name"><code>set_hexdump</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>hexdump</span>)</span></code>
-<br />
-Turn on/off logging a hex dump of protocol traffic at DEBUG level in
-the logs.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#set_keepalive" class="summary-sig-name"><code>set_keepalive</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>interval</span>)</span></code>
-<br />
-Turn on/off keepalive packets (default is off).</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#set_log_channel" class="summary-sig-name"><code>set_log_channel</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>name</span>)</span></code>
-<br />
-Set the channel for this transport's logging.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#set_subsystem_handler" class="summary-sig-name"><code>set_subsystem_handler</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>name</span>,
- <span class=summary-sig-arg>handler</span>,
- <span class="summary-sig-vararg">*larg</span>,
- <span class="summary-sig-kwarg">**kwarg</span>)</span></code>
-<br />
-Set the handler class for a subsystem in server mode.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#start_client" class="summary-sig-name"><code>start_client</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>event</span>)</span></code>
-<br />
-Negotiate a new SSH2 session as a client.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#start_server" class="summary-sig-name"><code>start_server</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>event</span>,
- <span class=summary-sig-arg>server</span>)</span></code>
-<br />
-Negotiate a new SSH2 session as a server.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="stop_thread"></a><span class="summary-sig"><span class="summary-sig-name">stop_thread</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.Transport-class.html#use_compression" class="summary-sig-name"><code>use_compression</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>compress</span>)</span></code>
-<br />
-Turn on/off compression.</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from Thread</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="threading.Thread-class.html#getName" class="summary-sig-name"><code>getName</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="threading.Thread-class.html#isAlive" class="summary-sig-name"><code>isAlive</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="threading.Thread-class.html#isDaemon" class="summary-sig-name"><code>isDaemon</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="threading.Thread-class.html#join" class="summary-sig-name"><code>join</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>timeout</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="threading.Thread-class.html#setDaemon" class="summary-sig-name"><code>setDaemon</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>daemonic</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="threading.Thread-class.html#setName" class="summary-sig-name"><code>setName</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>name</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="threading.Thread-class.html#start" class="summary-sig-name"><code>start</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__str__() &lt;==&gt; str(x)</td></tr>
-</table><br />
-
-
-<!-- =========== START OF INSTANCE METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Instance Method Details</th></tr>
-</table>
-
-<a name="__init__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__init__</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>sock</span>)</span>
- <br /><i>(Constructor)</i>
- </h3>
- <p>Create a new SSH session over an existing socket, or socket-like
- object. This only creates the Transport object; it doesn't begin the
- SSH session yet. Use <a href="paramiko.Transport-class.html#connect"
- class="link"><code>connect</code></a> or <a
- href="paramiko.Transport-class.html#start_client"
- class="link"><code>start_client</code></a> to begin a client session,
- or <a href="paramiko.Transport-class.html#start_server"
- class="link"><code>start_server</code></a> to begin a server
- session.</p>
- If the object is not actually a socket, it must have the following
- methods:
- <ul>
- <li>
- <code>send(str)</code>: Writes from 1 to <code>len(str)</code>
- bytes, and returns an int representing the number of bytes written.
- Returns 0 or raises <code>EOFError</code> if the stream has been
- closed.
- </li>
- <li>
- <code>recv(int)</code>: Reads from 1 to <code>int</code> bytes
- and returns them as a string. Returns 0 or raises
- <code>EOFError</code> if the stream has been closed.
- </li>
- <li>
- <code>close()</code>: Closes the socket.
- </li>
- <li>
- <code>settimeout(n)</code>: Sets a (float) timeout on I/O
- operations.
- </li>
- </ul>
- For ease of use, you may also pass in an address (as a tuple) or a
- host string as the <code>sock</code> argument. (A host string is a
- hostname with an optional port (separated by
- <code>&quot;:&quot;</code>) which will be converted into a tuple of
- <code>(hostname, port)</code>.) A socket will be connected to this
- address and used for communication. Exceptions from the
- <code>socket</code> call may be thrown in this case.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>sock</b></code> -
- a socket or socket-like object to create the session over.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=socket)</i>
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="threading.Thread-class.html#__init__"><code>threading.Thread.__init__</code></a></dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="__repr__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__repr__</span>(<span class=sig-arg>self</span>)</span>
- <br /><i>(Representation operator)</i>
- </h3>
- Returns a string representation of this object, for debugging.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- str
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="threading.Thread-class.html#__repr__"><code>threading.Thread.__repr__</code></a></dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="accept"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">accept</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>timeout</span>=<span class=sig-default>None</span>)</span>
- </h3>
- Return the next channel opened by the client over this transport, in
- server mode. If no channel is opened before the given timeout,
- <code>None</code> is returned.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>timeout</b></code> -
- seconds to wait for a channel, or <code>None</code> to wait
- forever
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- a new Channel opened by the client
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a>)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="add_server_key"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">add_server_key</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>key</span>)</span>
- </h3>
- Add a host key to the list of keys used for server mode. When
- behaving as a server, the host key is used to sign certain packets
- during the SSH2 negotiation, so that the client can trust that we are
- who we say 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.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>key</b></code> -
- the host key to add, usually an <a
- href="paramiko.RSAKey-class.html"
- class="link"><code>RSAKey</code></a> or <a
- href="paramiko.DSSKey-class.html"
- class="link"><code>DSSKey</code></a>.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="../private/paramiko.PKey-class.html"
- class="link"><code>PKey</code></a>)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="auth_interactive"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">auth_interactive</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>username</span>,
- <span class=sig-arg>handler</span>,
- <span class=sig-arg>submethods</span>=<span class=sig-default>''</span>)</span>
- </h3>
- <p>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.</p>
- <p>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.</p>
- <p>The handler is expected to be a callable that will handle calls of
- the form: <code>handler(title, instructions, prompt_list)</code>. The
- <code>title</code> is meant to be a dialog-window title, and the
- <code>instructions</code> are user instructions (both are strings).
- <code>prompt_list</code> will be a list of prompts, each prompt being a
- tuple of <code>(str, bool)</code>. The string is the prompt and the
- boolean indicates whether the user text should be echoed.</p>
- <p>A sample call would thus be: <code>handler('title', 'instructions',
- [('Password:', False)])</code>.</p>
- <p>The handler should return a list or tuple of answers to the server's
- questions.</p>
- 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.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>username</b></code> -
- the username to authenticate as
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- <dd><code><b>handler</b></code> -
- a handler for responding to server questions
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=callable)</i>
- <dd><code><b>submethods</b></code> -
- a string list of desired submethods (optional)
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- list of auth types permissible for the next stage of
- authentication (normally empty).
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=list)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>BadAuthenticationType</b></code> -
- if public-key authentication isn't allowed by the server for
- this user
- <dd><code><b>SSHException</b></code> -
- if the authentication failed
- </dl>
-<p><b>Since:</b> 1.5
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="auth_none"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">auth_none</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>username</span>)</span>
- </h3>
- Try to authenticate to the server using no authentication at all.
- This will almost always fail. It may be useful for determining the list
- of authentication types supported by the server, by catching the <a
- href="paramiko.BadAuthenticationType-class.html"
- class="link"><code>BadAuthenticationType</code></a> exception
- raised.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>username</b></code> -
- the username to authenticate as
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- list of auth types permissible for the next stage of
- authentication (normally empty)
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=list)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>BadAuthenticationType</b></code> -
- if &quot;none&quot; authentication isn't allowed by the server
- for this user
- <dd><code><b>SSHException</b></code> -
- if the authentication failed due to a network error
- </dl>
-<p><b>Since:</b> 1.5
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="auth_password"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">auth_password</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>username</span>,
- <span class=sig-arg>password</span>,
- <span class=sig-arg>event</span>=<span class=sig-default>None</span>,
- <span class=sig-arg>fallback</span>=<span class=sig-default>True</span>)</span>
- </h3>
- <p>Authenticate to the server using a password. The username and
- password are sent over an encrypted link.</p>
- <p>If an <code>event</code> is passed in, this method will return
- immediately, and the event will be triggered once authentication
- succeeds or fails. On success, <a
- href="paramiko.Transport-class.html#is_authenticated"
- class="link"><code>is_authenticated</code></a> will return
- <code>True</code>. On failure, you may use <a
- href="paramiko.Transport-class.html#get_exception"
- class="link"><code>get_exception</code></a> to get more detailed error
- information.</p>
- <p>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.</p>
- <p>Since 1.5, if no event is passed and <code>fallback</code> is
- <code>True</code> (the default), if the server doesn't support plain
- password authentication but does support so-called
- &quot;keyboard-interactive&quot; mode, an attempt will be made to
- authenticate using this interactive mode. If it fails, the normal
- exception will be thrown as if the attempt had never been 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 &quot;more secure&quot;. (It's not.)</p>
- 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.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>username</b></code> -
- the username to authenticate as
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- <dd><code><b>password</b></code> -
- the password to authenticate with
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- <dd><code><b>event</b></code> -
- an event to trigger when the authentication attempt is
- complete (whether it was successful or not)
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=threading.Event)</i>
- <dd><code><b>fallback</b></code> -
- <code>True</code> if an attempt at an automated
- &quot;interactive&quot; password auth should be made if the
- server doesn't support normal password auth
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=bool)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- list of auth types permissible for the next stage of
- authentication (normally empty)
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=list)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>BadAuthenticationType</b></code> -
- if password authentication isn't allowed by the server for
- this user (and no event was passed in)
- <dd><code><b>SSHException</b></code> -
- if the authentication failed (and no event was passed in)
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="auth_publickey"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">auth_publickey</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>username</span>,
- <span class=sig-arg>key</span>,
- <span class=sig-arg>event</span>=<span class=sig-default>None</span>)</span>
- </h3>
- <p>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.</p>
- <p>If an <code>event</code> is passed in, this method will return
- immediately, and the event will be triggered once authentication
- succeeds or fails. On success, <a
- href="paramiko.Transport-class.html#is_authenticated"
- class="link"><code>is_authenticated</code></a> will return
- <code>True</code>. On failure, you may use <a
- href="paramiko.Transport-class.html#get_exception"
- class="link"><code>get_exception</code></a> to get more detailed error
- information.</p>
- <p>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.</p>
- 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.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>username</b></code> -
- the username to authenticate as
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- <dd><code><b>key</b></code> -
- the private key to authenticate with
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="../private/paramiko.PKey-class.html"
- class="link"><code>PKey</code></a>)</i>
- <dd><code><b>event</b></code> -
- an event to trigger when the authentication attempt is
- complete (whether it was successful or not)
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=threading.Event)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- list of auth types permissible for the next stage of
- authentication (normally empty).
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=list)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>BadAuthenticationType</b></code> -
- if public-key authentication isn't allowed by the server for
- this user (and no event was passed in).
- <dd><code><b>SSHException</b></code> -
- if the authentication failed (and no event was passed in).
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="close"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">close</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Close this session, and any open channels that are tied to it.
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-
-<a name="connect"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">connect</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>hostkey</span>=<span class=sig-default>None</span>,
- <span class=sig-arg>username</span>=<span class=sig-default>''</span>,
- <span class=sig-arg>password</span>=<span class=sig-default>None</span>,
- <span class=sig-arg>pkey</span>=<span class=sig-default>None</span>)</span>
- </h3>
- <p>Negotiate an SSH2 session, and optionally verify the server's host
- key and authenticate using a password or private key. This is a
- shortcut for <a href="paramiko.Transport-class.html#start_client"
- class="link"><code>start_client</code></a>, <a
- href="paramiko.Transport-class.html#get_remote_server_key"
- class="link"><code>get_remote_server_key</code></a>, and <a
- href="paramiko.Transport-class.html#auth_password"
- class="link"><code>Transport.auth_password</code></a> or <a
- href="paramiko.Transport-class.html#auth_publickey"
- class="link"><code>Transport.auth_publickey</code></a>. Use those
- methods if you want more control.</p>
- You can use this method immediately after creating a Transport to
- negotiate encryption with a server. If it fails, an exception will be
- thrown. On success, the method will return cleanly, and an encrypted
- session exists. You may immediately call <a
- href="paramiko.Transport-class.html#open_channel"
- class="link"><code>open_channel</code></a> or <a
- href="paramiko.Transport-class.html#open_session"
- class="link"><code>open_session</code></a> to get a <a
- href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a> object, which is used for data
- transfer.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>hostkey</b></code> -
- the host key expected from the server, or <code>None</code> if
- you don't want to do host key verification.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="../private/paramiko.PKey-class.html"
- class="link"><code>PKey</code></a>)</i>
- <dd><code><b>username</b></code> -
- the username to authenticate as.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>password</b></code> -
- a password to use for authentication, if you want to use
- password authentication; otherwise <code>None</code>.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>pkey</b></code> -
- a private key to use for authentication, if you want to use
- private key authentication; otherwise <code>None</code>.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="../private/paramiko.PKey-class.html"
- class="link"><code>PKey</code></a>)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>SSHException</b></code> -
- if the SSH2 negotiation fails, the host key supplied by the
- server is incorrect, or authentication fails.
- </dl>
-<p><b>Note:</b> If you fail to supply a password or private key, this method may
-succeed, but a subsequent <a
-href="paramiko.Transport-class.html#open_channel"
-class="link"><code>open_channel</code></a> or <a
-href="paramiko.Transport-class.html#open_session"
-class="link"><code>open_session</code></a> call may fail because you
-haven't authenticated yet.
-</p>
-
-<p><b>Since:</b> doduo
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="get_exception"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_exception</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Return any exception that happened during the last server request.
- This can be used to fetch more specific error information after using
- calls like <a href="paramiko.Transport-class.html#start_client"
- class="link"><code>start_client</code></a>. The exception (if any) is
- cleared after this call.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- an exception, or <code>None</code> if there is no stored
- exception.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=Exception)</i>
- </dd>
- </dl>
-<p><b>Since:</b> 1.1
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="get_hexdump"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_hexdump</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Return <code>True</code> if the transport is currently logging hex
- dumps of protocol traffic.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- <code>True</code> if hex dumps are being logged
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=bool)</i>
- </dd>
- </dl>
-<p><b>Since:</b> 1.4
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="get_log_channel"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_log_channel</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Return the channel name used for this transport's logging.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- channel name.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
-<p><b>Since:</b> 1.2
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="get_remote_server_key"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_remote_server_key</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Return the host key of the server (in client mode).
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- public key of the remote server.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="../private/paramiko.PKey-class.html"
- class="link"><code>PKey</code></a>)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>SSHException</b></code> -
- if no session is currently active.
- </dl>
-<p><b>Note:</b> Previously this call returned a tuple of (key type, key string). You
-can get the same effect by calling <a
-href="../private/paramiko.PKey-class.html#get_name"
-class="link"><code>PKey.get_name</code></a> for the key type, and
-<code>str(key)</code> for the key string.
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="get_security_options"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_security_options</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Return a <a href="paramiko.SecurityOptions-class.html"
- class="link"><code>SecurityOptions</code></a> object which can be used
- to tweak the encryption algorithms this transport will permit, and the
- order of preference for them.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- an object that can be used to change the preferred algorithms
- for encryption, digest (hash), public key, and key exchange.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.SecurityOptions-class.html"
- class="link"><code>SecurityOptions</code></a>)</i>
- </dd>
- </dl>
-<p><b>Since:</b> ivysaur
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="get_server_key"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_server_key</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Return the active host key, in server mode. After negotiating with
- the client, this method will return the negotiated host key. If only
- one type of host key was set with <a
- href="paramiko.Transport-class.html#add_server_key"
- class="link"><code>add_server_key</code></a>, that's the only key that
- will ever be returned. But in cases where you have set more than one
- type of host key (for example, an RSA key and a DSS key), the key type
- will be negotiated by the client, and this method will return the key
- of the type agreed on. If the host key has not been negotiated yet,
- <code>None</code> is returned. In client mode, the behavior is
- undefined.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- host key of the type negotiated by the client, or
- <code>None</code>.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="../private/paramiko.PKey-class.html"
- class="link"><code>PKey</code></a>)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="get_username"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">get_username</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Return the username this connection is authenticated for. If the
- session is not authenticated (or authentication failed), this method
- returns <code>None</code>.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- username that was authenticated, or <code>None</code>.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- </dd>
- </dl>
-<p><b>Since:</b> fearow
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="global_request"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">global_request</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>kind</span>,
- <span class=sig-arg>data</span>=<span class=sig-default>None</span>,
- <span class=sig-arg>wait</span>=<span class=sig-default>True</span>)</span>
- </h3>
- Make a global request to the remote host. These are normally
- extensions to the SSH2 protocol.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>kind</b></code> -
- name of the request.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>data</b></code> -
- an optional tuple containing additional data to attach to the
- request.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=tuple)</i>
- <dd><code><b>wait</b></code> -
- <code>True</code> if this method should not return until a
- response is received; <code>False</code> otherwise.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=bool)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- a <a href="paramiko.Message-class.html"
- class="link"><code>Message</code></a> containing possible
- additional data if the request was successful (or an empty <a
- href="paramiko.Message-class.html"
- class="link"><code>Message</code></a> if <code>wait</code> was
- <code>False</code>); <code>None</code> if the request was
- denied.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.Message-class.html"
- class="link"><code>Message</code></a>)</i>
- </dd>
- </dl>
-<p><b>Since:</b> fearow
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="is_active"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">is_active</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Return true if this session is active (open).
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- True if the session is still active (open); False if the
- session is closed.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=bool)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="is_authenticated"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">is_authenticated</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Return true if this session is active and authenticated.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- True if the session is still open and has been authenticated
- successfully; False if authentication failed and/or the session
- is closed.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=bool)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="open_channel"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">open_channel</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>kind</span>,
- <span class=sig-arg>dest_addr</span>=<span class=sig-default>None</span>,
- <span class=sig-arg>src_addr</span>=<span class=sig-default>None</span>)</span>
- </h3>
- Request a new channel to the server. <a
- href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a>s are socket-like objects used for
- the actual transfer of data across the session. You may only request a
- channel after negotiating encryption (using <a
- href="paramiko.Transport-class.html#connect"
- class="link"><code>connect</code></a> or <a
- href="paramiko.Transport-class.html#start_client"
- class="link"><code>start_client</code></a>) and authenticating.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>kind</b></code> -
- the kind of channel requested (usually
- <code>&quot;session&quot;</code>,
- <code>&quot;forwarded-tcpip&quot;</code> or
- <code>&quot;direct-tcpip&quot;</code>).
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>dest_addr</b></code> -
- the destination address of this port forwarding, if
- <code>kind</code> is <code>&quot;forwarded-tcpip&quot;</code> or
- <code>&quot;direct-tcpip&quot;</code> (ignored for other channel
- types).
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=(str, int))</i>
- <dd><code><b>src_addr</b></code> -
- the source address of this port forwarding, if
- <code>kind</code> is <code>&quot;forwarded-tcpip&quot;</code> or
- <code>&quot;direct-tcpip&quot;</code>.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=(str, int))</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- a new <a href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a> on success, or
- <code>None</code> if the request is rejected or the session ends
- prematurely.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a>)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="open_session"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">open_session</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Request a new channel to the server, of type
- <code>&quot;session&quot;</code>. This is just an alias for
- <code>open_channel('session')</code>.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- a new <a href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a> on success, or
- <code>None</code> if the request is rejected or the session ends
- prematurely.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a>)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="open_sftp_client"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">open_sftp_client</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Create an SFTP client channel from an open transport. On success, an
- SFTP session will be opened with the remote host, and a new SFTPClient
- object will be returned.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- a new <a href="paramiko.SFTPClient-class.html"
- class="link"><code>SFTPClient</code></a> object, referring to an
- sftp session (channel) across this transport
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="paramiko.SFTPClient-class.html"
- class="link"><code>SFTPClient</code></a>)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="renegotiate_keys"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">renegotiate_keys</span>(<span class=sig-arg>self</span>)</span>
- </h3>
- Force this session to switch to new keys. Normally this is done
- automatically after the session hits a certain number of packets or
- bytes sent or received, but this method gives you the option of forcing
- new keys whenever you want. Negotiating new keys causes a pause in
- traffic both ways as the two sides swap keys and do computations. This
- method returns when the session has switched to new keys, or the
- session has died mid-negotiation.
- <dl><dt></dt><dd>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- True if the renegotiation was successful, and the link is
- using new keys; False if the session dropped during
- renegotiation.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=bool)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="send_ignore"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">send_ignore</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>bytes</span>=<span class=sig-default>None</span>)</span>
- </h3>
- Send a junk packet across the encrypted link. This is sometimes used
- to add &quot;noise&quot; to a connection to confuse would-be attackers.
- It can also be used as a keep-alive for long lived connections
- traversing firewalls.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>bytes</b></code> -
- the number of random bytes to send in the payload of the
- ignored packet -- defaults to a random number from 10 to 41.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
-<p><b>Since:</b> fearow
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="set_hexdump"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">set_hexdump</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>hexdump</span>)</span>
- </h3>
- Turn on/off logging a hex dump of protocol traffic at DEBUG level in
- the logs. Normally you would want this off (which is the default), but
- if you are debugging something, it may be useful.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>hexdump</b></code> -
- <code>True</code> to log protocol traffix (in hex) to the log;
- <code>False</code> otherwise.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=bool)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="set_keepalive"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">set_keepalive</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>interval</span>)</span>
- </h3>
- Turn on/off keepalive packets (default is off). If this is set,
- after <code>interval</code> seconds without sending any data over the
- connection, a &quot;keepalive&quot; packet will be sent (and ignored by
- the remote host). This can be useful to keep connections alive over a
- NAT, for example.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>interval</b></code> -
- seconds to wait before sending a keepalive packet (or 0 to
- disable keepalives).
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
-<p><b>Since:</b> fearow
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="set_log_channel"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">set_log_channel</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>name</span>)</span>
- </h3>
- Set the channel for this transport's logging. The default is
- <code>&quot;paramiko.transport&quot;</code> but it can be set to
- anything you want. (See the <code>logging</code> module for more info.)
- SSH Channels will log to a sub-channel of the one specified.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>name</b></code> -
- new channel name for logging.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
-<p><b>Since:</b> 1.1
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="set_subsystem_handler"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">set_subsystem_handler</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>name</span>,
- <span class=sig-arg>handler</span>,
- <span class="sig-vararg">*larg</span>,
- <span class="sig-kwarg">**kwarg</span>)</span>
- </h3>
- <p>Set the handler class for a subsystem in server mode. If a request
- for this subsystem is made on an open ssh channel later, this handler
- will be constructed and called -- see <a
- href="paramiko.SubsystemHandler-class.html"
- class="link"><code>SubsystemHandler</code></a> for more detailed
- documentation.</p>
- Any extra parameters (including keyword arguments) are saved and
- passed to the <a href="paramiko.SubsystemHandler-class.html"
- class="link"><code>SubsystemHandler</code></a> constructor later.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>name</b></code> -
- name of the subsystem.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>handler</b></code> -
- subclass of <a href="paramiko.SubsystemHandler-class.html"
- class="link"><code>SubsystemHandler</code></a> that handles this
- subsystem.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=class)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="start_client"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">start_client</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>event</span>=<span class=sig-default>None</span>)</span>
- </h3>
- <p>Negotiate a new SSH2 session as a client. This is the first step
- after creating a new <a href="paramiko.Transport-class.html"
- class="link"><code>Transport</code></a>. A separate thread is created
- for protocol negotiation.</p>
- <p>If an event is passed in, this method returns immediately. When
- negotiation is done (successful or not), the given <code>Event</code>
- will be triggered. On failure, <a
- href="paramiko.Transport-class.html#is_active"
- class="link"><code>is_active</code></a> will return
- <code>False</code>.</p>
- <p>(Since 1.4) If <code>event</code> is <code>None</code>, this method
- will not return until negotation is done. On success, the method
- returns normally. Otherwise an SSHException is raised.</p>
- After a successful negotiation, you will usually want to
- authenticate, calling <a
- href="paramiko.Transport-class.html#auth_password"
- class="link"><code>auth_password</code></a> or <a
- href="paramiko.Transport-class.html#auth_publickey"
- class="link"><code>auth_publickey</code></a>.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>event</b></code> -
- an event to trigger when negotiation is complete
- (optional)
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=threading.Event)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>SSHException</b></code> -
- if negotiation fails (and no <code>event</code> was passed
- in)
- </dl>
-<p><b>Notes:</b>
-<ul>
- <li><a href="paramiko.Transport-class.html#connect"
-class="link"><code>connect</code></a> is a simpler method for connecting
-as a client.
-</li>
- <li>After calling this method (or <a
-href="paramiko.Transport-class.html#start_server"
-class="link"><code>start_server</code></a> or <a
-href="paramiko.Transport-class.html#connect"
-class="link"><code>connect</code></a>), you should no longer directly
-read from or write to the original socket object.
-
- </li>
-</ul></p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="start_server"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">start_server</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>event</span>=<span class=sig-default>None</span>,
- <span class=sig-arg>server</span>=<span class=sig-default>None</span>)</span>
- </h3>
- <p>Negotiate a new SSH2 session as a server. This is the first step
- after creating a new <a href="paramiko.Transport-class.html"
- class="link"><code>Transport</code></a> and setting up your server host
- key(s). A separate thread is created for protocol negotiation.</p>
- <p>If an event is passed in, this method returns immediately. When
- negotiation is done (successful or not), the given <code>Event</code>
- will be triggered. On failure, <a
- href="paramiko.Transport-class.html#is_active"
- class="link"><code>is_active</code></a> will return
- <code>False</code>.</p>
- <p>(Since 1.4) If <code>event</code> is <code>None</code>, this method
- will not return until negotation is done. On success, the method
- returns normally. Otherwise an SSHException is raised.</p>
- <p>After a successful negotiation, the client will need to
- authenticate. Override the methods <a
- href="../private/paramiko.ServerInterface-class.html#get_allowed_auths"
- class="link"><code>get_allowed_auths</code></a>, <a
- href="../private/paramiko.ServerInterface-class.html#check_auth_none"
- class="link"><code>check_auth_none</code></a>, <a
- href="../private/paramiko.ServerInterface-class.html#check_auth_password"
- class="link"><code>check_auth_password</code></a>, and <a
- href="../private/paramiko.ServerInterface-class.html#check_auth_publickey"
- class="link"><code>check_auth_publickey</code></a> in the given
- <code>server</code> object to control the authentication process.</p>
- After a successful authentication, the client should request to open
- a channel. Override <a
- href="../private/paramiko.ServerInterface-class.html#check_channel_request"
- class="link"><code>check_channel_request</code></a> in the given
- <code>server</code> object to allow channels to be opened.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>event</b></code> -
- an event to trigger when negotiation is complete.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=threading.Event)</i>
- <dd><code><b>server</b></code> -
- an object used to perform authentication and create <a
- href="paramiko.Channel-class.html"
- class="link"><code>Channel</code></a>s.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<a href="../private/paramiko.ServerInterface-class.html"
- class="link"><code>server.ServerInterface</code></a>)</i>
- </dd>
- </dl>
- <dl><dt><b>Raises:</b></dt>
- <dd><code><b>SSHException</b></code> -
- if negotiation fails (and no <code>event</code> was passed
- in)
- </dl>
-<p><b>Note:</b> After calling this method (or <a
-href="paramiko.Transport-class.html#start_client"
-class="link"><code>start_client</code></a> or <a
-href="paramiko.Transport-class.html#connect"
-class="link"><code>connect</code></a>), you should no longer directly
-read from or write to the original socket object.
-</p>
-
- </dd></dl>
-</td></tr></table>
-
-<a name="use_compression"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">use_compression</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>compress</span>=<span class=sig-default>True</span>)</span>
- </h3>
- Turn on/off compression. This will only have an affect before
- starting the transport (ie before calling <a
- href="paramiko.Transport-class.html#connect"
- class="link"><code>connect</code></a>, etc). By default, compression is
- off since it negatively affects interactive sessions and is not fully
- tested.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>compress</b></code> -
- <code>True</code> to ask the remote client/server to compress
- traffic; <code>False</code> to refuse compression
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=bool)</i>
- </dd>
- </dl>
-<p><b>Since:</b> 1.5.2
-</p>
-
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF STATIC METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Static Method Details</th></tr>
-</table>
-
-<a name="load_server_moduli"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">load_server_moduli</span>(<span class=sig-arg>filename</span>=<span class=sig-default>None</span>)</span>
- </h3>
- <p><i>(optional)</i> Load a file of prime moduli for use in doing
- group-exchange key negotiation in server mode. It's a rather obscure
- option and can be safely ignored.</p>
- In server mode, the remote client may request
- &quot;group-exchange&quot; key negotiation, which asks the server to
- send a random prime number that fits certain criteria. These primes are
- pretty difficult to compute, so they can't be generated on demand. But
- many systems contain a file of suitable primes (usually named something
- like <code>/etc/ssh/moduli</code>). If you call
- <code>load_server_moduli</code> and it returns <code>True</code>, then
- this file of primes has been loaded and we will support
- &quot;group-exchange&quot; in server mode. Otherwise server mode will
- just claim that it doesn't support that method of key negotiation.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>filename</b></code> -
- optional path to the moduli file, if you happen to know that
- it's not in a standard location.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- True if a moduli file was successfully loaded; False
- otherwise.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=bool)</i>
- </dd>
- </dl>
-<p><b>Note:</b> This has no effect when used in client mode.
-</p>
-
-<p><b>Since:</b> doduo
-</p>
-
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:48 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/public/paramiko.agent-module.html b/docs/public/paramiko.agent-module.html
deleted file mode 100644
index 560432a..0000000
--- a/docs/public/paramiko.agent-module.html
+++ /dev/null
@@ -1,164 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.agent</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Module&nbsp;agent
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<a href="../private/paramiko.agent-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.agent-module.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF MODULE DESCRIPTION =========== -->
-<h2 class="module">Module paramiko.agent</h2>
-
-SSH Agent interface for Unix clients.
-<hr/>
-
-<!-- =========== START OF VARIABLE SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Variable Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.agent-module.html#SSH2_AGENT_IDENTITIES_ANSWER"><code>SSH2_AGENT_IDENTITIES_ANSWER</code></a></b> = <span title="12">12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.agent-module.html#SSH2_AGENT_SIGN_RESPONSE"><code>SSH2_AGENT_SIGN_RESPONSE</code></a></b> = <span title="14">14&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.agent-module.html#SSH2_AGENTC_REQUEST_IDENTITIES"><code>SSH2_AGENTC_REQUEST_IDENTITIES</code></a></b> = <span title="11">11&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.agent-module.html#SSH2_AGENTC_SIGN_REQUEST"><code>SSH2_AGENTC_SIGN_REQUEST</code></a></b> = <span title="13">13&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-</table><br />
-
-
-<!-- =========== START OF VARIABLE DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Variable Details</th></tr>
-</table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="SSH2_AGENT_IDENTITIES_ANSWER"></a>
-<h3>SSH2_AGENT_IDENTITIES_ANSWER</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="12"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="SSH2_AGENT_SIGN_RESPONSE"></a>
-<h3>SSH2_AGENT_SIGN_RESPONSE</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="14"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-14&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="SSH2_AGENTC_REQUEST_IDENTITIES"></a>
-<h3>SSH2_AGENTC_REQUEST_IDENTITIES</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="11"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-11&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="SSH2_AGENTC_SIGN_REQUEST"></a>
-<h3>SSH2_AGENTC_SIGN_REQUEST</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="13"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-13&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/public/paramiko.dsskey-module.html b/docs/public/paramiko.dsskey-module.html
deleted file mode 100644
index f600c89..0000000
--- a/docs/public/paramiko.dsskey-module.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.dsskey</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Module&nbsp;dsskey
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<a href="../private/paramiko.dsskey-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.dsskey-module.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF MODULE DESCRIPTION =========== -->
-<h2 class="module">Module paramiko.dsskey</h2>
-
-<a href="paramiko.DSSKey-class.html"
-class="link"><code>DSSKey</code></a>
-<hr/>
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/public/paramiko.file-module.html b/docs/public/paramiko.file-module.html
deleted file mode 100644
index 4cb6c90..0000000
--- a/docs/public/paramiko.file-module.html
+++ /dev/null
@@ -1,61 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.file</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Module&nbsp;file
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<a href="../private/paramiko.file-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.file-module.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF MODULE DESCRIPTION =========== -->
-<h2 class="module">Module paramiko.file</h2>
-
-BufferedFile.
-<hr/>
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/public/paramiko.message-module.html b/docs/public/paramiko.message-module.html
deleted file mode 100644
index 2ccf4d9..0000000
--- a/docs/public/paramiko.message-module.html
+++ /dev/null
@@ -1,61 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.message</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Module&nbsp;message
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<a href="../private/paramiko.message-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.message-module.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF MODULE DESCRIPTION =========== -->
-<h2 class="module">Module paramiko.message</h2>
-
-Implementation of an SSH2 &quot;message&quot;.
-<hr/>
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:46 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/public/paramiko.pkey-module.html b/docs/public/paramiko.pkey-module.html
deleted file mode 100644
index e7aac95..0000000
--- a/docs/public/paramiko.pkey-module.html
+++ /dev/null
@@ -1,61 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.pkey</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Module&nbsp;pkey
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<a href="../private/paramiko.pkey-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.pkey-module.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF MODULE DESCRIPTION =========== -->
-<h2 class="module">Module paramiko.pkey</h2>
-
-Common API for all public keys.
-<hr/>
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/public/paramiko.rsakey-module.html b/docs/public/paramiko.rsakey-module.html
deleted file mode 100644
index b287187..0000000
--- a/docs/public/paramiko.rsakey-module.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.rsakey</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Module&nbsp;rsakey
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<a href="../private/paramiko.rsakey-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.rsakey-module.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF MODULE DESCRIPTION =========== -->
-<h2 class="module">Module paramiko.rsakey</h2>
-
-<a href="paramiko.RSAKey-class.html"
-class="link"><code>RSAKey</code></a>
-<hr/>
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:48 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/public/paramiko.server-module.html b/docs/public/paramiko.server-module.html
deleted file mode 100644
index b283866..0000000
--- a/docs/public/paramiko.server-module.html
+++ /dev/null
@@ -1,74 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.server</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Module&nbsp;server
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<a href="../private/paramiko.server-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.server-module.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF MODULE DESCRIPTION =========== -->
-<h2 class="module">Module paramiko.server</h2>
-
-<a href="../private/paramiko.ServerInterface-class.html"
-class="link"><code>ServerInterface</code></a> is an interface to override
-for server support.
-<hr/>
-
-<!-- =========== START OF CLASSES =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Classes</th></tr>
-<tr><td width="15%">
- <b><a href="paramiko.server.InteractiveQuery-class.html"><code>InteractiveQuery</code></a></b></td>
- <td>A query (set of prompts) for a user during interactive
-authentication.</td></tr>
-</table><br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/public/paramiko.server.InteractiveQuery-class.html b/docs/public/paramiko.server.InteractiveQuery-class.html
deleted file mode 100644
index 6a96be3..0000000
--- a/docs/public/paramiko.server.InteractiveQuery-class.html
+++ /dev/null
@@ -1,195 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.server.InteractiveQuery</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- <a href="paramiko.server-module.html">Module&nbsp;server</a> ::
- Class&nbsp;InteractiveQuery
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<a href="../private/paramiko.server.InteractiveQuery-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.server.InteractiveQuery-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type InteractiveQuery</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
- <b>InteractiveQuery</b>
-</pre><br />
-
-<hr/>
-
-A query (set of prompts) for a user during interactive
-authentication.
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.server.InteractiveQuery-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>name</span>,
- <span class=summary-sig-arg>instructions</span>,
- <span class="summary-sig-vararg">*prompts</span>)</span></code>
-<br />
-Create a new interactive query to send to the client.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.server.InteractiveQuery-class.html#add_prompt" class="summary-sig-name"><code>add_prompt</code></a>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>prompt</span>,
- <span class=summary-sig-arg>echo</span>)</span></code>
-<br />
-Add a prompt to this query.</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__repr__() &lt;==&gt; repr(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__str__() &lt;==&gt; str(x)</td></tr>
-</table><br />
-
-
-<!-- =========== START OF METHOD DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Method Details</th></tr>
-</table>
-
-<a name="__init__"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">__init__</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>name</span>=<span class=sig-default>''</span>,
- <span class=sig-arg>instructions</span>=<span class=sig-default>''</span>,
- <span class="sig-vararg">*prompts</span>)</span>
- <br /><i>(Constructor)</i>
- </h3>
- Create a new interactive query to send to the client. The name and
- instructions are optional, but are generally displayed to the end user.
- A list of prompts may be included, or they may be added via the <a
- href="paramiko.server.InteractiveQuery-class.html#add_prompt"
- class="link"><code>add_prompt</code></a> method.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>name</b></code> -
- name of this query
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>instructions</b></code> -
- user instructions (usually short) about this query
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Overrides:</b></dt>
- <dd><a href="__builtin__.object-class.html#__init__"><code>__builtin__.object.__init__</code></a></dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="add_prompt"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">add_prompt</span>(<span class=sig-arg>self</span>,
- <span class=sig-arg>prompt</span>,
- <span class=sig-arg>echo</span>=<span class=sig-default>True</span>)</span>
- </h3>
- Add a prompt to this query. The prompt should be a (reasonably
- short) string. Multiple prompts can be added to the same query.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>prompt</b></code> -
- the user prompt
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>echo</b></code> -
- <code>True</code> (default) if the user's response should be
- echoed; <code>False</code> if not (for a password or similar)
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=bool)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/public/paramiko.sftp-module.html b/docs/public/paramiko.sftp-module.html
deleted file mode 100644
index 66fb99e..0000000
--- a/docs/public/paramiko.sftp-module.html
+++ /dev/null
@@ -1,1060 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.sftp</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Module&nbsp;sftp
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<a href="../private/paramiko.sftp-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.sftp-module.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF MODULE DESCRIPTION =========== -->
-<h2 class="module">Module paramiko.sftp</h2>
-
-
-<!-- =========== START OF VARIABLE SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Variable Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#CMD_ATTRS"><code>CMD_ATTRS</code></a></b> = <span title="105">105&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#CMD_CLOSE"><code>CMD_CLOSE</code></a></b> = <span title="4">4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#CMD_DATA"><code>CMD_DATA</code></a></b> = <span title="103">103&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#CMD_EXTENDED"><code>CMD_EXTENDED</code></a></b> = <span title="200">200&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#CMD_EXTENDED_REPLY"><code>CMD_EXTENDED_REPLY</code></a></b> = <span title="201">201&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#CMD_FSETSTAT"><code>CMD_FSETSTAT</code></a></b> = <span title="10">10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#CMD_FSTAT"><code>CMD_FSTAT</code></a></b> = <span title="8">8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#CMD_HANDLE"><code>CMD_HANDLE</code></a></b> = <span title="102">102&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#CMD_INIT"><code>CMD_INIT</code></a></b> = <span title="1">1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#CMD_LSTAT"><code>CMD_LSTAT</code></a></b> = <span title="7">7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#CMD_MKDIR"><code>CMD_MKDIR</code></a></b> = <span title="14">14&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#CMD_NAME"><code>CMD_NAME</code></a></b> = <span title="104">104&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>dict</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#CMD_NAMES"><code>CMD_NAMES</code></a></b> = <span title="{1: 'init', 2: 'version', 3: 'open', 4: 'close', 5: 'read', 6: 'write', 7: 'lstat', 8: 'fstat', 9: 'setstat', 10: 'fsetstat', 11: 'opendir', 12: 'readdir', 13: 'remove', 14: 'mkdir', 15: 'rmdir', 16: 'realpath', 17: 'stat', 18: 'rename', 19: 'readlink', 20: 'symlink', 200: 'extended', 201: 'extended_reply', 101: 'status', 102: 'handle', 103: 'data', 104: 'name', 105: 'attrs'}"><code>{1:&nbsp;'init',&nbsp;2:&nbsp;'version',&nbsp;3:&nbsp;'open',&nbsp;4:&nbsp;'clo<span class="variable-ellipsis">...</span></code>
-</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#CMD_OPEN"><code>CMD_OPEN</code></a></b> = <span title="3">3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#CMD_OPENDIR"><code>CMD_OPENDIR</code></a></b> = <span title="11">11&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#CMD_READ"><code>CMD_READ</code></a></b> = <span title="5">5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#CMD_READDIR"><code>CMD_READDIR</code></a></b> = <span title="12">12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#CMD_READLINK"><code>CMD_READLINK</code></a></b> = <span title="19">19&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#CMD_REALPATH"><code>CMD_REALPATH</code></a></b> = <span title="16">16&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#CMD_REMOVE"><code>CMD_REMOVE</code></a></b> = <span title="13">13&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#CMD_RENAME"><code>CMD_RENAME</code></a></b> = <span title="18">18&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#CMD_RMDIR"><code>CMD_RMDIR</code></a></b> = <span title="15">15&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#CMD_SETSTAT"><code>CMD_SETSTAT</code></a></b> = <span title="9">9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#CMD_STAT"><code>CMD_STAT</code></a></b> = <span title="17">17&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#CMD_STATUS"><code>CMD_STATUS</code></a></b> = <span title="101">101&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#CMD_SYMLINK"><code>CMD_SYMLINK</code></a></b> = <span title="20">20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#CMD_VERSION"><code>CMD_VERSION</code></a></b> = <span title="2">2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#CMD_WRITE"><code>CMD_WRITE</code></a></b> = <span title="6">6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#SFTP_BAD_MESSAGE"><code>SFTP_BAD_MESSAGE</code></a></b> = <span title="5">5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#SFTP_CONNECTION_LOST"><code>SFTP_CONNECTION_LOST</code></a></b> = <span title="7">7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>list</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#SFTP_DESC"><code>SFTP_DESC</code></a></b> = <span title="['Success', 'End of file', 'No such file', 'Permission denied', 'Failure', 'Bad message', 'No connection', 'Connection lost', 'Operation unsupported']"><code>['Success',&nbsp;'End&nbsp;of&nbsp;file',&nbsp;'No&nbsp;such&nbsp;file',&nbsp;'<span class="variable-ellipsis">...</span></code>
-</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#SFTP_EOF"><code>SFTP_EOF</code></a></b> = <span title="1">1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#SFTP_FAILURE"><code>SFTP_FAILURE</code></a></b> = <span title="4">4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#SFTP_FLAG_APPEND"><code>SFTP_FLAG_APPEND</code></a></b> = <span title="4">4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#SFTP_FLAG_CREATE"><code>SFTP_FLAG_CREATE</code></a></b> = <span title="8">8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#SFTP_FLAG_EXCL"><code>SFTP_FLAG_EXCL</code></a></b> = <span title="32">32&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#SFTP_FLAG_READ"><code>SFTP_FLAG_READ</code></a></b> = <span title="1">1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#SFTP_FLAG_TRUNC"><code>SFTP_FLAG_TRUNC</code></a></b> = <span title="16">16&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#SFTP_FLAG_WRITE"><code>SFTP_FLAG_WRITE</code></a></b> = <span title="2">2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#SFTP_NO_CONNECTION"><code>SFTP_NO_CONNECTION</code></a></b> = <span title="6">6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#SFTP_NO_SUCH_FILE"><code>SFTP_NO_SUCH_FILE</code></a></b> = <span title="2">2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#SFTP_OK"><code>SFTP_OK</code></a></b> = <span title="0">0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#SFTP_OP_UNSUPPORTED"><code>SFTP_OP_UNSUPPORTED</code></a></b> = <span title="8">8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
-<td><b><a href="paramiko.sftp-module.html#SFTP_PERMISSION_DENIED"><code>SFTP_PERMISSION_DENIED</code></a></b> = <span title="3">3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>
-</table><br />
-
-
-<!-- =========== START OF VARIABLE DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Variable Details</th></tr>
-</table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CMD_ATTRS"></a>
-<h3>CMD_ATTRS</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="105"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-105&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CMD_CLOSE"></a>
-<h3>CMD_CLOSE</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="4"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CMD_DATA"></a>
-<h3>CMD_DATA</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="103"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-103&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CMD_EXTENDED"></a>
-<h3>CMD_EXTENDED</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="200"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-200&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CMD_EXTENDED_REPLY"></a>
-<h3>CMD_EXTENDED_REPLY</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="201"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-201&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CMD_FSETSTAT"></a>
-<h3>CMD_FSETSTAT</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="10"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CMD_FSTAT"></a>
-<h3>CMD_FSTAT</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="8"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CMD_HANDLE"></a>
-<h3>CMD_HANDLE</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="102"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-102&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CMD_INIT"></a>
-<h3>CMD_INIT</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="1"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CMD_LSTAT"></a>
-<h3>CMD_LSTAT</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="7"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CMD_MKDIR"></a>
-<h3>CMD_MKDIR</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="14"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-14&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CMD_NAME"></a>
-<h3>CMD_NAME</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="104"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-104&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CMD_NAMES"></a>
-<h3>CMD_NAMES</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>dict</code>
-
- </dd>
-<span title="{1: 'init', 2: 'version', 3: 'open', 4: 'close', 5: 'read', 6: 'write', 7: 'lstat', 8: 'fstat', 9: 'setstat', 10: 'fsetstat', 11: 'opendir', 12: 'readdir', 13: 'remove', 14: 'mkdir', 15: 'rmdir', 16: 'realpath', 17: 'stat', 18: 'rename', 19: 'readlink', 20: 'symlink', 200: 'extended', 201: 'extended_reply', 101: 'status', 102: 'handle', 103: 'data', 104: 'name', 105: 'attrs'}"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-{1: 'init',
- 2: 'version',
- 3: 'open',
- 4: 'close',
- 5: 'read',
- 6: 'write',
- 7: 'lstat',
- 8: 'fstat',
-<span class="variable-ellipsis">...</span> </pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CMD_OPEN"></a>
-<h3>CMD_OPEN</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="3"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CMD_OPENDIR"></a>
-<h3>CMD_OPENDIR</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="11"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-11&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CMD_READ"></a>
-<h3>CMD_READ</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="5"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CMD_READDIR"></a>
-<h3>CMD_READDIR</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="12"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CMD_READLINK"></a>
-<h3>CMD_READLINK</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="19"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-19&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CMD_REALPATH"></a>
-<h3>CMD_REALPATH</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="16"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-16&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CMD_REMOVE"></a>
-<h3>CMD_REMOVE</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="13"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-13&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CMD_RENAME"></a>
-<h3>CMD_RENAME</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="18"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-18&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CMD_RMDIR"></a>
-<h3>CMD_RMDIR</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="15"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-15&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CMD_SETSTAT"></a>
-<h3>CMD_SETSTAT</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="9"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CMD_STAT"></a>
-<h3>CMD_STAT</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="17"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-17&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CMD_STATUS"></a>
-<h3>CMD_STATUS</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="101"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-101&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CMD_SYMLINK"></a>
-<h3>CMD_SYMLINK</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="20"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CMD_VERSION"></a>
-<h3>CMD_VERSION</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="2"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="CMD_WRITE"></a>
-<h3>CMD_WRITE</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="6"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="SFTP_BAD_MESSAGE"></a>
-<h3>SFTP_BAD_MESSAGE</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="5"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="SFTP_CONNECTION_LOST"></a>
-<h3>SFTP_CONNECTION_LOST</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="7"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="SFTP_DESC"></a>
-<h3>SFTP_DESC</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>list</code>
-
- </dd>
-<span title="['Success', 'End of file', 'No such file', 'Permission denied', 'Failure', 'Bad message', 'No connection', 'Connection lost', 'Operation unsupported']"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-['Success',
- 'End of file',
- 'No such file',
- 'Permission denied',
- 'Failure',
- 'Bad message',
- 'No connection',
- 'Connection lost',
-<span class="variable-ellipsis">...</span> </pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="SFTP_EOF"></a>
-<h3>SFTP_EOF</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="1"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="SFTP_FAILURE"></a>
-<h3>SFTP_FAILURE</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="4"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="SFTP_FLAG_APPEND"></a>
-<h3>SFTP_FLAG_APPEND</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="4"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="SFTP_FLAG_CREATE"></a>
-<h3>SFTP_FLAG_CREATE</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="8"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="SFTP_FLAG_EXCL"></a>
-<h3>SFTP_FLAG_EXCL</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="32"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-32&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="SFTP_FLAG_READ"></a>
-<h3>SFTP_FLAG_READ</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="1"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="SFTP_FLAG_TRUNC"></a>
-<h3>SFTP_FLAG_TRUNC</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="16"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-16&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="SFTP_FLAG_WRITE"></a>
-<h3>SFTP_FLAG_WRITE</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="2"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="SFTP_NO_CONNECTION"></a>
-<h3>SFTP_NO_CONNECTION</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="6"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="SFTP_NO_SUCH_FILE"></a>
-<h3>SFTP_NO_SUCH_FILE</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="2"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="SFTP_OK"></a>
-<h3>SFTP_OK</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="0"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="SFTP_OP_UNSUPPORTED"></a>
-<h3>SFTP_OP_UNSUPPORTED</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="8"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
-<a name="SFTP_PERMISSION_DENIED"></a>
-<h3>SFTP_PERMISSION_DENIED</h3>
-<dl>
- <dt></dt>
- <dd>
- <dl>
- <dt><b>Type:</b></dt>
- <dd>
- <code>int</code>
-
- </dd>
-<span title="3"> <dt><b>Value:</b></dt>
- <dd><table><tr><td>
-<pre class="variable">
-3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</pre>
- </td></tr></table></dd>
-</span> </dl>
- </dd>
-</dl></td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/public/paramiko.sftp_attr-module.html b/docs/public/paramiko.sftp_attr-module.html
deleted file mode 100644
index 7ff2add..0000000
--- a/docs/public/paramiko.sftp_attr-module.html
+++ /dev/null
@@ -1,59 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.sftp_attr</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Module&nbsp;sftp_attr
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<a href="../private/paramiko.sftp_attr-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.sftp_attr-module.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF MODULE DESCRIPTION =========== -->
-<h2 class="module">Module paramiko.sftp_attr</h2>
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/public/paramiko.sftp_client-module.html b/docs/public/paramiko.sftp_client-module.html
deleted file mode 100644
index a82e15f..0000000
--- a/docs/public/paramiko.sftp_client-module.html
+++ /dev/null
@@ -1,61 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.sftp_client</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Module&nbsp;sftp_client
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<a href="../private/paramiko.sftp_client-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.sftp_client-module.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF MODULE DESCRIPTION =========== -->
-<h2 class="module">Module paramiko.sftp_client</h2>
-
-Client-mode SFTP support.
-<hr/>
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/public/paramiko.sftp_file-module.html b/docs/public/paramiko.sftp_file-module.html
deleted file mode 100644
index 3d2f402..0000000
--- a/docs/public/paramiko.sftp_file-module.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.sftp_file</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Module&nbsp;sftp_file
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<a href="../private/paramiko.sftp_file-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.sftp_file-module.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF MODULE DESCRIPTION =========== -->
-<h2 class="module">Module paramiko.sftp_file</h2>
-
-<a href="paramiko.SFTPFile-class.html"
-class="link"><code>SFTPFile</code></a>
-<hr/>
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/public/paramiko.sftp_handle-module.html b/docs/public/paramiko.sftp_handle-module.html
deleted file mode 100644
index 2a75e59..0000000
--- a/docs/public/paramiko.sftp_handle-module.html
+++ /dev/null
@@ -1,61 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.sftp_handle</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Module&nbsp;sftp_handle
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<a href="../private/paramiko.sftp_handle-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.sftp_handle-module.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF MODULE DESCRIPTION =========== -->
-<h2 class="module">Module paramiko.sftp_handle</h2>
-
-Abstraction of an SFTP file handle (for server mode).
-<hr/>
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/public/paramiko.sftp_server-module.html b/docs/public/paramiko.sftp_server-module.html
deleted file mode 100644
index 06183af..0000000
--- a/docs/public/paramiko.sftp_server-module.html
+++ /dev/null
@@ -1,61 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.sftp_server</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Module&nbsp;sftp_server
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<a href="../private/paramiko.sftp_server-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.sftp_server-module.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF MODULE DESCRIPTION =========== -->
-<h2 class="module">Module paramiko.sftp_server</h2>
-
-Server-mode SFTP support.
-<hr/>
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/public/paramiko.sftp_si-module.html b/docs/public/paramiko.sftp_si-module.html
deleted file mode 100644
index 121d97e..0000000
--- a/docs/public/paramiko.sftp_si-module.html
+++ /dev/null
@@ -1,63 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.sftp_si</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Module&nbsp;sftp_si
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<a href="../private/paramiko.sftp_si-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.sftp_si-module.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF MODULE DESCRIPTION =========== -->
-<h2 class="module">Module paramiko.sftp_si</h2>
-
-<a href="../private/paramiko.SFTPServerInterface-class.html"
-class="link"><code>SFTPServerInterface</code></a> is an interface to
-override for SFTP server support.
-<hr/>
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:48 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/public/paramiko.transport-module.html b/docs/public/paramiko.transport-module.html
deleted file mode 100644
index 42d378f..0000000
--- a/docs/public/paramiko.transport-module.html
+++ /dev/null
@@ -1,63 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.transport</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Module&nbsp;transport
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<a href="../private/paramiko.transport-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.transport-module.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF MODULE DESCRIPTION =========== -->
-<h2 class="module">Module paramiko.transport</h2>
-
-<a href="paramiko.Transport-class.html"
-class="link"><code>Transport</code></a> handles the core SSH2
-protocol.
-<hr/>
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/public/paramiko.util-module.html b/docs/public/paramiko.util-module.html
deleted file mode 100644
index a7ad4cd..0000000
--- a/docs/public/paramiko.util-module.html
+++ /dev/null
@@ -1,369 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- Module&nbsp;util
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<a href="../private/paramiko.util-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.util-module.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF MODULE DESCRIPTION =========== -->
-<h2 class="module">Module paramiko.util</h2>
-
-Useful functions used by the rest of paramiko.
-<hr/>
-
-<!-- =========== START OF CLASSES =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Classes</th></tr>
-<tr><td width="15%">
- <b><a href="paramiko.util.PFilter-class.html"><code>PFilter</code></a></b></td>
- <td>&nbsp;</td></tr>
-</table><br />
-
-
-<!-- =========== START OF FUNCTION SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Function Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="bit_length"></a><span class="summary-sig"><span class="summary-sig-name">bit_length</span>(<span class=summary-sig-arg>n</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.util-module.html#deflate_long" class="summary-sig-name"><code>deflate_long</code></a>(<span class=summary-sig-arg>n</span>,
- <span class=summary-sig-arg>add_sign_padding</span>)</span></code>
-<br />
-turns a long-int into a normalized byte string (adapted from
-Crypto.Util.number)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="format_binary"></a><span class="summary-sig"><span class="summary-sig-name">format_binary</span>(<span class=summary-sig-arg>data</span>,
- <span class=summary-sig-arg>prefix</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="format_binary_line"></a><span class="summary-sig"><span class="summary-sig-name">format_binary_line</span>(<span class=summary-sig-arg>data</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="format_binary_weird"></a><span class="summary-sig"><span class="summary-sig-name">format_binary_weird</span>(<span class=summary-sig-arg>data</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> string
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.util-module.html#generate_key_bytes" class="summary-sig-name"><code>generate_key_bytes</code></a>(<span class=summary-sig-arg>hashclass</span>,
- <span class=summary-sig-arg>salt</span>,
- <span class=summary-sig-arg>key</span>,
- <span class=summary-sig-arg>nbytes</span>)</span></code>
-<br />
-Given a password, passphrase, or other human-source key, scramble it
-through a secure hash into some keyworthy bytes.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="get_logger"></a><span class="summary-sig"><span class="summary-sig-name">get_logger</span>(<span class=summary-sig-arg>name</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="get_thread_id"></a><span class="summary-sig"><span class="summary-sig-name">get_thread_id</span>()</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.util-module.html#hexify" class="summary-sig-name"><code>hexify</code></a>(<span class=summary-sig-arg>s</span>)</span></code>
-<br />
-turn a string into a hex sequence</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.util-module.html#inflate_long" class="summary-sig-name"><code>inflate_long</code></a>(<span class=summary-sig-arg>s</span>,
- <span class=summary-sig-arg>always_positive</span>)</span></code>
-<br />
-turns a normalized byte string into a long-int (adapted from
-Crypto.Util.number)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> dict(hostname, dict(keytype, <a
- href="../private/paramiko.PKey-class.html"
- class="link"><code>PKey</code></a>))
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.util-module.html#load_host_keys" class="summary-sig-name"><code>load_host_keys</code></a>(<span class=summary-sig-arg>filename</span>)</span></code>
-<br />
-Read a file of known SSH host keys, in the format used by openssh, and
-return a compound dict of <code>hostname -&gt; keytype -&gt;</code> <a
-href="../private/paramiko.PKey-class.html"
-class="link"><code>PKey</code></a>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.util-module.html#log_to_file" class="summary-sig-name"><code>log_to_file</code></a>(<span class=summary-sig-arg>filename</span>,
- <span class=summary-sig-arg>level</span>)</span></code>
-<br />
-send paramiko logs to a logfile, if they're not already going
-somewhere</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.util-module.html#lookup_ssh_host_config" class="summary-sig-name"><code>lookup_ssh_host_config</code></a>(<span class=summary-sig-arg>hostname</span>,
- <span class=summary-sig-arg>config</span>)</span></code>
-<br />
-Return a dict of config options for a given hostname.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="mod_inverse"></a><span class="summary-sig"><span class="summary-sig-name">mod_inverse</span>(<span class=summary-sig-arg>x</span>,
- <span class=summary-sig-arg>m</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1"> object
-</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.util-module.html#parse_ssh_config" class="summary-sig-name"><code>parse_ssh_config</code></a>(<span class=summary-sig-arg>file_obj</span>)</span></code>
-<br />
-Parse a config file of the format used by OpenSSH, and return an
-object that can be used to make queries to <a
-href="paramiko.util-module.html#lookup_ssh_host_config"
-class="link"><code>lookup_ssh_host_config</code></a>.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="safe_string"></a><span class="summary-sig"><span class="summary-sig-name">safe_string</span>(<span class=summary-sig-arg>s</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="tb_strings"></a><span class="summary-sig"><span class="summary-sig-name">tb_strings</span>()</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="paramiko.util-module.html#unhexify" class="summary-sig-name"><code>unhexify</code></a>(<span class=summary-sig-arg>s</span>)</span></code>
-<br />
-turn a hex sequence back into a string</td></tr>
-</table><br />
-
-
-<!-- =========== START OF FUNCTION DETAILS =========== -->
-<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="details">
- <th colspan="2">Function Details</th></tr>
-</table>
-
-<a name="deflate_long"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">deflate_long</span>(<span class=sig-arg>n</span>,
- <span class=sig-arg>add_sign_padding</span>=<span class=sig-default>True</span>)</span>
- </h3>
- turns a long-int into a normalized byte string (adapted from
- Crypto.Util.number)
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-
-<a name="generate_key_bytes"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">generate_key_bytes</span>(<span class=sig-arg>hashclass</span>,
- <span class=sig-arg>salt</span>,
- <span class=sig-arg>key</span>,
- <span class=sig-arg>nbytes</span>)</span>
- </h3>
- Given a password, passphrase, or other human-source key, scramble it
- through a secure hash into some keyworthy bytes. This specific
- algorithm is used for encrypting/decrypting private key files.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>hashclass</b></code> -
- class from <code>Crypto.Hash</code> that can be used as a
- secure hashing function (like <code>MD5</code> or
- <code>SHA</code>).
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=<code>Crypto.Hash</code>)</i>
- <dd><code><b>salt</b></code> -
- data to salt the hash with.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- <dd><code><b>key</b></code> -
- human-entered password or passphrase.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- <dd><code><b>nbytes</b></code> -
- number of bytes to generate.
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=int)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- key data
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=string)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="hexify"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">hexify</span>(<span class=sig-arg>s</span>)</span>
- </h3>
- turn a string into a hex sequence
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-
-<a name="inflate_long"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">inflate_long</span>(<span class=sig-arg>s</span>,
- <span class=sig-arg>always_positive</span>=<span class=sig-default>False</span>)</span>
- </h3>
- turns a normalized byte string into a long-int (adapted from
- Crypto.Util.number)
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-
-<a name="load_host_keys"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">load_host_keys</span>(<span class=sig-arg>filename</span>)</span>
- </h3>
- <p>Read a file of known SSH host keys, in the format used by openssh,
- and return a compound dict of <code>hostname -&gt; keytype -&gt;</code>
- <a href="../private/paramiko.PKey-class.html"
- class="link"><code>PKey</code></a>. The hostname may be an IP address
- or DNS name. The keytype will be either
- <code>&quot;ssh-rsa&quot;</code> or
- <code>&quot;ssh-dss&quot;</code>.</p>
- This type of file unfortunately doesn't exist on Windows, but on
- posix, it will usually be stored in
- <code>os.path.expanduser(&quot;~/.ssh/known_hosts&quot;)</code>.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>filename</b></code> -
- name of the file to read host keys from
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- dict of host keys, indexed by hostname and then keytype
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=dict(hostname, dict(keytype, <a
- href="../private/paramiko.PKey-class.html"
- class="link"><code>PKey</code></a>)))</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="log_to_file"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">log_to_file</span>(<span class=sig-arg>filename</span>,
- <span class=sig-arg>level</span>=<span class=sig-default>10</span>)</span>
- </h3>
- send paramiko logs to a logfile, if they're not already going
- somewhere
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-
-<a name="lookup_ssh_host_config"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">lookup_ssh_host_config</span>(<span class=sig-arg>hostname</span>,
- <span class=sig-arg>config</span>)</span>
- </h3>
- <p>Return a dict of config options for a given hostname. The
- <code>config</code> object must come from <a
- href="paramiko.util-module.html#parse_ssh_config"
- class="link"><code>parse_ssh_config</code></a>.</p>
- <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
- *.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>
- 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 other processing is done to the keys or values.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>hostname</b></code> -
- the hostname to lookup
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=str)</i>
- <dd><code><b>config</b></code> -
- the config object to search
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=object)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="parse_ssh_config"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">parse_ssh_config</span>(<span class=sig-arg>file_obj</span>)</span>
- </h3>
- <p>Parse a config file of the format used by OpenSSH, and return an
- object that can be used to make queries to <a
- href="paramiko.util-module.html#lookup_ssh_host_config"
- class="link"><code>lookup_ssh_host_config</code></a>. The format is
- described in OpenSSH's <code>ssh_config</code> man page. This method 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>
- The return value is currently a list of dictionaries, each
- containing host-specific configuration, but this is considered an
- implementation detail and may be subject to change in later
- versions.
- <dl><dt></dt><dd>
- <dl><dt><b>Parameters:</b></dt>
- <dd><code><b>file_obj</b></code> -
- a file-like object to read the config file from
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=file)</i>
- </dd>
- </dl>
- <dl><dt><b>Returns:</b></dt>
- <dd>
- opaque configuration object
- <br /><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- (type=object)</i>
- </dd>
- </dl>
- </dd></dl>
-</td></tr></table>
-
-<a name="unhexify"></a>
-<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
- <h3><span class="sig"><span class="sig-name">unhexify</span>(<span class=sig-arg>s</span>)</span>
- </h3>
- turn a hex sequence back into a string
- <dl><dt></dt><dd>
- </dd></dl>
-</td></tr></table>
-<br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:48 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/public/paramiko.util.PFilter-class.html b/docs/public/paramiko.util.PFilter-class.html
deleted file mode 100644
index f1e8059..0000000
--- a/docs/public/paramiko.util.PFilter-class.html
+++ /dev/null
@@ -1,124 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.PFilter</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- <a href="paramiko-module.html">Package&nbsp;paramiko</a> ::
- <a href="paramiko.util-module.html">Module&nbsp;util</a> ::
- Class&nbsp;PFilter
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<a href="../private/paramiko.util.PFilter-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="paramiko.util.PFilter-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type PFilter</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
- <b>PFilter</b>
-</pre><br />
-
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="filter"></a><span class="summary-sig"><span class="summary-sig-name">filter</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>record</span>)</span></code>
-</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__init__(...) initializes x; see x.__class__.__doc__ for
-signature</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__repr__" class="summary-sig-name"><code>__repr__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__repr__() &lt;==&gt; repr(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__str__() &lt;==&gt; str(x)</td></tr>
-</table><br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:48 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/public/threading.Thread-class.html b/docs/public/threading.Thread-class.html
deleted file mode 100644
index 951099e..0000000
--- a/docs/public/threading.Thread-class.html
+++ /dev/null
@@ -1,161 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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>threading.Thread</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- <font size="-1"><b class="breadcrumbs">
- Module&nbsp;threading ::
- Class&nbsp;Thread
- </b></font></br>
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<a href="../private/threading.Thread-class.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="threading.Thread-class.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF CLASS DESCRIPTION =========== -->
-<h2 class="class">Type Thread</h2>
-
-<pre class="base-tree">
-<a href="__builtin__.object-class.html"><code>object</code></a> --+
- |
- <a href="../private/threading._Verbose-class.html"><code>_Verbose</code></a> --+
- |
- <b>Thread</b>
-</pre><br />
-
-<dl><dt><b>Known Subclasses:</b></dt>
-<dd>
- <a href="paramiko.SubsystemHandler-class.html"><code>SubsystemHandler</code></a>,
- <a href="paramiko.Transport-class.html"><code>Transport</code></a></dd></dl>
-
-<hr/>
-
-
-<!-- =========== START OF METHOD SUMMARY =========== -->
-<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
-<tr bgcolor="#70b0f0" class="summary">
- <th colspan="2">Method Summary</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__init__"></a><span class="summary-sig"><span class="summary-sig-name">__init__</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>group</span>,
- <span class=summary-sig-arg>target</span>,
- <span class=summary-sig-arg>name</span>,
- <span class=summary-sig-arg>args</span>,
- <span class=summary-sig-arg>kwargs</span>,
- <span class=summary-sig-arg>verbose</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">(type, value, traceback)</font></td>
- <td><code><span class="summary-sig"><code>__exc_info</code>()</span></code>
-<br />
-Return information about the most recent exception caught by an except
-clause in the current stack frame or in an older stack frame.</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="__repr__"></a><span class="summary-sig"><span class="summary-sig-name">__repr__</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="getName"></a><span class="summary-sig"><span class="summary-sig-name">getName</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="isAlive"></a><span class="summary-sig"><span class="summary-sig-name">isAlive</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="isDaemon"></a><span class="summary-sig"><span class="summary-sig-name">isDaemon</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="join"></a><span class="summary-sig"><span class="summary-sig-name">join</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>timeout</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="run"></a><span class="summary-sig"><span class="summary-sig-name">run</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="setDaemon"></a><span class="summary-sig"><span class="summary-sig-name">setDaemon</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>daemonic</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="setName"></a><span class="summary-sig"><span class="summary-sig-name">setName</span>(<span class=summary-sig-arg>self</span>,
- <span class=summary-sig-arg>name</span>)</span></code>
-</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><a name="start"></a><span class="summary-sig"><span class="summary-sig-name">start</span>(<span class=summary-sig-arg>self</span>)</span></code>
-</td></tr>
-<tr bgcolor="#e8f0f8" class="group">
- <th colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;Inherited from object</th></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__delattr__" class="summary-sig-name"><code>__delattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__delattr__('name') &lt;==&gt; del x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__getattribute__" class="summary-sig-name"><code>__getattribute__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__getattribute__('name') &lt;==&gt; x.name</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__hash__" class="summary-sig-name"><code>__hash__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__hash__() &lt;==&gt; hash(x)</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__new__" class="summary-sig-name"><code>__new__</code></a>(<span class=summary-sig-arg>T</span>,
- <span class=summary-sig-arg>S</span>,
- <span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-T.__new__(S, ...) -&gt; a new object with type S, a subtype of T</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce__" class="summary-sig-name"><code>__reduce__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__reduce_ex__" class="summary-sig-name"><code>__reduce_ex__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-helper for pickle</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__setattr__" class="summary-sig-name"><code>__setattr__</code></a>(<span class="summary-sig-vararg">...</span>)</span></code>
-<br />
-x.__setattr__('name', value) &lt;==&gt; x.name = value</td></tr>
-<tr><td align="right" valign="top" width="15%"><font size="-1">&nbsp;</font></td>
- <td><code><span class="summary-sig"><a href="__builtin__.object-class.html#__str__" class="summary-sig-name"><code>__str__</code></a>(<span class=summary-sig-arg>x</span>)</span></code>
-<br />
-x.__str__() &lt;==&gt; str(x)</td></tr>
-</table><br />
-
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:47 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/public/toc-everything.html b/docs/public/toc-everything.html
deleted file mode 100644
index e699f06..0000000
--- a/docs/public/toc-everything.html
+++ /dev/null
@@ -1,121 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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>Everything</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-<center><font size="+1"><b>Everything</b></font></center>
-<hr>
-
-<!-- =========== START OF ALL CLASSES =========== -->
-<font size="+1"><b>All&nbsp;Classes</b></font><br />
-<a target="mainFrame" href="paramiko.Agent-class.html">paramiko.Agent</a><br />
-<a target="mainFrame" href="paramiko.AgentKey-class.html">paramiko.AgentKey</a><br />
-<a target="mainFrame" href="paramiko.BufferedFile-class.html">paramiko.BufferedFile</a><br />
-<a target="mainFrame" href="paramiko.Channel-class.html">paramiko.Channel</a><br />
-<a target="mainFrame" href="paramiko.DSSKey-class.html">paramiko.DSSKey</a><br />
-<a target="mainFrame" href="paramiko.Message-class.html">paramiko.Message</a><br />
-<a target="mainFrame" href="paramiko.RSAKey-class.html">paramiko.RSAKey</a><br />
-<a target="mainFrame" href="paramiko.SecurityOptions-class.html">paramiko.SecurityOptions</a><br />
-<a target="mainFrame" href="paramiko.server.InteractiveQuery-class.html">paramiko.server.InteractiveQuery</a><br />
-<a target="mainFrame" href="paramiko.SFTP-class.html">paramiko.SFTP</a><br />
-<a target="mainFrame" href="paramiko.SFTPAttributes-class.html">paramiko.SFTPAttributes</a><br />
-<a target="mainFrame" href="paramiko.SFTPClient-class.html">paramiko.SFTPClient</a><br />
-<a target="mainFrame" href="paramiko.SFTPFile-class.html">paramiko.SFTPFile</a><br />
-<a target="mainFrame" href="paramiko.SFTPHandle-class.html">paramiko.SFTPHandle</a><br />
-<a target="mainFrame" href="paramiko.SFTPServer-class.html">paramiko.SFTPServer</a><br />
-<a target="mainFrame" href="paramiko.SubsystemHandler-class.html">paramiko.SubsystemHandler</a><br />
-<a target="mainFrame" href="paramiko.Transport-class.html">paramiko.Transport</a><br />
-<a target="mainFrame" href="paramiko.util.PFilter-class.html">paramiko.util.PFilter</a><br />
-<br />
-
-<!-- =========== START OF ALL EXCEPTIONS =========== -->
-<font size="+1"><b>All&nbsp;Exceptions</b></font><br />
-<a target="mainFrame" href="paramiko.BadAuthenticationType-class.html">paramiko.BadAuthenticationType</a><br />
-<a target="mainFrame" href="paramiko.PasswordRequiredException-class.html">paramiko.PasswordRequiredException</a><br />
-<a target="mainFrame" href="paramiko.SFTPError-class.html">paramiko.SFTPError</a><br />
-<a target="mainFrame" href="paramiko.SSHException-class.html">paramiko.SSHException</a><br />
-<br />
-
-<!-- =========== START OF ALL FUNCTIONS =========== -->
-<font size="+1"><b>All&nbsp;Functions</b></font><br />
-<a target="mainFrame" href="paramiko.util-module.html#bit_length">bit_length</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#deflate_long">deflate_long</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#format_binary">format_binary</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#format_binary_line">format_binary_line</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#format_binary_weird">format_binary_weird</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#generate_key_bytes">generate_key_bytes</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#get_logger">get_logger</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#get_thread_id">get_thread_id</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#hexify">hexify</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#inflate_long">inflate_long</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#load_host_keys">load_host_keys</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#log_to_file">log_to_file</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#lookup_ssh_host_config">lookup_ssh_host_config</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#mod_inverse">mod_inverse</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#parse_ssh_config">parse_ssh_config</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#safe_string">safe_string</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#tb_strings">tb_strings</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#unhexify">unhexify</a><br />
-<br />
-
-<!-- =========== START OF ALL VARIABLES =========== -->
-<font size="+1"><b>All&nbsp;Variables</b></font><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_ATTRS">CMD_ATTRS</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_CLOSE">CMD_CLOSE</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_DATA">CMD_DATA</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_EXTENDED">CMD_EXTENDED</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_EXTENDED_REPLY">CMD_EXTENDED_REPLY</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_FSETSTAT">CMD_FSETSTAT</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_FSTAT">CMD_FSTAT</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_HANDLE">CMD_HANDLE</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_INIT">CMD_INIT</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_LSTAT">CMD_LSTAT</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_MKDIR">CMD_MKDIR</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_NAME">CMD_NAME</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_NAMES">CMD_NAMES</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_OPEN">CMD_OPEN</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_OPENDIR">CMD_OPENDIR</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_READ">CMD_READ</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_READDIR">CMD_READDIR</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_READLINK">CMD_READLINK</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_REALPATH">CMD_REALPATH</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_REMOVE">CMD_REMOVE</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_RENAME">CMD_RENAME</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_RMDIR">CMD_RMDIR</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_SETSTAT">CMD_SETSTAT</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_STAT">CMD_STAT</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_STATUS">CMD_STATUS</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_SYMLINK">CMD_SYMLINK</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_VERSION">CMD_VERSION</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_WRITE">CMD_WRITE</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_BAD_MESSAGE">SFTP_BAD_MESSAGE</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_CONNECTION_LOST">SFTP_CONNECTION_LOST</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_DESC">SFTP_DESC</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_EOF">SFTP_EOF</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_FAILURE">SFTP_FAILURE</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_FLAG_APPEND">SFTP_FLAG_APPEND</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_FLAG_CREATE">SFTP_FLAG_CREATE</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_FLAG_EXCL">SFTP_FLAG_EXCL</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_FLAG_READ">SFTP_FLAG_READ</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_FLAG_TRUNC">SFTP_FLAG_TRUNC</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_FLAG_WRITE">SFTP_FLAG_WRITE</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_NO_CONNECTION">SFTP_NO_CONNECTION</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_NO_SUCH_FILE">SFTP_NO_SUCH_FILE</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_OK">SFTP_OK</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_OP_UNSUPPORTED">SFTP_OP_UNSUPPORTED</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_PERMISSION_DENIED">SFTP_PERMISSION_DENIED</a><br />
-<a target="mainFrame" href="paramiko.agent-module.html#SSH2_AGENT_IDENTITIES_ANSWER">SSH2_AGENT_IDENTITIES_ANSWER</a><br />
-<a target="mainFrame" href="paramiko.agent-module.html#SSH2_AGENT_SIGN_RESPONSE">SSH2_AGENT_SIGN_RESPONSE</a><br />
-<a target="mainFrame" href="paramiko.agent-module.html#SSH2_AGENTC_REQUEST_IDENTITIES">SSH2_AGENTC_REQUEST_IDENTITIES</a><br />
-<a target="mainFrame" href="paramiko.agent-module.html#SSH2_AGENTC_SIGN_REQUEST">SSH2_AGENTC_SIGN_REQUEST</a><br />
-<br />
-
-<hr>
-<font size="-2">[<a href="../private/toc-everything.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font>
-</body>
-</html>
diff --git a/docs/public/toc-paramiko-module.html b/docs/public/toc-paramiko-module.html
deleted file mode 100644
index 7353601..0000000
--- a/docs/public/toc-paramiko-module.html
+++ /dev/null
@@ -1,69 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-<center><font size="+1"><b><a target="mainFrame" href="paramiko-module.html">paramiko</a></b></font></center>
-<hr>
-
-<!-- =========== START OF MODULES =========== -->
-<font size="+1"><b>Modules</b></font><br />
-<a target="mainFrame" href="paramiko.agent-module.html">agent</a><br />
-<a target="mainFrame" href="paramiko.dsskey-module.html">dsskey</a><br />
-<a target="mainFrame" href="paramiko.file-module.html">file</a><br />
-<a target="mainFrame" href="paramiko.message-module.html">message</a><br />
-<a target="mainFrame" href="paramiko.pkey-module.html">pkey</a><br />
-<a target="mainFrame" href="paramiko.rsakey-module.html">rsakey</a><br />
-<a target="mainFrame" href="paramiko.server-module.html">server</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html">sftp</a><br />
-<a target="mainFrame" href="paramiko.sftp_attr-module.html">sftp_attr</a><br />
-<a target="mainFrame" href="paramiko.sftp_client-module.html">sftp_client</a><br />
-<a target="mainFrame" href="paramiko.sftp_file-module.html">sftp_file</a><br />
-<a target="mainFrame" href="paramiko.sftp_handle-module.html">sftp_handle</a><br />
-<a target="mainFrame" href="paramiko.sftp_server-module.html">sftp_server</a><br />
-<a target="mainFrame" href="paramiko.sftp_si-module.html">sftp_si</a><br />
-<a target="mainFrame" href="paramiko.transport-module.html">transport</a><br />
-<a target="mainFrame" href="paramiko.util-module.html">util</a><br />
-<br />
-
-<!-- =========== START OF CLASSES =========== -->
-<font size="+1"><b>Classes</b></font><br />
-<a target="mainFrame" href="paramiko.Agent-class.html">Agent</a><br />
-<a target="mainFrame" href="paramiko.AgentKey-class.html">AgentKey</a><br />
-<a target="mainFrame" href="paramiko.BufferedFile-class.html">BufferedFile</a><br />
-<a target="mainFrame" href="paramiko.Channel-class.html">Channel</a><br />
-<a target="mainFrame" href="paramiko.DSSKey-class.html">DSSKey</a><br />
-<a target="mainFrame" href="paramiko.Message-class.html">Message</a><br />
-<a target="mainFrame" href="paramiko.RSAKey-class.html">RSAKey</a><br />
-<a target="mainFrame" href="paramiko.SecurityOptions-class.html">SecurityOptions</a><br />
-<a target="mainFrame" href="paramiko.SFTP-class.html">SFTP</a><br />
-<a target="mainFrame" href="paramiko.SFTPAttributes-class.html">SFTPAttributes</a><br />
-<a target="mainFrame" href="paramiko.SFTPClient-class.html">SFTPClient</a><br />
-<a target="mainFrame" href="paramiko.SFTPFile-class.html">SFTPFile</a><br />
-<a target="mainFrame" href="paramiko.SFTPHandle-class.html">SFTPHandle</a><br />
-<a target="mainFrame" href="paramiko.SFTPServer-class.html">SFTPServer</a><br />
-<a target="mainFrame" href="paramiko.SubsystemHandler-class.html">SubsystemHandler</a><br />
-<a target="mainFrame" href="paramiko.Transport-class.html">Transport</a><br />
-<br />
-
-<!-- =========== START OF EXCEPTIONS =========== -->
-<font size="+1"><b>Exceptions</b></font><br />
-<a target="mainFrame" href="paramiko.BadAuthenticationType-class.html">BadAuthenticationType</a><br />
-<a target="mainFrame" href="paramiko.PasswordRequiredException-class.html">PasswordRequiredException</a><br />
-<a target="mainFrame" href="paramiko.SFTPError-class.html">SFTPError</a><br />
-<a target="mainFrame" href="paramiko.SSHException-class.html">SSHException</a><br />
-<br />
-
-<!-- =========== START OF VARIABLES =========== -->
-<font size="+1"><b>Variables</b></font><br />
-<br />
-
-<hr>
-<font size="-2">[<a href="../private/toc-paramiko-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font>
-</body>
-</html>
diff --git a/docs/public/toc-paramiko.agent-module.html b/docs/public/toc-paramiko.agent-module.html
deleted file mode 100644
index 543e5af..0000000
--- a/docs/public/toc-paramiko.agent-module.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.agent</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-<center><font size="+1"><b><a target="mainFrame" href="paramiko.agent-module.html">agent</a></b></font></center>
-<hr>
-
-<!-- =========== START OF VARIABLES =========== -->
-<font size="+1"><b>Variables</b></font><br />
-<a target="mainFrame" href="paramiko.agent-module.html#SSH2_AGENT_IDENTITIES_ANSWER">SSH2_AGENT_IDENTITIES_ANSWER</a><br />
-<a target="mainFrame" href="paramiko.agent-module.html#SSH2_AGENT_SIGN_RESPONSE">SSH2_AGENT_SIGN_RESPONSE</a><br />
-<a target="mainFrame" href="paramiko.agent-module.html#SSH2_AGENTC_REQUEST_IDENTITIES">SSH2_AGENTC_REQUEST_IDENTITIES</a><br />
-<a target="mainFrame" href="paramiko.agent-module.html#SSH2_AGENTC_SIGN_REQUEST">SSH2_AGENTC_SIGN_REQUEST</a><br />
-<br />
-
-<hr>
-<font size="-2">[<a href="../private/toc-paramiko.agent-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font>
-</body>
-</html>
diff --git a/docs/public/toc-paramiko.dsskey-module.html b/docs/public/toc-paramiko.dsskey-module.html
deleted file mode 100644
index 7f5fddb..0000000
--- a/docs/public/toc-paramiko.dsskey-module.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.dsskey</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-<center><font size="+1"><b><a target="mainFrame" href="paramiko.dsskey-module.html">dsskey</a></b></font></center>
-<hr>
-
-<hr>
-<font size="-2">[<a href="../private/toc-paramiko.dsskey-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font>
-</body>
-</html>
diff --git a/docs/public/toc-paramiko.file-module.html b/docs/public/toc-paramiko.file-module.html
deleted file mode 100644
index 9c02537..0000000
--- a/docs/public/toc-paramiko.file-module.html
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.file</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-<center><font size="+1"><b><a target="mainFrame" href="paramiko.file-module.html">file</a></b></font></center>
-<hr>
-
-<!-- =========== START OF VARIABLES =========== -->
-<font size="+1"><b>Variables</b></font><br />
-<br />
-
-<hr>
-<font size="-2">[<a href="../private/toc-paramiko.file-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font>
-</body>
-</html>
diff --git a/docs/public/toc-paramiko.message-module.html b/docs/public/toc-paramiko.message-module.html
deleted file mode 100644
index 14ecd78..0000000
--- a/docs/public/toc-paramiko.message-module.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.message</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-<center><font size="+1"><b><a target="mainFrame" href="paramiko.message-module.html">message</a></b></font></center>
-<hr>
-
-<hr>
-<font size="-2">[<a href="../private/toc-paramiko.message-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font>
-</body>
-</html>
diff --git a/docs/public/toc-paramiko.pkey-module.html b/docs/public/toc-paramiko.pkey-module.html
deleted file mode 100644
index a2c0c5b..0000000
--- a/docs/public/toc-paramiko.pkey-module.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.pkey</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-<center><font size="+1"><b><a target="mainFrame" href="paramiko.pkey-module.html">pkey</a></b></font></center>
-<hr>
-
-<hr>
-<font size="-2">[<a href="../private/toc-paramiko.pkey-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font>
-</body>
-</html>
diff --git a/docs/public/toc-paramiko.rsakey-module.html b/docs/public/toc-paramiko.rsakey-module.html
deleted file mode 100644
index ceceb19..0000000
--- a/docs/public/toc-paramiko.rsakey-module.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.rsakey</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-<center><font size="+1"><b><a target="mainFrame" href="paramiko.rsakey-module.html">rsakey</a></b></font></center>
-<hr>
-
-<hr>
-<font size="-2">[<a href="../private/toc-paramiko.rsakey-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font>
-</body>
-</html>
diff --git a/docs/public/toc-paramiko.server-module.html b/docs/public/toc-paramiko.server-module.html
deleted file mode 100644
index c01d6d6..0000000
--- a/docs/public/toc-paramiko.server-module.html
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.server</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-<center><font size="+1"><b><a target="mainFrame" href="paramiko.server-module.html">server</a></b></font></center>
-<hr>
-
-<!-- =========== START OF CLASSES =========== -->
-<font size="+1"><b>Classes</b></font><br />
-<a target="mainFrame" href="paramiko.server.InteractiveQuery-class.html">InteractiveQuery</a><br />
-<br />
-
-<hr>
-<font size="-2">[<a href="../private/toc-paramiko.server-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font>
-</body>
-</html>
diff --git a/docs/public/toc-paramiko.sftp-module.html b/docs/public/toc-paramiko.sftp-module.html
deleted file mode 100644
index 52f03a3..0000000
--- a/docs/public/toc-paramiko.sftp-module.html
+++ /dev/null
@@ -1,65 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.sftp</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-<center><font size="+1"><b><a target="mainFrame" href="paramiko.sftp-module.html">sftp</a></b></font></center>
-<hr>
-
-<!-- =========== START OF VARIABLES =========== -->
-<font size="+1"><b>Variables</b></font><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_ATTRS">CMD_ATTRS</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_CLOSE">CMD_CLOSE</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_DATA">CMD_DATA</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_EXTENDED">CMD_EXTENDED</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_EXTENDED_REPLY">CMD_EXTENDED_REPLY</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_FSETSTAT">CMD_FSETSTAT</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_FSTAT">CMD_FSTAT</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_HANDLE">CMD_HANDLE</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_INIT">CMD_INIT</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_LSTAT">CMD_LSTAT</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_MKDIR">CMD_MKDIR</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_NAME">CMD_NAME</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_NAMES">CMD_NAMES</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_OPEN">CMD_OPEN</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_OPENDIR">CMD_OPENDIR</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_READ">CMD_READ</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_READDIR">CMD_READDIR</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_READLINK">CMD_READLINK</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_REALPATH">CMD_REALPATH</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_REMOVE">CMD_REMOVE</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_RENAME">CMD_RENAME</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_RMDIR">CMD_RMDIR</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_SETSTAT">CMD_SETSTAT</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_STAT">CMD_STAT</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_STATUS">CMD_STATUS</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_SYMLINK">CMD_SYMLINK</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_VERSION">CMD_VERSION</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#CMD_WRITE">CMD_WRITE</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_BAD_MESSAGE">SFTP_BAD_MESSAGE</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_CONNECTION_LOST">SFTP_CONNECTION_LOST</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_DESC">SFTP_DESC</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_EOF">SFTP_EOF</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_FAILURE">SFTP_FAILURE</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_FLAG_APPEND">SFTP_FLAG_APPEND</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_FLAG_CREATE">SFTP_FLAG_CREATE</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_FLAG_EXCL">SFTP_FLAG_EXCL</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_FLAG_READ">SFTP_FLAG_READ</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_FLAG_TRUNC">SFTP_FLAG_TRUNC</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_FLAG_WRITE">SFTP_FLAG_WRITE</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_NO_CONNECTION">SFTP_NO_CONNECTION</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_NO_SUCH_FILE">SFTP_NO_SUCH_FILE</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_OK">SFTP_OK</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_OP_UNSUPPORTED">SFTP_OP_UNSUPPORTED</a><br />
-<a target="mainFrame" href="paramiko.sftp-module.html#SFTP_PERMISSION_DENIED">SFTP_PERMISSION_DENIED</a><br />
-<br />
-
-<hr>
-<font size="-2">[<a href="../private/toc-paramiko.sftp-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font>
-</body>
-</html>
diff --git a/docs/public/toc-paramiko.sftp_attr-module.html b/docs/public/toc-paramiko.sftp_attr-module.html
deleted file mode 100644
index 080044e..0000000
--- a/docs/public/toc-paramiko.sftp_attr-module.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.sftp_attr</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-<center><font size="+1"><b><a target="mainFrame" href="paramiko.sftp_attr-module.html">sftp_attr</a></b></font></center>
-<hr>
-
-<hr>
-<font size="-2">[<a href="../private/toc-paramiko.sftp_attr-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font>
-</body>
-</html>
diff --git a/docs/public/toc-paramiko.sftp_client-module.html b/docs/public/toc-paramiko.sftp_client-module.html
deleted file mode 100644
index 7bf1ad8..0000000
--- a/docs/public/toc-paramiko.sftp_client-module.html
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.sftp_client</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-<center><font size="+1"><b><a target="mainFrame" href="paramiko.sftp_client-module.html">sftp_client</a></b></font></center>
-<hr>
-
-<!-- =========== START OF FUNCTIONS =========== -->
-<font size="+1"><b>Functions</b></font><br />
-<br />
-
-<hr>
-<font size="-2">[<a href="../private/toc-paramiko.sftp_client-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font>
-</body>
-</html>
diff --git a/docs/public/toc-paramiko.sftp_file-module.html b/docs/public/toc-paramiko.sftp_file-module.html
deleted file mode 100644
index aee1350..0000000
--- a/docs/public/toc-paramiko.sftp_file-module.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.sftp_file</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-<center><font size="+1"><b><a target="mainFrame" href="paramiko.sftp_file-module.html">sftp_file</a></b></font></center>
-<hr>
-
-<hr>
-<font size="-2">[<a href="../private/toc-paramiko.sftp_file-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font>
-</body>
-</html>
diff --git a/docs/public/toc-paramiko.sftp_handle-module.html b/docs/public/toc-paramiko.sftp_handle-module.html
deleted file mode 100644
index fc8b60a..0000000
--- a/docs/public/toc-paramiko.sftp_handle-module.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.sftp_handle</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-<center><font size="+1"><b><a target="mainFrame" href="paramiko.sftp_handle-module.html">sftp_handle</a></b></font></center>
-<hr>
-
-<hr>
-<font size="-2">[<a href="../private/toc-paramiko.sftp_handle-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font>
-</body>
-</html>
diff --git a/docs/public/toc-paramiko.sftp_server-module.html b/docs/public/toc-paramiko.sftp_server-module.html
deleted file mode 100644
index 93677ba..0000000
--- a/docs/public/toc-paramiko.sftp_server-module.html
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.sftp_server</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-<center><font size="+1"><b><a target="mainFrame" href="paramiko.sftp_server-module.html">sftp_server</a></b></font></center>
-<hr>
-
-<!-- =========== START OF VARIABLES =========== -->
-<font size="+1"><b>Variables</b></font><br />
-<br />
-
-<hr>
-<font size="-2">[<a href="../private/toc-paramiko.sftp_server-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font>
-</body>
-</html>
diff --git a/docs/public/toc-paramiko.sftp_si-module.html b/docs/public/toc-paramiko.sftp_si-module.html
deleted file mode 100644
index 58a1d30..0000000
--- a/docs/public/toc-paramiko.sftp_si-module.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.sftp_si</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-<center><font size="+1"><b><a target="mainFrame" href="paramiko.sftp_si-module.html">sftp_si</a></b></font></center>
-<hr>
-
-<hr>
-<font size="-2">[<a href="../private/toc-paramiko.sftp_si-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font>
-</body>
-</html>
diff --git a/docs/public/toc-paramiko.transport-module.html b/docs/public/toc-paramiko.transport-module.html
deleted file mode 100644
index 14e73b4..0000000
--- a/docs/public/toc-paramiko.transport-module.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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.transport</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-<center><font size="+1"><b><a target="mainFrame" href="paramiko.transport-module.html">transport</a></b></font></center>
-<hr>
-
-<!-- =========== START OF FUNCTIONS =========== -->
-<font size="+1"><b>Functions</b></font><br />
-<br />
-
-<!-- =========== START OF VARIABLES =========== -->
-<font size="+1"><b>Variables</b></font><br />
-<br />
-
-<hr>
-<font size="-2">[<a href="../private/toc-paramiko.transport-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font>
-</body>
-</html>
diff --git a/docs/public/toc-paramiko.util-module.html b/docs/public/toc-paramiko.util-module.html
deleted file mode 100644
index 1224321..0000000
--- a/docs/public/toc-paramiko.util-module.html
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-<center><font size="+1"><b><a target="mainFrame" href="paramiko.util-module.html">util</a></b></font></center>
-<hr>
-
-<!-- =========== START OF CLASSES =========== -->
-<font size="+1"><b>Classes</b></font><br />
-<a target="mainFrame" href="paramiko.util.PFilter-class.html">PFilter</a><br />
-<br />
-
-<!-- =========== START OF FUNCTIONS =========== -->
-<font size="+1"><b>Functions</b></font><br />
-<a target="mainFrame" href="paramiko.util-module.html#bit_length">bit_length</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#deflate_long">deflate_long</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#format_binary">format_binary</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#format_binary_line">format_binary_line</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#format_binary_weird">format_binary_weird</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#generate_key_bytes">generate_key_bytes</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#get_logger">get_logger</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#get_thread_id">get_thread_id</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#hexify">hexify</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#inflate_long">inflate_long</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#load_host_keys">load_host_keys</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#log_to_file">log_to_file</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#lookup_ssh_host_config">lookup_ssh_host_config</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#mod_inverse">mod_inverse</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#parse_ssh_config">parse_ssh_config</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#safe_string">safe_string</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#tb_strings">tb_strings</a><br />
-<a target="mainFrame" href="paramiko.util-module.html#unhexify">unhexify</a><br />
-<br />
-
-<!-- =========== START OF VARIABLES =========== -->
-<font size="+1"><b>Variables</b></font><br />
-<br />
-
-<hr>
-<font size="-2">[<a href="../private/toc-paramiko.util-module.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font>
-</body>
-</html>
diff --git a/docs/public/toc.html b/docs/public/toc.html
deleted file mode 100644
index a99a3d0..0000000
--- a/docs/public/toc.html
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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>Table of Contents</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-<center><font size="+1"><b>Table&nbsp;of&nbsp;Contents</b></font></center>
-<hr>
-<a target="moduleFrame" href="toc-everything.html">Everything</a><br />
-
-<!-- =========== START OF PACKAGES =========== -->
-<br /><font size="+1"><b>Packages</b></font><br />
-<a target="moduleFrame" href="toc-paramiko-module.html">paramiko</a><br />
-
-<!-- =========== START OF MODULES =========== -->
-<br /><font size="+1"><b>Modules</b></font><br />
-<a target="moduleFrame" href="toc-paramiko.agent-module.html">paramiko.agent</a><br />
-<a target="moduleFrame" href="toc-paramiko.dsskey-module.html">paramiko.dsskey</a><br />
-<a target="moduleFrame" href="toc-paramiko.file-module.html">paramiko.file</a><br />
-<a target="moduleFrame" href="toc-paramiko.message-module.html">paramiko.message</a><br />
-<a target="moduleFrame" href="toc-paramiko.pkey-module.html">paramiko.pkey</a><br />
-<a target="moduleFrame" href="toc-paramiko.rsakey-module.html">paramiko.rsakey</a><br />
-<a target="moduleFrame" href="toc-paramiko.server-module.html">paramiko.server</a><br />
-<a target="moduleFrame" href="toc-paramiko.sftp-module.html">paramiko.sftp</a><br />
-<a target="moduleFrame" href="toc-paramiko.sftp_attr-module.html">paramiko.sftp_attr</a><br />
-<a target="moduleFrame" href="toc-paramiko.sftp_client-module.html">paramiko.sftp_client</a><br />
-<a target="moduleFrame" href="toc-paramiko.sftp_file-module.html">paramiko.sftp_file</a><br />
-<a target="moduleFrame" href="toc-paramiko.sftp_handle-module.html">paramiko.sftp_handle</a><br />
-<a target="moduleFrame" href="toc-paramiko.sftp_server-module.html">paramiko.sftp_server</a><br />
-<a target="moduleFrame" href="toc-paramiko.sftp_si-module.html">paramiko.sftp_si</a><br />
-<a target="moduleFrame" href="toc-paramiko.transport-module.html">paramiko.transport</a><br />
-<a target="moduleFrame" href="toc-paramiko.util-module.html">paramiko.util</a><br />
-
-<br /><hr>
-<font size="-2">[<a href="../private/toc.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font>
-</body>
-</html>
diff --git a/docs/public/trees.html b/docs/public/trees.html
deleted file mode 100644
index 6c85192..0000000
--- a/docs/public/trees.html
+++ /dev/null
@@ -1,151 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!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>Module and Class Hierarchies</title>
- <link rel="stylesheet" href="epydoc.css" type="text/css"></link>
-</head>
-<body bgcolor="white" text="black" link="blue" vlink="#204080"
- alink="#204080">
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th bgcolor="#70b0f0" class="navselect">&nbsp;&nbsp;&nbsp;Trees&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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%">
- </td>
- <td><table cellpadding="0" cellspacing="0">
- <tr><td align="right"><font size="-2">[<a href="../private/trees.html">show&nbsp;private</a>&nbsp;|&nbsp;hide&nbsp;private]</font></td></tr>
- <tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a>&nbsp;|&nbsp;<a href="trees.html" target="_top">no&nbsp;frames</a>]</font></td></tr>
- </table></td>
-</tr></table>
-
-<!-- =========== START OF MODULE HIERARCHY =========== -->
-<h2>Module Hierarchy</h2>
-<ul>
-<li> <b><a href="paramiko-module.html"><code>paramiko</code></a></b>: <i><i>Paramiko</i> (a combination of the esperanto words for
-&quot;paranoid&quot; and &quot;friend&quot;) is a module for python 2.3
-or greater that implements the SSH2 protocol for secure (encrypted and
-authenticated) connections to remote machines.</i>
- <ul>
- <li> <b><a href="paramiko.agent-module.html"><code>agent</code></a></b>: <i>SSH Agent interface for Unix clients.</i>
- <li> <b><a href="paramiko.dsskey-module.html"><code>dsskey</code></a></b>: <i><a href="paramiko.DSSKey-class.html"
-class="link"><code>DSSKey</code></a></i>
- <li> <b><a href="paramiko.file-module.html"><code>file</code></a></b>: <i>BufferedFile.</i>
- <li> <b><a href="paramiko.message-module.html"><code>message</code></a></b>: <i>Implementation of an SSH2 &quot;message&quot;.</i>
- <li> <b><a href="paramiko.pkey-module.html"><code>pkey</code></a></b>: <i>Common API for all public keys.</i>
- <li> <b><a href="paramiko.rsakey-module.html"><code>rsakey</code></a></b>: <i><a href="paramiko.RSAKey-class.html"
-class="link"><code>RSAKey</code></a></i>
- <li> <b><a href="paramiko.server-module.html"><code>server</code></a></b>: <i><a href="../private/paramiko.ServerInterface-class.html"
-class="link"><code>ServerInterface</code></a> is an interface to override
-for server support.</i>
- <li> <b><a href="paramiko.sftp-module.html"><code>sftp</code></a></b>
- <li> <b><a href="paramiko.sftp_attr-module.html"><code>sftp_attr</code></a></b>
- <li> <b><a href="paramiko.sftp_client-module.html"><code>sftp_client</code></a></b>: <i>Client-mode SFTP support.</i>
- <li> <b><a href="paramiko.sftp_file-module.html"><code>sftp_file</code></a></b>: <i><a href="paramiko.SFTPFile-class.html"
-class="link"><code>SFTPFile</code></a></i>
- <li> <b><a href="paramiko.sftp_handle-module.html"><code>sftp_handle</code></a></b>: <i>Abstraction of an SFTP file handle (for server mode).</i>
- <li> <b><a href="paramiko.sftp_server-module.html"><code>sftp_server</code></a></b>: <i>Server-mode SFTP support.</i>
- <li> <b><a href="paramiko.sftp_si-module.html"><code>sftp_si</code></a></b>: <i><a href="../private/paramiko.SFTPServerInterface-class.html"
-class="link"><code>SFTPServerInterface</code></a> is an interface to
-override for SFTP server support.</i>
- <li> <b><a href="paramiko.transport-module.html"><code>transport</code></a></b>: <i><a href="paramiko.Transport-class.html"
-class="link"><code>Transport</code></a> handles the core SSH2
-protocol.</i>
- <li> <b><a href="paramiko.util-module.html"><code>util</code></a></b>: <i>Useful functions used by the rest of paramiko.</i>
- </ul>
-</ul>
-
-<!-- =========== START OF CLASS HIERARCHY =========== -->
-<h2>Class Hierarchy</h2>
-<ul>
- <li> <b><a href="__builtin__.object-class.html"><code>__builtin__.object</code></a></b>: <i>
-The most base type</i>
- <ul>
- <li> <b><a href="paramiko.BufferedFile-class.html"><code>paramiko.BufferedFile</code></a></b>: <i>
-Reusable base class to implement python-style file buffering around a
-simpler stream.</i>
- <ul>
- <li> <b><a href="paramiko.SFTPFile-class.html"><code>paramiko.SFTPFile</code></a></b>: <i>
-Proxy object for a file on the remote server, in client mode SFTP.</i>
- </ul>
- <li> <b><a href="paramiko.Channel-class.html"><code>paramiko.Channel</code></a></b>: <i>
-A secure tunnel across an SSH <a href="paramiko.Transport-class.html"
-class="link"><code>Transport</code></a>.</i>
- <li> <b><a href="paramiko.server.InteractiveQuery-class.html"><code>paramiko.server.InteractiveQuery</code></a></b>: <i>
-A query (set of prompts) for a user during interactive
-authentication.</i>
- <li> <b><a href="paramiko.Message-class.html"><code>paramiko.Message</code></a></b>: <i>
-An SSH2 <i>Message</i> is a stream of bytes that encodes some
-combination of strings, integers, bools, and infinite-precision integers
-(known in python as <i>long</i>s).</i>
- <li> <b><a href="paramiko.util.PFilter-class.html"><code>paramiko.util.PFilter</code></a></b>
- <li> <b><a href="paramiko.SecurityOptions-class.html"><code>paramiko.SecurityOptions</code></a></b>: <i>
-Simple object containing the security preferences of an ssh
-transport.</i>
- <li> <b><a href="paramiko.SFTPAttributes-class.html"><code>paramiko.SFTPAttributes</code></a></b>: <i>
-Representation of the attributes of a file (or proxied file) for SFTP
-in client or server mode.</i>
- <li> <b><a href="paramiko.SFTPHandle-class.html"><code>paramiko.SFTPHandle</code></a></b>: <i>
-Abstract object representing a handle to an open file (or folder) in
-an SFTP server implementation.</i>
- <li> <b><a href="__builtin__.type-class.html"><code>__builtin__.type</code></a></b>: <i>
-type(object) -&gt; the object's type type(name, bases, dict) -&gt; a
-new type</i>
- <ul>
- </ul>
- <ul>
- </ul>
- <ul>
- </ul>
- </ul>
- <li> <b><a href="exceptions.Exception-class.html"><code>exceptions.Exception</code></a></b>: <i>
-Common base class for all exceptions.</i>
- <ul>
- <li> <b><a href="paramiko.SFTPError-class.html"><code>paramiko.SFTPError</code></a></b>
- <li> <b><a href="paramiko.SSHException-class.html"><code>paramiko.SSHException</code></a></b>: <i>
-Exception raised by failures in SSH2 protocol negotiation or logic
-errors.</i>
- <ul>
- <li> <b><a href="paramiko.BadAuthenticationType-class.html"><code>paramiko.BadAuthenticationType</code></a></b>: <i>
-Exception raised when an authentication type (like password) is used,
-but the server isn't allowing that type.</i>
- <li> <b><a href="paramiko.PasswordRequiredException-class.html"><code>paramiko.PasswordRequiredException</code></a></b>: <i>
-Exception raised when a password is needed to unlock a private key
-file.</i>
- </ul>
- </ul>
- <li> <b><a href="paramiko.Agent-class.html"><code>paramiko.Agent</code></a></b>: <i>
-Client interface for using private keys from an SSH agent running on
-the local machine.</i>
-</ul>
-
-<!-- =========== START OF NAVBAR =========== -->
-<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
- <tr valign="center">
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="paramiko-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="trees.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" href="indices.html">Index</a>&nbsp;&nbsp;&nbsp;</th>
- <th class="navbar">&nbsp;&nbsp;&nbsp;<a class="navbar" 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"><font size="-2">Generated by Epydoc 2.1 on Sun Dec 4 11:16:48 2005</font></td>
- <td align="right"><a href="http://epydoc.sourceforge.net"
- ><font size="-2">http://epydoc.sf.net</font></a></td>
- </tr>
-</table>
-</body>
-</html>
diff --git a/docs/redirect.html b/docs/redirect.html
new file mode 100644
index 0000000..33190ec
--- /dev/null
+++ b/docs/redirect.html
@@ -0,0 +1,38 @@
+<html><head><title>Epydoc Redirect Page</title>
+<meta http-equiv="cache-control" content="no-cache" />
+<meta http-equiv="expires" content="0" />
+<meta http-equiv="pragma" content="no-cache" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+<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 dottedName = get_anchor();
+if (dottedName) {
+ var target = redirect_url(dottedName);
+ if (target) window.location.replace(target);
+}
+// -->
+</script>
+
+<h3>Epydoc Auto-redirect page</h3>
+
+<p>When javascript is enabled, this page will redirect URLs of
+the form <tt>redirect.html#<i>dotted.name</i></tt> to the
+documentation for the object with the given fully-qualified
+dotted name.</p>
+<p><a id="message"> &nbsp; </a></p>
+
+<script type="text/javascript">
+<!--
+if (dottedName) {
+ var msg = document.getElementById("message");
+ msg.innerHTML = "No documentation found for <tt>"+
+ dottedName+"</tt>";
+}
+// -->
+</script>
+
+</body>
+</html>
diff --git a/docs/since-index.html b/docs/since-index.html
new file mode 100644
index 0000000..078046b
--- /dev/null
+++ b/docs/since-index.html
@@ -0,0 +1,302 @@
+<?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>Introductions List</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 bgcolor="#70b0f0" class="navbar-select"
+ >&nbsp;&nbsp;&nbsp;Indices&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%">&nbsp;</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="since-index.html"
+ target="_top">no&nbsp;frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<center><b>[
+ <a href="identifier-index.html">Identifiers</a>
+| <a href="bug-index.html">Bugs</a>
+| <a href="since-index.html">Introductions</a>
+]</b></center><br />
+<h1 class="epydoc"><a name="since">Introductions List</a></h1>
+<br />
+<div>
+<table width="100%" class="metadata-index" bgcolor="#e0e0e0"><tr><td class="metadata-index"><b>Introductions in <a href="paramiko.AuthenticationException-class.html">paramiko.AuthenticationException</a></b> <ul class="nomargin">
+ <li>1.6</li>
+ </ul>
+</table></div>
+<div>
+<table width="100%" class="metadata-index" bgcolor="#e0e0e0"><tr><td class="metadata-index"><b>Introductions in <a href="paramiko.BadAuthenticationType-class.html">paramiko.BadAuthenticationType</a></b> <ul class="nomargin">
+ <li>1.1</li>
+ </ul>
+</table></div>
+<div>
+<table width="100%" class="metadata-index" bgcolor="#e0e0e0"><tr><td class="metadata-index"><b>Introductions in <a href="paramiko.BadHostKeyException-class.html">paramiko.BadHostKeyException</a></b> <ul class="nomargin">
+ <li>1.6</li>
+ </ul>
+</table></div>
+<div>
+<table width="100%" class="metadata-index" bgcolor="#e0e0e0"><tr><td class="metadata-index"><b>Introductions in <a href="paramiko.Channel-class.html#exit_status_ready">paramiko.Channel.exit_status_ready</a></b> <ul class="nomargin">
+ <li>1.7.3</li>
+ </ul>
+</table></div>
+<div>
+<table width="100%" class="metadata-index" bgcolor="#e0e0e0"><tr><td class="metadata-index"><b>Introductions in <a href="paramiko.Channel-class.html#makefile_stderr">paramiko.Channel.makefile_stderr</a></b> <ul class="nomargin">
+ <li>1.1</li>
+ </ul>
+</table></div>
+<div>
+<table width="100%" class="metadata-index" bgcolor="#e0e0e0"><tr><td class="metadata-index"><b>Introductions in <a href="paramiko.Channel-class.html#recv_exit_status">paramiko.Channel.recv_exit_status</a></b> <ul class="nomargin">
+ <li>1.2</li>
+ </ul>
+</table></div>
+<div>
+<table width="100%" class="metadata-index" bgcolor="#e0e0e0"><tr><td class="metadata-index"><b>Introductions in <a href="paramiko.Channel-class.html#recv_stderr">paramiko.Channel.recv_stderr</a></b> <ul class="nomargin">
+ <li>1.1</li>
+ </ul>
+</table></div>
+<div>
+<table width="100%" class="metadata-index" bgcolor="#e0e0e0"><tr><td class="metadata-index"><b>Introductions in <a href="paramiko.Channel-class.html#recv_stderr_ready">paramiko.Channel.recv_stderr_ready</a></b> <ul class="nomargin">
+ <li>1.1</li>
+ </ul>
+</table></div>
+<div>
+<table width="100%" class="metadata-index" bgcolor="#e0e0e0"><tr><td class="metadata-index"><b>Introductions in <a href="paramiko.Channel-class.html#send_exit_status">paramiko.Channel.send_exit_status</a></b> <ul class="nomargin">
+ <li>1.2</li>
+ </ul>
+</table></div>
+<div>
+<table width="100%" class="metadata-index" bgcolor="#e0e0e0"><tr><td class="metadata-index"><b>Introductions in <a href="paramiko.Channel-class.html#send_stderr">paramiko.Channel.send_stderr</a></b> <ul class="nomargin">
+ <li>1.1</li>
+ </ul>
+</table></div>
+<div>
+<table width="100%" class="metadata-index" bgcolor="#e0e0e0"><tr><td class="metadata-index"><b>Introductions in <a href="paramiko.Channel-class.html#sendall_stderr">paramiko.Channel.sendall_stderr</a></b> <ul class="nomargin">
+ <li>1.1</li>
+ </ul>
+</table></div>
+<div>
+<table width="100%" class="metadata-index" bgcolor="#e0e0e0"><tr><td class="metadata-index"><b>Introductions in <a href="paramiko.Channel-class.html#set_combine_stderr">paramiko.Channel.set_combine_stderr</a></b> <ul class="nomargin">
+ <li>1.1</li>
+ </ul>
+</table></div>
+<div>
+<table width="100%" class="metadata-index" bgcolor="#e0e0e0"><tr><td class="metadata-index"><b>Introductions in <a href="paramiko.Channel-class.html#shutdown_read">paramiko.Channel.shutdown_read</a></b> <ul class="nomargin">
+ <li>1.2</li>
+ </ul>
+</table></div>
+<div>
+<table width="100%" class="metadata-index" bgcolor="#e0e0e0"><tr><td class="metadata-index"><b>Introductions in <a href="paramiko.Channel-class.html#shutdown_write">paramiko.Channel.shutdown_write</a></b> <ul class="nomargin">
+ <li>1.2</li>
+ </ul>
+</table></div>
+<div>
+<table width="100%" class="metadata-index" bgcolor="#e0e0e0"><tr><td class="metadata-index"><b>Introductions in <a href="paramiko.ChannelException-class.html">paramiko.ChannelException</a></b> <ul class="nomargin">
+ <li>1.6</li>
+ </ul>
+</table></div>
+<div>
+<table width="100%" class="metadata-index" bgcolor="#e0e0e0"><tr><td class="metadata-index"><b>Introductions in <a href="paramiko.HostKeys-class.html">paramiko.HostKeys</a></b> <ul class="nomargin">
+ <li>1.5.3</li>
+ </ul>
+</table></div>
+<div>
+<table width="100%" class="metadata-index" bgcolor="#e0e0e0"><tr><td class="metadata-index"><b>Introductions in <a href="paramiko.HostKeys-class.html#save">paramiko.HostKeys.save</a></b> <ul class="nomargin">
+ <li>1.6.1</li>
+ </ul>
+</table></div>
+<div>
+<table width="100%" class="metadata-index" bgcolor="#e0e0e0"><tr><td class="metadata-index"><b>Introductions in <a href="paramiko.SFTPClient-class.html#chdir">paramiko.SFTPClient.chdir</a></b> <ul class="nomargin">
+ <li>1.4</li>
+ </ul>
+</table></div>
+<div>
+<table width="100%" class="metadata-index" bgcolor="#e0e0e0"><tr><td class="metadata-index"><b>Introductions in <a href="paramiko.SFTPClient-class.html#close">paramiko.SFTPClient.close</a></b> <ul class="nomargin">
+ <li>1.4</li>
+ </ul>
+</table></div>
+<div>
+<table width="100%" class="metadata-index" bgcolor="#e0e0e0"><tr><td class="metadata-index"><b>Introductions in <a href="paramiko.SFTPClient-class.html#get">paramiko.SFTPClient.get</a></b> <ul class="nomargin">
+ <li>1.4</li>
+ </ul>
+</table></div>
+<div>
+<table width="100%" class="metadata-index" bgcolor="#e0e0e0"><tr><td class="metadata-index"><b>Introductions in <a href="paramiko.SFTPClient-class.html#get_channel">paramiko.SFTPClient.get_channel</a></b> <ul class="nomargin">
+ <li>1.7.1</li>
+ </ul>
+</table></div>
+<div>
+<table width="100%" class="metadata-index" bgcolor="#e0e0e0"><tr><td class="metadata-index"><b>Introductions in <a href="paramiko.SFTPClient-class.html#getcwd">paramiko.SFTPClient.getcwd</a></b> <ul class="nomargin">
+ <li>1.4</li>
+ </ul>
+</table></div>
+<div>
+<table width="100%" class="metadata-index" bgcolor="#e0e0e0"><tr><td class="metadata-index"><b>Introductions in <a href="paramiko.SFTPClient-class.html#listdir_attr">paramiko.SFTPClient.listdir_attr</a></b> <ul class="nomargin">
+ <li>1.2</li>
+ </ul>
+</table></div>
+<div>
+<table width="100%" class="metadata-index" bgcolor="#e0e0e0"><tr><td class="metadata-index"><b>Introductions in <a href="paramiko.SFTPClient-class.html#put">paramiko.SFTPClient.put</a></b> <ul class="nomargin">
+ <li>1.4</li>
+ </ul>
+</table></div>
+<div>
+<table width="100%" class="metadata-index" bgcolor="#e0e0e0"><tr><td class="metadata-index"><b>Introductions in <a href="paramiko.SFTPFile-class.html#check">paramiko.SFTPFile.check</a></b> <ul class="nomargin">
+ <li>1.4</li>
+ </ul>
+</table></div>
+<div>
+<table width="100%" class="metadata-index" bgcolor="#e0e0e0"><tr><td class="metadata-index"><b>Introductions in <a href="paramiko.SFTPFile-class.html#prefetch">paramiko.SFTPFile.prefetch</a></b> <ul class="nomargin">
+ <li>1.5.1</li>
+ </ul>
+</table></div>
+<div>
+<table width="100%" class="metadata-index" bgcolor="#e0e0e0"><tr><td class="metadata-index"><b>Introductions in <a href="paramiko.SFTPFile-class.html#readv">paramiko.SFTPFile.readv</a></b> <ul class="nomargin">
+ <li>1.5.4</li>
+ </ul>
+</table></div>
+<div>
+<table width="100%" class="metadata-index" bgcolor="#e0e0e0"><tr><td class="metadata-index"><b>Introductions in <a href="paramiko.SFTPFile-class.html#set_pipelined">paramiko.SFTPFile.set_pipelined</a></b> <ul class="nomargin">
+ <li>1.5</li>
+ </ul>
+</table></div>
+<div>
+<table width="100%" class="metadata-index" bgcolor="#e0e0e0"><tr><td class="metadata-index"><b>Introductions in <a href="paramiko.SSHClient-class.html">paramiko.SSHClient</a></b> <ul class="nomargin">
+ <li>1.6</li>
+ </ul>
+</table></div>
+<div>
+<table width="100%" class="metadata-index" bgcolor="#e0e0e0"><tr><td class="metadata-index"><b>Introductions in <a href="paramiko.SSHConfig-class.html">paramiko.SSHConfig</a></b> <ul class="nomargin">
+ <li>1.6</li>
+ </ul>
+</table></div>
+<div>
+<table width="100%" class="metadata-index" bgcolor="#e0e0e0"><tr><td class="metadata-index"><b>Introductions in <a href="paramiko.ServerInterface-class.html#check_channel_exec_request">paramiko.ServerInterface.check_channel_exec_request</a></b> <ul class="nomargin">
+ <li>1.1</li>
+ </ul>
+</table></div>
+<div>
+<table width="100%" class="metadata-index" bgcolor="#e0e0e0"><tr><td class="metadata-index"><b>Introductions in <a href="paramiko.SubsystemHandler-class.html#finish_subsystem">paramiko.SubsystemHandler.finish_subsystem</a></b> <ul class="nomargin">
+ <li>1.1</li>
+ </ul>
+</table></div>
+<div>
+<table width="100%" class="metadata-index" bgcolor="#e0e0e0"><tr><td class="metadata-index"><b>Introductions in <a href="paramiko.Transport-class.html#atfork">paramiko.Transport.atfork</a></b> <ul class="nomargin">
+ <li>1.5.3</li>
+ </ul>
+</table></div>
+<div>
+<table width="100%" class="metadata-index" bgcolor="#e0e0e0"><tr><td class="metadata-index"><b>Introductions in <a href="paramiko.Transport-class.html#auth_interactive">paramiko.Transport.auth_interactive</a></b> <ul class="nomargin">
+ <li>1.5</li>
+ </ul>
+</table></div>
+<div>
+<table width="100%" class="metadata-index" bgcolor="#e0e0e0"><tr><td class="metadata-index"><b>Introductions in <a href="paramiko.Transport-class.html#auth_none">paramiko.Transport.auth_none</a></b> <ul class="nomargin">
+ <li>1.5</li>
+ </ul>
+</table></div>
+<div>
+<table width="100%" class="metadata-index" bgcolor="#e0e0e0"><tr><td class="metadata-index"><b>Introductions in <a href="paramiko.Transport-class.html#get_exception">paramiko.Transport.get_exception</a></b> <ul class="nomargin">
+ <li>1.1</li>
+ </ul>
+</table></div>
+<div>
+<table width="100%" class="metadata-index" bgcolor="#e0e0e0"><tr><td class="metadata-index"><b>Introductions in <a href="paramiko.Transport-class.html#get_hexdump">paramiko.Transport.get_hexdump</a></b> <ul class="nomargin">
+ <li>1.4</li>
+ </ul>
+</table></div>
+<div>
+<table width="100%" class="metadata-index" bgcolor="#e0e0e0"><tr><td class="metadata-index"><b>Introductions in <a href="paramiko.Transport-class.html#get_log_channel">paramiko.Transport.get_log_channel</a></b> <ul class="nomargin">
+ <li>1.2</li>
+ </ul>
+</table></div>
+<div>
+<table width="100%" class="metadata-index" bgcolor="#e0e0e0"><tr><td class="metadata-index"><b>Introductions in <a href="paramiko.Transport-class.html#set_log_channel">paramiko.Transport.set_log_channel</a></b> <ul class="nomargin">
+ <li>1.1</li>
+ </ul>
+</table></div>
+<div>
+<table width="100%" class="metadata-index" bgcolor="#e0e0e0"><tr><td class="metadata-index"><b>Introductions in <a href="paramiko.Transport-class.html#use_compression">paramiko.Transport.use_compression</a></b> <ul class="nomargin">
+ <li>1.5.2</li>
+ </ul>
+</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 bgcolor="#70b0f0" class="navbar-select"
+ >&nbsp;&nbsp;&nbsp;Indices&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 Jul 6 18:30:25 2008
+ </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/toc-everything.html b/docs/toc-everything.html
new file mode 100644
index 0000000..53f4262
--- /dev/null
+++ b/docs/toc-everything.html
@@ -0,0 +1,146 @@
+<?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>Everything</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">
+<h1 class="toc">Everything</h1>
+<hr />
+ <h2 class="toc">All Classes</h2>
+ <a target="mainFrame" href="paramiko.Agent-class.html"
+ >paramiko.Agent</a><br /> <a target="mainFrame" href="paramiko.AgentKey-class.html"
+ >paramiko.AgentKey</a><br /> <a target="mainFrame" href="paramiko.AuthenticationException-class.html"
+ >paramiko.AuthenticationException</a><br /> <a target="mainFrame" href="paramiko.AutoAddPolicy-class.html"
+ >paramiko.AutoAddPolicy</a><br /> <a target="mainFrame" href="paramiko.BadAuthenticationType-class.html"
+ >paramiko.BadAuthenticationType</a><br /> <a target="mainFrame" href="paramiko.BadHostKeyException-class.html"
+ >paramiko.BadHostKeyException</a><br /> <a target="mainFrame" href="paramiko.BufferedFile-class.html"
+ >paramiko.BufferedFile</a><br /> <a target="mainFrame" href="paramiko.Channel-class.html"
+ >paramiko.Channel</a><br /> <a target="mainFrame" href="paramiko.ChannelException-class.html"
+ >paramiko.ChannelException</a><br /> <a target="mainFrame" href="paramiko.DSSKey-class.html"
+ >paramiko.DSSKey</a><br /> <a target="mainFrame" href="paramiko.HostKeys-class.html"
+ >paramiko.HostKeys</a><br /> <a target="mainFrame" href="paramiko.Message-class.html"
+ >paramiko.Message</a><br /> <a target="mainFrame" href="paramiko.MissingHostKeyPolicy-class.html"
+ >paramiko.MissingHostKeyPolicy</a><br /> <a target="mainFrame" href="paramiko.PKey-class.html"
+ >paramiko.PKey</a><br /> <a target="mainFrame" href="paramiko.PasswordRequiredException-class.html"
+ >paramiko.PasswordRequiredException</a><br /> <a target="mainFrame" href="paramiko.RSAKey-class.html"
+ >paramiko.RSAKey</a><br /> <a target="mainFrame" href="paramiko.RejectPolicy-class.html"
+ >paramiko.RejectPolicy</a><br /> <a target="mainFrame" href="paramiko.SFTP-class.html"
+ >paramiko.SFTP</a><br /> <a target="mainFrame" href="paramiko.SFTPAttributes-class.html"
+ >paramiko.SFTPAttributes</a><br /> <a target="mainFrame" href="paramiko.SFTPClient-class.html"
+ >paramiko.SFTPClient</a><br /> <a target="mainFrame" href="paramiko.SFTPError-class.html"
+ >paramiko.SFTPError</a><br /> <a target="mainFrame" href="paramiko.SFTPFile-class.html"
+ >paramiko.SFTPFile</a><br /> <a target="mainFrame" href="paramiko.SFTPHandle-class.html"
+ >paramiko.SFTPHandle</a><br /> <a target="mainFrame" href="paramiko.SFTPServer-class.html"
+ >paramiko.SFTPServer</a><br /> <a target="mainFrame" href="paramiko.SFTPServerInterface-class.html"
+ >paramiko.SFTPServerInterface</a><br /> <a target="mainFrame" href="paramiko.SSHClient-class.html"
+ >paramiko.SSHClient</a><br /> <a target="mainFrame" href="paramiko.SSHConfig-class.html"
+ >paramiko.SSHConfig</a><br /> <a target="mainFrame" href="paramiko.SSHException-class.html"
+ >paramiko.SSHException</a><br /> <a target="mainFrame" href="paramiko.SecurityOptions-class.html"
+ >paramiko.SecurityOptions</a><br /> <a target="mainFrame" href="paramiko.ServerInterface-class.html"
+ >paramiko.ServerInterface</a><br /> <a target="mainFrame" href="paramiko.SubsystemHandler-class.html"
+ >paramiko.SubsystemHandler</a><br /> <a target="mainFrame" href="paramiko.Transport-class.html"
+ >paramiko.Transport</a><br /> <a target="mainFrame" href="paramiko.WarningPolicy-class.html"
+ >paramiko.WarningPolicy</a><br /> <a target="mainFrame" href="paramiko.logging22.Formatter-class.html"
+ >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.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>
+ <a target="mainFrame" href="paramiko.logging22-module.html#getLogger"
+ >paramiko.logging22.getLogger</a><br /> <a target="mainFrame" href="paramiko.rng_win32-module.html#open_rng_device"
+ >paramiko.rng_win32.open_rng_device</a><br /> <a target="mainFrame" href="paramiko.util-module.html#bit_length"
+ >paramiko.util.bit_length</a><br /> <a target="mainFrame" href="paramiko.util-module.html#deflate_long"
+ >paramiko.util.deflate_long</a><br /> <a target="mainFrame" href="paramiko.util-module.html#format_binary"
+ >paramiko.util.format_binary</a><br /> <a target="mainFrame" href="paramiko.util-module.html#format_binary_line"
+ >paramiko.util.format_binary_line</a><br /> <a target="mainFrame" href="paramiko.util-module.html#format_binary_weird"
+ >paramiko.util.format_binary_weird</a><br /> <a target="mainFrame" href="paramiko.util-module.html#generate_key_bytes"
+ >paramiko.util.generate_key_bytes</a><br /> <a target="mainFrame" href="paramiko.util-module.html#get_logger"
+ >paramiko.util.get_logger</a><br /> <a target="mainFrame" href="paramiko.util-module.html#get_thread_id"
+ >paramiko.util.get_thread_id</a><br /> <a target="mainFrame" href="paramiko.util-module.html#hexify"
+ >paramiko.util.hexify</a><br /> <a target="mainFrame" href="paramiko.util-module.html#inflate_long"
+ >paramiko.util.inflate_long</a><br /> <a target="mainFrame" href="paramiko.util-module.html#load_host_keys"
+ >paramiko.util.load_host_keys</a><br /> <a target="mainFrame" href="paramiko.util-module.html#log_to_file"
+ >paramiko.util.log_to_file</a><br /> <a target="mainFrame" href="paramiko.util-module.html#lookup_ssh_host_config"
+ >paramiko.util.lookup_ssh_host_config</a><br /> <a target="mainFrame" href="paramiko.util-module.html#mod_inverse"
+ >paramiko.util.mod_inverse</a><br /> <a target="mainFrame" href="paramiko.util-module.html#parse_ssh_config"
+ >paramiko.util.parse_ssh_config</a><br /> <a target="mainFrame" href="paramiko.util-module.html#safe_string"
+ >paramiko.util.safe_string</a><br /> <a target="mainFrame" href="paramiko.util-module.html#tb_strings"
+ >paramiko.util.tb_strings</a><br /> <a target="mainFrame" href="paramiko.util-module.html#unhexify"
+ >paramiko.util.unhexify</a><br /> <a target="mainFrame" href="paramiko.win_pageant-module.html#can_talk_to_agent"
+ >paramiko.win_pageant.can_talk_to_agent</a><br /> <h2 class="toc">All Variables</h2>
+ <a target="mainFrame" href="paramiko.logging22-module.html#CRITICAL"
+ >paramiko.logging22.CRITICAL</a><br /> <a target="mainFrame" href="paramiko.logging22-module.html#DEBUG"
+ >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.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"
+ >paramiko.util.CONNECTION_FAILED_CODE</a><br /> <a target="mainFrame" href="paramiko.util-module.html#CRITICAL"
+ >paramiko.util.CRITICAL</a><br /> <a target="mainFrame" href="paramiko.util-module.html#DEBUG"
+ >paramiko.util.DEBUG</a><br /> <a target="mainFrame" href="paramiko.util-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER"
+ >paramiko.util.DISCONNECT_AUTH_CANCELLED_BY_USER</a><br /> <a target="mainFrame" href="paramiko.util-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE"
+ >paramiko.util.DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE</a><br /> <a target="mainFrame" href="paramiko.util-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE"
+ >paramiko.util.DISCONNECT_SERVICE_NOT_AVAILABLE</a><br /> <a target="mainFrame" href="paramiko.util-module.html#ERROR"
+ >paramiko.util.ERROR</a><br /> <a target="mainFrame" href="paramiko.util-module.html#INFO"
+ >paramiko.util.INFO</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_CHANNEL_CLOSE"
+ >paramiko.util.MSG_CHANNEL_CLOSE</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_CHANNEL_DATA"
+ >paramiko.util.MSG_CHANNEL_DATA</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_CHANNEL_EOF"
+ >paramiko.util.MSG_CHANNEL_EOF</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_CHANNEL_EXTENDED_DATA"
+ >paramiko.util.MSG_CHANNEL_EXTENDED_DATA</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_CHANNEL_FAILURE"
+ >paramiko.util.MSG_CHANNEL_FAILURE</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_CHANNEL_OPEN"
+ >paramiko.util.MSG_CHANNEL_OPEN</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_CHANNEL_OPEN_FAILURE"
+ >paramiko.util.MSG_CHANNEL_OPEN_FAILURE</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_CHANNEL_OPEN_SUCCESS"
+ >paramiko.util.MSG_CHANNEL_OPEN_SUCCESS</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_CHANNEL_REQUEST"
+ >paramiko.util.MSG_CHANNEL_REQUEST</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_CHANNEL_SUCCESS"
+ >paramiko.util.MSG_CHANNEL_SUCCESS</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_CHANNEL_WINDOW_ADJUST"
+ >paramiko.util.MSG_CHANNEL_WINDOW_ADJUST</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_DEBUG"
+ >paramiko.util.MSG_DEBUG</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_DISCONNECT"
+ >paramiko.util.MSG_DISCONNECT</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_GLOBAL_REQUEST"
+ >paramiko.util.MSG_GLOBAL_REQUEST</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_IGNORE"
+ >paramiko.util.MSG_IGNORE</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_KEXINIT"
+ >paramiko.util.MSG_KEXINIT</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_NAMES"
+ >paramiko.util.MSG_NAMES</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_NEWKEYS"
+ >paramiko.util.MSG_NEWKEYS</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_REQUEST_FAILURE"
+ >paramiko.util.MSG_REQUEST_FAILURE</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_REQUEST_SUCCESS"
+ >paramiko.util.MSG_REQUEST_SUCCESS</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_SERVICE_ACCEPT"
+ >paramiko.util.MSG_SERVICE_ACCEPT</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_SERVICE_REQUEST"
+ >paramiko.util.MSG_SERVICE_REQUEST</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_UNIMPLEMENTED"
+ >paramiko.util.MSG_UNIMPLEMENTED</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_USERAUTH_BANNER"
+ >paramiko.util.MSG_USERAUTH_BANNER</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_USERAUTH_FAILURE"
+ >paramiko.util.MSG_USERAUTH_FAILURE</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_USERAUTH_INFO_REQUEST"
+ >paramiko.util.MSG_USERAUTH_INFO_REQUEST</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_USERAUTH_INFO_RESPONSE"
+ >paramiko.util.MSG_USERAUTH_INFO_RESPONSE</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_USERAUTH_PK_OK"
+ >paramiko.util.MSG_USERAUTH_PK_OK</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_USERAUTH_REQUEST"
+ >paramiko.util.MSG_USERAUTH_REQUEST</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_USERAUTH_SUCCESS"
+ >paramiko.util.MSG_USERAUTH_SUCCESS</a><br /> <a target="mainFrame" href="paramiko.util-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED"
+ >paramiko.util.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED</a><br /> <a target="mainFrame" href="paramiko.util-module.html#OPEN_FAILED_CONNECT_FAILED"
+ >paramiko.util.OPEN_FAILED_CONNECT_FAILED</a><br /> <a target="mainFrame" href="paramiko.util-module.html#OPEN_FAILED_RESOURCE_SHORTAGE"
+ >paramiko.util.OPEN_FAILED_RESOURCE_SHORTAGE</a><br /> <a target="mainFrame" href="paramiko.util-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE"
+ >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.win_pageant.win32con_WM_COPYDATA</a><br /><hr />
+
+<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/toc-paramiko-module.html b/docs/toc-paramiko-module.html
new file mode 100644
index 0000000..f6b2876
--- /dev/null
+++ b/docs/toc-paramiko-module.html
@@ -0,0 +1,61 @@
+<?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</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">
+<h1 class="toc">Module paramiko</h1>
+<hr />
+ <h2 class="toc">Classes</h2>
+ <a target="mainFrame" href="paramiko.Agent-class.html"
+ >Agent</a><br /> <a target="mainFrame" href="paramiko.AgentKey-class.html"
+ >AgentKey</a><br /> <a target="mainFrame" href="paramiko.AuthenticationException-class.html"
+ >AuthenticationException</a><br /> <a target="mainFrame" href="paramiko.AutoAddPolicy-class.html"
+ >AutoAddPolicy</a><br /> <a target="mainFrame" href="paramiko.BadAuthenticationType-class.html"
+ >BadAuthenticationType</a><br /> <a target="mainFrame" href="paramiko.BadHostKeyException-class.html"
+ >BadHostKeyException</a><br /> <a target="mainFrame" href="paramiko.BufferedFile-class.html"
+ >BufferedFile</a><br /> <a target="mainFrame" href="paramiko.Channel-class.html"
+ >Channel</a><br /> <a target="mainFrame" href="paramiko.ChannelException-class.html"
+ >ChannelException</a><br /> <a target="mainFrame" href="paramiko.DSSKey-class.html"
+ >DSSKey</a><br /> <a target="mainFrame" href="paramiko.HostKeys-class.html"
+ >HostKeys</a><br /> <a target="mainFrame" href="paramiko.Message-class.html"
+ >Message</a><br /> <a target="mainFrame" href="paramiko.MissingHostKeyPolicy-class.html"
+ >MissingHostKeyPolicy</a><br /> <a target="mainFrame" href="paramiko.PKey-class.html"
+ >PKey</a><br /> <a target="mainFrame" href="paramiko.PasswordRequiredException-class.html"
+ >PasswordRequiredException</a><br /> <a target="mainFrame" href="paramiko.RSAKey-class.html"
+ >RSAKey</a><br /> <a target="mainFrame" href="paramiko.RejectPolicy-class.html"
+ >RejectPolicy</a><br /> <a target="mainFrame" href="paramiko.SFTP-class.html"
+ >SFTP</a><br /> <a target="mainFrame" href="paramiko.SFTPAttributes-class.html"
+ >SFTPAttributes</a><br /> <a target="mainFrame" href="paramiko.SFTPClient-class.html"
+ >SFTPClient</a><br /> <a target="mainFrame" href="paramiko.SFTPError-class.html"
+ >SFTPError</a><br /> <a target="mainFrame" href="paramiko.SFTPFile-class.html"
+ >SFTPFile</a><br /> <a target="mainFrame" href="paramiko.SFTPHandle-class.html"
+ >SFTPHandle</a><br /> <a target="mainFrame" href="paramiko.SFTPServer-class.html"
+ >SFTPServer</a><br /> <a target="mainFrame" href="paramiko.SFTPServerInterface-class.html"
+ >SFTPServerInterface</a><br /> <a target="mainFrame" href="paramiko.SSHClient-class.html"
+ >SSHClient</a><br /> <a target="mainFrame" href="paramiko.SSHConfig-class.html"
+ >SSHConfig</a><br /> <a target="mainFrame" href="paramiko.SSHException-class.html"
+ >SSHException</a><br /> <a target="mainFrame" href="paramiko.SecurityOptions-class.html"
+ >SecurityOptions</a><br /> <a target="mainFrame" href="paramiko.ServerInterface-class.html"
+ >ServerInterface</a><br /> <a target="mainFrame" href="paramiko.SubsystemHandler-class.html"
+ >SubsystemHandler</a><br /> <a target="mainFrame" href="paramiko.Transport-class.html"
+ >Transport</a><br /> <a target="mainFrame" href="paramiko.WarningPolicy-class.html"
+ >WarningPolicy</a><br /><hr />
+
+<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/toc-paramiko.agent-module.html b/docs/toc-paramiko.agent-module.html
new file mode 100644
index 0000000..5de5e79
--- /dev/null
+++ b/docs/toc-paramiko.agent-module.html
@@ -0,0 +1,28 @@
+<?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>agent</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">
+<h1 class="toc">Module agent</h1>
+<hr />
+ <h2 class="toc">Variables</h2>
+<hr />
+
+<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/toc-paramiko.auth_handler-module.html b/docs/toc-paramiko.auth_handler-module.html
new file mode 100644
index 0000000..7fa221d
--- /dev/null
+++ b/docs/toc-paramiko.auth_handler-module.html
@@ -0,0 +1,28 @@
+<?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>auth_handler</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">
+<h1 class="toc">Module auth_handler</h1>
+<hr />
+ <h2 class="toc">Variables</h2>
+<hr />
+
+<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/toc-paramiko.ber-module.html b/docs/toc-paramiko.ber-module.html
new file mode 100644
index 0000000..b5c19e1
--- /dev/null
+++ b/docs/toc-paramiko.ber-module.html
@@ -0,0 +1,28 @@
+<?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>ber</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">
+<h1 class="toc">Module ber</h1>
+<hr />
+ <h2 class="toc">Classes</h2>
+<hr />
+
+<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/toc-paramiko.buffered_pipe-module.html b/docs/toc-paramiko.buffered_pipe-module.html
new file mode 100644
index 0000000..699ad46
--- /dev/null
+++ b/docs/toc-paramiko.buffered_pipe-module.html
@@ -0,0 +1,28 @@
+<?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>buffered_pipe</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">
+<h1 class="toc">Module buffered_pipe</h1>
+<hr />
+ <h2 class="toc">Classes</h2>
+<hr />
+
+<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/toc-paramiko.channel-module.html b/docs/toc-paramiko.channel-module.html
new file mode 100644
index 0000000..7eaaa97
--- /dev/null
+++ b/docs/toc-paramiko.channel-module.html
@@ -0,0 +1,29 @@
+<?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>channel</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">
+<h1 class="toc">Module channel</h1>
+<hr />
+ <h2 class="toc">Classes</h2>
+ <h2 class="toc">Variables</h2>
+<hr />
+
+<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/toc-paramiko.client-module.html b/docs/toc-paramiko.client-module.html
new file mode 100644
index 0000000..577541e
--- /dev/null
+++ b/docs/toc-paramiko.client-module.html
@@ -0,0 +1,28 @@
+<?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>client</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">
+<h1 class="toc">Module client</h1>
+<hr />
+ <h2 class="toc">Variables</h2>
+<hr />
+
+<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/toc-paramiko.common-module.html b/docs/toc-paramiko.common-module.html
new file mode 100644
index 0000000..0d0a848
--- /dev/null
+++ b/docs/toc-paramiko.common-module.html
@@ -0,0 +1,28 @@
+<?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>common</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">
+<h1 class="toc">Module common</h1>
+<hr />
+ <h2 class="toc">Variables</h2>
+<hr />
+
+<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/toc-paramiko.compress-module.html b/docs/toc-paramiko.compress-module.html
new file mode 100644
index 0000000..ac5a589
--- /dev/null
+++ b/docs/toc-paramiko.compress-module.html
@@ -0,0 +1,28 @@
+<?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>compress</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">
+<h1 class="toc">Module compress</h1>
+<hr />
+ <h2 class="toc">Classes</h2>
+<hr />
+
+<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/toc-paramiko.config-module.html b/docs/toc-paramiko.config-module.html
new file mode 100644
index 0000000..4552d73
--- /dev/null
+++ b/docs/toc-paramiko.config-module.html
@@ -0,0 +1,27 @@
+<?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>config</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">
+<h1 class="toc">Module config</h1>
+<hr />
+<hr />
+
+<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/toc-paramiko.dsskey-module.html b/docs/toc-paramiko.dsskey-module.html
new file mode 100644
index 0000000..6e0de13
--- /dev/null
+++ b/docs/toc-paramiko.dsskey-module.html
@@ -0,0 +1,28 @@
+<?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>dsskey</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">
+<h1 class="toc">Module dsskey</h1>
+<hr />
+ <h2 class="toc">Variables</h2>
+<hr />
+
+<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/toc-paramiko.file-module.html b/docs/toc-paramiko.file-module.html
new file mode 100644
index 0000000..3fefa62
--- /dev/null
+++ b/docs/toc-paramiko.file-module.html
@@ -0,0 +1,27 @@
+<?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>file</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">
+<h1 class="toc">Module file</h1>
+<hr />
+<hr />
+
+<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/toc-paramiko.hostkeys-module.html b/docs/toc-paramiko.hostkeys-module.html
new file mode 100644
index 0000000..d7b93dd
--- /dev/null
+++ b/docs/toc-paramiko.hostkeys-module.html
@@ -0,0 +1,29 @@
+<?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>hostkeys</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">
+<h1 class="toc">Module hostkeys</h1>
+<hr />
+ <h2 class="toc">Classes</h2>
+ <h2 class="toc">Variables</h2>
+<hr />
+
+<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/toc-paramiko.kex_gex-module.html b/docs/toc-paramiko.kex_gex-module.html
new file mode 100644
index 0000000..6f341ae
--- /dev/null
+++ b/docs/toc-paramiko.kex_gex-module.html
@@ -0,0 +1,29 @@
+<?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>kex_gex</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">
+<h1 class="toc">Module kex_gex</h1>
+<hr />
+ <h2 class="toc">Classes</h2>
+ <h2 class="toc">Variables</h2>
+<hr />
+
+<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/toc-paramiko.kex_group1-module.html b/docs/toc-paramiko.kex_group1-module.html
new file mode 100644
index 0000000..75e12ba
--- /dev/null
+++ b/docs/toc-paramiko.kex_group1-module.html
@@ -0,0 +1,29 @@
+<?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>kex_group1</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">
+<h1 class="toc">Module kex_group1</h1>
+<hr />
+ <h2 class="toc">Classes</h2>
+ <h2 class="toc">Variables</h2>
+<hr />
+
+<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/toc-paramiko.logging22-module.html b/docs/toc-paramiko.logging22-module.html
new file mode 100644
index 0000000..23b4050
--- /dev/null
+++ b/docs/toc-paramiko.logging22-module.html
@@ -0,0 +1,39 @@
+<?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>logging22</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">
+<h1 class="toc">Module logging22</h1>
+<hr />
+ <h2 class="toc">Classes</h2>
+ <a target="mainFrame" href="paramiko.logging22.Formatter-class.html"
+ >Formatter</a><br /> <a target="mainFrame" href="paramiko.logging22.StreamHandler-class.html"
+ >StreamHandler</a><br /> <a target="mainFrame" href="paramiko.logging22.logger-class.html"
+ >logger</a><br /> <h2 class="toc">Functions</h2>
+ <a target="mainFrame" href="paramiko.logging22-module.html#getLogger"
+ >getLogger</a><br /> <h2 class="toc">Variables</h2>
+ <a target="mainFrame" href="paramiko.logging22-module.html#CRITICAL"
+ >CRITICAL</a><br /> <a target="mainFrame" href="paramiko.logging22-module.html#DEBUG"
+ >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 />
+
+<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/toc-paramiko.message-module.html b/docs/toc-paramiko.message-module.html
new file mode 100644
index 0000000..0ef8b8b
--- /dev/null
+++ b/docs/toc-paramiko.message-module.html
@@ -0,0 +1,27 @@
+<?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>message</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">
+<h1 class="toc">Module message</h1>
+<hr />
+<hr />
+
+<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/toc-paramiko.packet-module.html b/docs/toc-paramiko.packet-module.html
new file mode 100644
index 0000000..d269a9a
--- /dev/null
+++ b/docs/toc-paramiko.packet-module.html
@@ -0,0 +1,30 @@
+<?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>packet</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">
+<h1 class="toc">Module packet</h1>
+<hr />
+ <h2 class="toc">Classes</h2>
+ <h2 class="toc">Functions</h2>
+ <h2 class="toc">Variables</h2>
+<hr />
+
+<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/toc-paramiko.pipe-module.html b/docs/toc-paramiko.pipe-module.html
new file mode 100644
index 0000000..328fcb9
--- /dev/null
+++ b/docs/toc-paramiko.pipe-module.html
@@ -0,0 +1,29 @@
+<?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>pipe</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">
+<h1 class="toc">Module pipe</h1>
+<hr />
+ <h2 class="toc">Classes</h2>
+ <h2 class="toc">Functions</h2>
+<hr />
+
+<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/toc-paramiko.pkey-module.html b/docs/toc-paramiko.pkey-module.html
new file mode 100644
index 0000000..af555cb
--- /dev/null
+++ b/docs/toc-paramiko.pkey-module.html
@@ -0,0 +1,28 @@
+<?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>pkey</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">
+<h1 class="toc">Module pkey</h1>
+<hr />
+ <h2 class="toc">Variables</h2>
+<hr />
+
+<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/toc-paramiko.primes-module.html b/docs/toc-paramiko.primes-module.html
new file mode 100644
index 0000000..ddf708a
--- /dev/null
+++ b/docs/toc-paramiko.primes-module.html
@@ -0,0 +1,28 @@
+<?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>primes</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">
+<h1 class="toc">Module primes</h1>
+<hr />
+ <h2 class="toc">Classes</h2>
+<hr />
+
+<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/toc-paramiko.resource-module.html b/docs/toc-paramiko.resource-module.html
new file mode 100644
index 0000000..7e44df7
--- /dev/null
+++ b/docs/toc-paramiko.resource-module.html
@@ -0,0 +1,28 @@
+<?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>resource</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">
+<h1 class="toc">Module resource</h1>
+<hr />
+ <h2 class="toc">Variables</h2>
+<hr />
+
+<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/toc-paramiko.rng-module.html b/docs/toc-paramiko.rng-module.html
new file mode 100644
index 0000000..65755b5
--- /dev/null
+++ b/docs/toc-paramiko.rng-module.html
@@ -0,0 +1,29 @@
+<?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>rng</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">
+<h1 class="toc">Module rng</h1>
+<hr />
+ <h2 class="toc">Classes</h2>
+ <h2 class="toc">Variables</h2>
+<hr />
+
+<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/toc-paramiko.rng_posix-module.html b/docs/toc-paramiko.rng_posix-module.html
new file mode 100644
index 0000000..308d2e4
--- /dev/null
+++ b/docs/toc-paramiko.rng_posix-module.html
@@ -0,0 +1,29 @@
+<?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>rng_posix</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">
+<h1 class="toc">Module rng_posix</h1>
+<hr />
+ <h2 class="toc">Classes</h2>
+ <h2 class="toc">Functions</h2>
+<hr />
+
+<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/toc-paramiko.rng_win32-module.html b/docs/toc-paramiko.rng_win32-module.html
new file mode 100644
index 0000000..71da0c5
--- /dev/null
+++ b/docs/toc-paramiko.rng_win32-module.html
@@ -0,0 +1,31 @@
+<?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>rng_win32</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">
+<h1 class="toc">Module rng_win32</h1>
+<hr />
+ <h2 class="toc">Classes</h2>
+ <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 />
+
+<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/toc-paramiko.rsakey-module.html b/docs/toc-paramiko.rsakey-module.html
new file mode 100644
index 0000000..6f90edc
--- /dev/null
+++ b/docs/toc-paramiko.rsakey-module.html
@@ -0,0 +1,28 @@
+<?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>rsakey</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">
+<h1 class="toc">Module rsakey</h1>
+<hr />
+ <h2 class="toc">Variables</h2>
+<hr />
+
+<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/toc-paramiko.server-module.html b/docs/toc-paramiko.server-module.html
new file mode 100644
index 0000000..3fa9fa0
--- /dev/null
+++ b/docs/toc-paramiko.server-module.html
@@ -0,0 +1,28 @@
+<?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>server</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">
+<h1 class="toc">Module server</h1>
+<hr />
+ <h2 class="toc">Variables</h2>
+<hr />
+
+<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/toc-paramiko.sftp-module.html b/docs/toc-paramiko.sftp-module.html
new file mode 100644
index 0000000..a6f8f10
--- /dev/null
+++ b/docs/toc-paramiko.sftp-module.html
@@ -0,0 +1,28 @@
+<?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>sftp</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">
+<h1 class="toc">Module sftp</h1>
+<hr />
+ <h2 class="toc">Variables</h2>
+<hr />
+
+<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/toc-paramiko.sftp_attr-module.html b/docs/toc-paramiko.sftp_attr-module.html
new file mode 100644
index 0000000..ea808a9
--- /dev/null
+++ b/docs/toc-paramiko.sftp_attr-module.html
@@ -0,0 +1,28 @@
+<?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>sftp_attr</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">
+<h1 class="toc">Module sftp_attr</h1>
+<hr />
+ <h2 class="toc">Variables</h2>
+<hr />
+
+<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/toc-paramiko.sftp_client-module.html b/docs/toc-paramiko.sftp_client-module.html
new file mode 100644
index 0000000..5bf3a67
--- /dev/null
+++ b/docs/toc-paramiko.sftp_client-module.html
@@ -0,0 +1,28 @@
+<?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>sftp_client</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">
+<h1 class="toc">Module sftp_client</h1>
+<hr />
+ <h2 class="toc">Variables</h2>
+<hr />
+
+<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/toc-paramiko.sftp_file-module.html b/docs/toc-paramiko.sftp_file-module.html
new file mode 100644
index 0000000..c2e2578
--- /dev/null
+++ b/docs/toc-paramiko.sftp_file-module.html
@@ -0,0 +1,28 @@
+<?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>sftp_file</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">
+<h1 class="toc">Module sftp_file</h1>
+<hr />
+ <h2 class="toc">Variables</h2>
+<hr />
+
+<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/toc-paramiko.sftp_handle-module.html b/docs/toc-paramiko.sftp_handle-module.html
new file mode 100644
index 0000000..2b658fe
--- /dev/null
+++ b/docs/toc-paramiko.sftp_handle-module.html
@@ -0,0 +1,28 @@
+<?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>sftp_handle</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">
+<h1 class="toc">Module sftp_handle</h1>
+<hr />
+ <h2 class="toc">Variables</h2>
+<hr />
+
+<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/toc-paramiko.sftp_server-module.html b/docs/toc-paramiko.sftp_server-module.html
new file mode 100644
index 0000000..f4020a8
--- /dev/null
+++ b/docs/toc-paramiko.sftp_server-module.html
@@ -0,0 +1,28 @@
+<?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>sftp_server</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">
+<h1 class="toc">Module sftp_server</h1>
+<hr />
+ <h2 class="toc">Variables</h2>
+<hr />
+
+<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/toc-paramiko.sftp_si-module.html b/docs/toc-paramiko.sftp_si-module.html
new file mode 100644
index 0000000..ef768fe
--- /dev/null
+++ b/docs/toc-paramiko.sftp_si-module.html
@@ -0,0 +1,28 @@
+<?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>sftp_si</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">
+<h1 class="toc">Module sftp_si</h1>
+<hr />
+ <h2 class="toc">Variables</h2>
+<hr />
+
+<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/toc-paramiko.ssh_exception-module.html b/docs/toc-paramiko.ssh_exception-module.html
new file mode 100644
index 0000000..eb2abfe
--- /dev/null
+++ b/docs/toc-paramiko.ssh_exception-module.html
@@ -0,0 +1,28 @@
+<?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>ssh_exception</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">
+<h1 class="toc">Module ssh_exception</h1>
+<hr />
+ <h2 class="toc">Classes</h2>
+<hr />
+
+<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/toc-paramiko.transport-module.html b/docs/toc-paramiko.transport-module.html
new file mode 100644
index 0000000..f22c4ce
--- /dev/null
+++ b/docs/toc-paramiko.transport-module.html
@@ -0,0 +1,29 @@
+<?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>transport</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">
+<h1 class="toc">Module transport</h1>
+<hr />
+ <h2 class="toc">Classes</h2>
+ <h2 class="toc">Variables</h2>
+<hr />
+
+<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/toc-paramiko.util-module.html b/docs/toc-paramiko.util-module.html
new file mode 100644
index 0000000..569b46c
--- /dev/null
+++ b/docs/toc-paramiko.util-module.html
@@ -0,0 +1,99 @@
+<?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>util</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">
+<h1 class="toc">Module util</h1>
+<hr />
+ <h2 class="toc">Classes</h2>
+ <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"
+ >bit_length</a><br /> <a target="mainFrame" href="paramiko.util-module.html#deflate_long"
+ >deflate_long</a><br /> <a target="mainFrame" href="paramiko.util-module.html#format_binary"
+ >format_binary</a><br /> <a target="mainFrame" href="paramiko.util-module.html#format_binary_line"
+ >format_binary_line</a><br /> <a target="mainFrame" href="paramiko.util-module.html#format_binary_weird"
+ >format_binary_weird</a><br /> <a target="mainFrame" href="paramiko.util-module.html#generate_key_bytes"
+ >generate_key_bytes</a><br /> <a target="mainFrame" href="paramiko.util-module.html#get_logger"
+ >get_logger</a><br /> <a target="mainFrame" href="paramiko.util-module.html#get_thread_id"
+ >get_thread_id</a><br /> <a target="mainFrame" href="paramiko.util-module.html#hexify"
+ >hexify</a><br /> <a target="mainFrame" href="paramiko.util-module.html#inflate_long"
+ >inflate_long</a><br /> <a target="mainFrame" href="paramiko.util-module.html#load_host_keys"
+ >load_host_keys</a><br /> <a target="mainFrame" href="paramiko.util-module.html#log_to_file"
+ >log_to_file</a><br /> <a target="mainFrame" href="paramiko.util-module.html#lookup_ssh_host_config"
+ >lookup_ssh_host_config</a><br /> <a target="mainFrame" href="paramiko.util-module.html#mod_inverse"
+ >mod_inverse</a><br /> <a target="mainFrame" href="paramiko.util-module.html#parse_ssh_config"
+ >parse_ssh_config</a><br /> <a target="mainFrame" href="paramiko.util-module.html#safe_string"
+ >safe_string</a><br /> <a target="mainFrame" href="paramiko.util-module.html#tb_strings"
+ >tb_strings</a><br /> <a target="mainFrame" href="paramiko.util-module.html#unhexify"
+ >unhexify</a><br /> <h2 class="toc">Variables</h2>
+ <a target="mainFrame" href="paramiko.util-module.html#AUTH_FAILED"
+ >AUTH_FAILED</a><br /> <a target="mainFrame" href="paramiko.util-module.html#AUTH_PARTIALLY_SUCCESSFUL"
+ >AUTH_PARTIALLY_SUCCESSFUL</a><br /> <a target="mainFrame" href="paramiko.util-module.html#AUTH_SUCCESSFUL"
+ >AUTH_SUCCESSFUL</a><br /> <a target="mainFrame" href="paramiko.util-module.html#CONNECTION_FAILED_CODE"
+ >CONNECTION_FAILED_CODE</a><br /> <a target="mainFrame" href="paramiko.util-module.html#CRITICAL"
+ >CRITICAL</a><br /> <a target="mainFrame" href="paramiko.util-module.html#DEBUG"
+ >DEBUG</a><br /> <a target="mainFrame" href="paramiko.util-module.html#DISCONNECT_AUTH_CANCELLED_BY_USER"
+ >DISCONNECT_AUTH_CANCELLED_BY_USER</a><br /> <a target="mainFrame" href="paramiko.util-module.html#DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE"
+ >DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE</a><br /> <a target="mainFrame" href="paramiko.util-module.html#DISCONNECT_SERVICE_NOT_AVAILABLE"
+ >DISCONNECT_SERVICE_NOT_AVAILABLE</a><br /> <a target="mainFrame" href="paramiko.util-module.html#ERROR"
+ >ERROR</a><br /> <a target="mainFrame" href="paramiko.util-module.html#INFO"
+ >INFO</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_CHANNEL_CLOSE"
+ >MSG_CHANNEL_CLOSE</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_CHANNEL_DATA"
+ >MSG_CHANNEL_DATA</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_CHANNEL_EOF"
+ >MSG_CHANNEL_EOF</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_CHANNEL_EXTENDED_DATA"
+ >MSG_CHANNEL_EXTENDED_DATA</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_CHANNEL_FAILURE"
+ >MSG_CHANNEL_FAILURE</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_CHANNEL_OPEN"
+ >MSG_CHANNEL_OPEN</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_CHANNEL_OPEN_FAILURE"
+ >MSG_CHANNEL_OPEN_FAILURE</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_CHANNEL_OPEN_SUCCESS"
+ >MSG_CHANNEL_OPEN_SUCCESS</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_CHANNEL_REQUEST"
+ >MSG_CHANNEL_REQUEST</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_CHANNEL_SUCCESS"
+ >MSG_CHANNEL_SUCCESS</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_CHANNEL_WINDOW_ADJUST"
+ >MSG_CHANNEL_WINDOW_ADJUST</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_DEBUG"
+ >MSG_DEBUG</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_DISCONNECT"
+ >MSG_DISCONNECT</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_GLOBAL_REQUEST"
+ >MSG_GLOBAL_REQUEST</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_IGNORE"
+ >MSG_IGNORE</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_KEXINIT"
+ >MSG_KEXINIT</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_NAMES"
+ >MSG_NAMES</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_NEWKEYS"
+ >MSG_NEWKEYS</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_REQUEST_FAILURE"
+ >MSG_REQUEST_FAILURE</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_REQUEST_SUCCESS"
+ >MSG_REQUEST_SUCCESS</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_SERVICE_ACCEPT"
+ >MSG_SERVICE_ACCEPT</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_SERVICE_REQUEST"
+ >MSG_SERVICE_REQUEST</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_UNIMPLEMENTED"
+ >MSG_UNIMPLEMENTED</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_USERAUTH_BANNER"
+ >MSG_USERAUTH_BANNER</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_USERAUTH_FAILURE"
+ >MSG_USERAUTH_FAILURE</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_USERAUTH_INFO_REQUEST"
+ >MSG_USERAUTH_INFO_REQUEST</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_USERAUTH_INFO_RESPONSE"
+ >MSG_USERAUTH_INFO_RESPONSE</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_USERAUTH_PK_OK"
+ >MSG_USERAUTH_PK_OK</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_USERAUTH_REQUEST"
+ >MSG_USERAUTH_REQUEST</a><br /> <a target="mainFrame" href="paramiko.util-module.html#MSG_USERAUTH_SUCCESS"
+ >MSG_USERAUTH_SUCCESS</a><br /> <a target="mainFrame" href="paramiko.util-module.html#OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED"
+ >OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED</a><br /> <a target="mainFrame" href="paramiko.util-module.html#OPEN_FAILED_CONNECT_FAILED"
+ >OPEN_FAILED_CONNECT_FAILED</a><br /> <a target="mainFrame" href="paramiko.util-module.html#OPEN_FAILED_RESOURCE_SHORTAGE"
+ >OPEN_FAILED_RESOURCE_SHORTAGE</a><br /> <a target="mainFrame" href="paramiko.util-module.html#OPEN_FAILED_UNKNOWN_CHANNEL_TYPE"
+ >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"
+ >randpool</a><br /><hr />
+
+<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/toc-paramiko.win_pageant-module.html b/docs/toc-paramiko.win_pageant-module.html
new file mode 100644
index 0000000..988262c
--- /dev/null
+++ b/docs/toc-paramiko.win_pageant-module.html
@@ -0,0 +1,33 @@
+<?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>win_pageant</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">
+<h1 class="toc">Module win_pageant</h1>
+<hr />
+ <h2 class="toc">Classes</h2>
+ <a target="mainFrame" href="paramiko.win_pageant.PageantConnection-class.html"
+ >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"
+ >win32con_WM_COPYDATA</a><br /><hr />
+
+<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/toc.html b/docs/toc.html
new file mode 100644
index 0000000..f4183e8
--- /dev/null
+++ b/docs/toc.html
@@ -0,0 +1,35 @@
+<?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>Table of Contents</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">
+<h1 class="toc">Table&nbsp;of&nbsp;Contents</h1>
+<hr />
+ <a target="moduleFrame" href="toc-everything.html">Everything</a>
+ <br />
+ <h2 class="toc">Modules</h2>
+ <a target="moduleFrame" href="toc-paramiko-module.html"
+ onclick="setFrame('toc-paramiko-module.html','paramiko-module.html');" >paramiko</a><br /> <a target="moduleFrame" href="toc-paramiko.logging22-module.html"
+ onclick="setFrame('toc-paramiko.logging22-module.html','paramiko.logging22-module.html');" >paramiko.logging22</a><br /> <a target="moduleFrame" href="toc-paramiko.rng_win32-module.html"
+ onclick="setFrame('toc-paramiko.rng_win32-module.html','paramiko.rng_win32-module.html');" >paramiko.rng_win32</a><br /> <a target="moduleFrame" href="toc-paramiko.util-module.html"
+ onclick="setFrame('toc-paramiko.util-module.html','paramiko.util-module.html');" >paramiko.util</a><br /> <a target="moduleFrame" href="toc-paramiko.win_pageant-module.html"
+ onclick="setFrame('toc-paramiko.win_pageant-module.html','paramiko.win_pageant-module.html');" >paramiko.win_pageant</a><br /><hr />
+
+<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/forward.py b/forward.py
deleted file mode 100644
index f91e969..0000000
--- a/forward.py
+++ /dev/null
@@ -1,219 +0,0 @@
-#!/usr/bin/python
-
-# Copyright (C) 2003-2005 Robey Pointer <robey@lag.net>
-#
-# This file is part of paramiko.
-#
-# Paramiko is free software; you can redistribute it and/or modify it under the
-# terms of the GNU Lesser General Public License as published by the Free
-# Software Foundation; either version 2.1 of the License, or (at your option)
-# any later version.
-#
-# Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
-# A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
-# details.
-#
-# You should have received a copy of the GNU Lesser General Public License
-# along with Paramiko; if not, write to the Free Software Foundation, Inc.,
-# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
-
-"""
-Sample script showing how to do local port forwarding over paramiko.
-
-This script connects to the requested SSH server and sets up local port
-forwarding (the openssh -L option) from a local port through a tunneled
-connection to a destination reachable from the SSH server machine.
-"""
-
-import sys
-import os
-import socket
-import select
-import SocketServer
-import getpass
-import base64
-from optparse import OptionParser
-
-import paramiko
-
-DEFAULT_PORT = 4000
-SSH_PORT = 22
-VERBOSE = True
-READPASS = False
-
-
-class ForwardServer (SocketServer.ThreadingTCPServer):
- daemon_threads = True
- allow_reuse_address = True
-
-
-class Handler (SocketServer.BaseRequestHandler):
-
- def handle(self):
- try:
- chan = self.ssh_transport.open_channel('direct-tcpip',
- (self.chain_host, self.chain_port),
- self.request.getpeername())
- except Exception, e:
- verbose('Incoming request to %s:%d failed: %s' % (self.chain_host,
- self.chain_port,
- repr(e)))
- return
-
- verbose('Connected! Tunnel open.')
- while True:
- r, w, x = select.select([self.request, chan], [], [])
- if self.request in r:
- data = self.request.recv(1024)
- if len(data) == 0:
- break
- chan.send(data)
- if chan in r:
- data = chan.recv(1024)
- if len(data) == 0:
- break
- self.request.send(data)
- chan.close()
- self.request.close()
- verbose('Tunnel closed.')
-
-
-def forward_tunnel(local_port, remote_host, remote_port, transport):
- # this is a little convoluted, but lets me configure things for the Handler
- # object. (SocketServer doesn't give Handlers any way to access the outer
- # server normally.)
- class SubHander (Handler):
- chain_host = remote_host
- chain_port = remote_port
- ssh_transport = transport
- ForwardServer(('', local_port), SubHander).serve_forever()
-
-def find_default_key_file():
- filename = os.path.expanduser('~/.ssh/id_rsa')
- if os.access(filename, os.R_OK):
- return filename
- filename = os.path.expanduser('~/ssh/id_rsa')
- if os.access(filename, os.R_OK):
- return filename
- filename = os.path.expanduser('~/.ssh/id_dsa')
- if os.access(filename, os.R_OK):
- return filename
- filename = os.path.expanduser('~/ssh/id_dsa')
- if os.access(filename, os.R_OK):
- return filename
- return ''
-
-def verbose(s):
- if VERBOSE:
- print s
-
-
-#####
-
-
-parser = OptionParser(usage='usage: %prog [options] <remote-addr>:<remote-port>',
- version='%prog 1.0')
-parser.add_option('-q', '--quiet', action='store_false', dest='verbose', default=VERBOSE,
- help='squelch all informational output')
-parser.add_option('-l', '--local-port', action='store', type='int', dest='port',
- default=DEFAULT_PORT,
- help='local port to forward (default: %d)' % DEFAULT_PORT)
-parser.add_option('-r', '--host', action='store', type='string', dest='ssh_host',
- help='SSH host to tunnel through (required)')
-parser.add_option('-p', '--port', action='store', type='int', dest='ssh_port', default=SSH_PORT,
- help='SSH port to tunnel through (default: %d)' % SSH_PORT)
-parser.add_option('-u', '--user', action='store', type='string', dest='user',
- default=getpass.getuser(),
- help='username for SSH authentication (default: %s)' % getpass.getuser())
-parser.add_option('-K', '--key', action='store', type='string', dest='keyfile',
- default=find_default_key_file(),
- help='private key file to use for SSH authentication')
-parser.add_option('', '--no-key', action='store_false', dest='use_key', default=True,
- help='don\'t look for or use a private key file')
-parser.add_option('-P', '--password', action='store_true', dest='readpass', default=READPASS,
- help='read password (for key or password auth) from stdin')
-options, args = parser.parse_args()
-
-VERBOSE = options.verbose
-READPASS = options.readpass
-
-
-if len(args) != 1:
- parser.error('Incorrect number of arguments.')
-remote_host = args[0]
-if ':' not in remote_host:
- parser.error('Remote port missing.')
-remote_host, remote_port = remote_host.split(':', 1)
-try:
- remote_port = int(remote_port)
-except:
- parser.error('Remote port must be a number.')
-
-if not options.ssh_host:
- parser.error('SSH host is required.')
-if ':' in options.ssh_host:
- options.ssh_host, options.ssh_port = options.ssh_host.split(':', 1)
- try:
- options.ssh_port = int(options.ssh_port)
- except:
- parser.error('SSH port must be a number.')
-
-try:
- host_keys = paramiko.util.load_host_keys(os.path.expanduser('~/.ssh/known_hosts'))
-except IOError:
- try:
- 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 not host_keys.has_key(options.ssh_host):
- print '*** Warning: no host key for %s' % options.ssh_host
- expected_host_key_type = None
- expected_host_key = None
-else:
- expected_host_key_type = host_keys[options.ssh_host].keys()[0]
- expected_host_key = host_keys[options.ssh_host][expected_host_key_type]
-
-key = None
-password = None
-if options.use_key:
- try:
- key = paramiko.RSAKey.from_private_key_file(options.keyfile)
- except paramiko.PasswordRequiredException:
- if not READPASS:
- print '*** Password needed for keyfile (use -P): %s' % options.keyfile
- sys.exit(1)
- key_password = getpass.getpass('Enter password for key: ')
- try:
- key = paramiko.RSAKey.from_private_key_file(options.keyfile, key_password)
- except:
- print '*** Unable to read keyfile: %s' % options.keyfile
- sys.exit(1)
- except:
- pass
-
-if key is None:
- # try reading a password then
- if not READPASS:
- print '*** Either a valid private key or password is required (use -K or -P).'
- sys.exit(1)
- password = getpass.getpass('Enter password: ')
-
-verbose('Connecting to ssh host %s:%d ...' % (options.ssh_host, options.ssh_port))
-
-transport = paramiko.Transport((options.ssh_host, options.ssh_port))
-transport.connect(hostkeytype=expected_host_key_type,
- hostkey=expected_host_key,
- username=options.user,
- password=password,
- pkey=key)
-
-verbose('Now forwarding port %d to %s:%d ...' % (options.port, remote_host, remote_port))
-
-try:
- forward_tunnel(options.port, remote_host, remote_port, transport)
-except KeyboardInterrupt:
- print 'Port forwarding stopped.'
- sys.exit(0)
diff --git a/paramiko.egg-info/PKG-INFO b/paramiko.egg-info/PKG-INFO
new file mode 100644
index 0000000..f40d53f
--- /dev/null
+++ b/paramiko.egg-info/PKG-INFO
@@ -0,0 +1,25 @@
+Metadata-Version: 1.0
+Name: paramiko
+Version: 1.7.4
+Summary: SSH2 protocol library
+Home-page: http://www.lag.net/paramiko/
+Author: Robey Pointer
+Author-email: robey@lag.net
+License: LGPL
+Download-URL: http://www.lag.net/paramiko/download/paramiko-1.7.4.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
+ connections between python scripts. All major ciphers and hash methods
+ are supported. SFTP client and server mode are both supported too.
+
+ Required packages:
+ pyCrypto
+
+Platform: Posix; MacOS X; Windows
+Classifier: Development Status :: 5 - Production/Stable
+Classifier: Intended Audience :: Developers
+Classifier: License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)
+Classifier: Operating System :: OS Independent
+Classifier: Topic :: Internet
+Classifier: Topic :: Security :: Cryptography
diff --git a/paramiko.egg-info/SOURCES.txt b/paramiko.egg-info/SOURCES.txt
new file mode 100644
index 0000000..40a1c7d
--- /dev/null
+++ b/paramiko.egg-info/SOURCES.txt
@@ -0,0 +1,266 @@
+LICENSE
+MANIFEST.in
+README
+setup.py
+setup_helper.py
+test.py
+demos/demo.py
+demos/demo_server.py
+demos/demo_sftp.py
+demos/demo_simple.py
+demos/forward.py
+demos/interactive.py
+demos/rforward.py
+demos/test_rsa.key
+demos/user_rsa_key
+demos/user_rsa_key.pub
+docs/api-objects.txt
+docs/bug-index.html
+docs/class-tree.html
+docs/crarr.png
+docs/epydoc.css
+docs/epydoc.js
+docs/frames.html
+docs/help.html
+docs/identifier-index.html
+docs/index.html
+docs/module-tree.html
+docs/paramiko-module.html
+docs/paramiko-pysrc.html
+docs/paramiko.Agent-class.html
+docs/paramiko.AgentKey-class.html
+docs/paramiko.AuthenticationException-class.html
+docs/paramiko.AutoAddPolicy-class.html
+docs/paramiko.BadAuthenticationType-class.html
+docs/paramiko.BadHostKeyException-class.html
+docs/paramiko.BufferedFile-class.html
+docs/paramiko.Channel-class.html
+docs/paramiko.ChannelException-class.html
+docs/paramiko.DSSKey-class.html
+docs/paramiko.HostKeys-class.html
+docs/paramiko.Message-class.html
+docs/paramiko.MissingHostKeyPolicy-class.html
+docs/paramiko.PKey-class.html
+docs/paramiko.PasswordRequiredException-class.html
+docs/paramiko.RSAKey-class.html
+docs/paramiko.RejectPolicy-class.html
+docs/paramiko.SFTP-class.html
+docs/paramiko.SFTPAttributes-class.html
+docs/paramiko.SFTPClient-class.html
+docs/paramiko.SFTPError-class.html
+docs/paramiko.SFTPFile-class.html
+docs/paramiko.SFTPHandle-class.html
+docs/paramiko.SFTPServer-class.html
+docs/paramiko.SFTPServerInterface-class.html
+docs/paramiko.SSHClient-class.html
+docs/paramiko.SSHConfig-class.html
+docs/paramiko.SSHException-class.html
+docs/paramiko.SecurityOptions-class.html
+docs/paramiko.ServerInterface-class.html
+docs/paramiko.SubsystemHandler-class.html
+docs/paramiko.Transport-class.html
+docs/paramiko.WarningPolicy-class.html
+docs/paramiko.agent-module.html
+docs/paramiko.agent-pysrc.html
+docs/paramiko.auth_handler-module.html
+docs/paramiko.auth_handler-pysrc.html
+docs/paramiko.ber-module.html
+docs/paramiko.ber-pysrc.html
+docs/paramiko.ber.BER-class.html
+docs/paramiko.ber.BERException-class.html
+docs/paramiko.buffered_pipe-module.html
+docs/paramiko.buffered_pipe-pysrc.html
+docs/paramiko.buffered_pipe.BufferedPipe-class.html
+docs/paramiko.buffered_pipe.PipeTimeout-class.html
+docs/paramiko.channel-module.html
+docs/paramiko.channel-pysrc.html
+docs/paramiko.channel.ChannelStderrFile-class.html
+docs/paramiko.client-module.html
+docs/paramiko.client-pysrc.html
+docs/paramiko.common-module.html
+docs/paramiko.common-pysrc.html
+docs/paramiko.compress-module.html
+docs/paramiko.compress-pysrc.html
+docs/paramiko.compress.ZlibCompressor-class.html
+docs/paramiko.compress.ZlibDecompressor-class.html
+docs/paramiko.config-module.html
+docs/paramiko.config-pysrc.html
+docs/paramiko.dsskey-module.html
+docs/paramiko.dsskey-pysrc.html
+docs/paramiko.file-module.html
+docs/paramiko.file-pysrc.html
+docs/paramiko.hostkeys-module.html
+docs/paramiko.hostkeys-pysrc.html
+docs/paramiko.hostkeys.HostKeyEntry-class.html
+docs/paramiko.kex_gex-module.html
+docs/paramiko.kex_gex-pysrc.html
+docs/paramiko.kex_gex.KexGex-class.html
+docs/paramiko.kex_group1-module.html
+docs/paramiko.kex_group1-pysrc.html
+docs/paramiko.kex_group1.KexGroup1-class.html
+docs/paramiko.logging22-module.html
+docs/paramiko.logging22-pysrc.html
+docs/paramiko.logging22.Formatter-class.html
+docs/paramiko.logging22.StreamHandler-class.html
+docs/paramiko.logging22.logger-class.html
+docs/paramiko.message-module.html
+docs/paramiko.message-pysrc.html
+docs/paramiko.packet-module.html
+docs/paramiko.packet-pysrc.html
+docs/paramiko.packet.NeedRekeyException-class.html
+docs/paramiko.pipe-module.html
+docs/paramiko.pipe-pysrc.html
+docs/paramiko.pipe.OrPipe-class.html
+docs/paramiko.pipe.PosixPipe-class.html
+docs/paramiko.pipe.WindowsPipe-class.html
+docs/paramiko.pkey-module.html
+docs/paramiko.pkey-pysrc.html
+docs/paramiko.primes-module.html
+docs/paramiko.primes-pysrc.html
+docs/paramiko.primes.ModulusPack-class.html
+docs/paramiko.resource-module.html
+docs/paramiko.resource-pysrc.html
+docs/paramiko.rng-module.html
+docs/paramiko.rng-pysrc.html
+docs/paramiko.rng.StrongLockingRandomPool-class.html
+docs/paramiko.rng_posix-module.html
+docs/paramiko.rng_posix-pysrc.html
+docs/paramiko.rng_posix.error-class.html
+docs/paramiko.rng_win32-module.html
+docs/paramiko.rng_win32-pysrc.html
+docs/paramiko.rng_win32.error-class.html
+docs/paramiko.rsakey-module.html
+docs/paramiko.rsakey-pysrc.html
+docs/paramiko.server-module.html
+docs/paramiko.server-pysrc.html
+docs/paramiko.sftp-module.html
+docs/paramiko.sftp-pysrc.html
+docs/paramiko.sftp_attr-module.html
+docs/paramiko.sftp_attr-pysrc.html
+docs/paramiko.sftp_client-module.html
+docs/paramiko.sftp_client-pysrc.html
+docs/paramiko.sftp_file-module.html
+docs/paramiko.sftp_file-pysrc.html
+docs/paramiko.sftp_handle-module.html
+docs/paramiko.sftp_handle-pysrc.html
+docs/paramiko.sftp_server-module.html
+docs/paramiko.sftp_server-pysrc.html
+docs/paramiko.sftp_si-module.html
+docs/paramiko.sftp_si-pysrc.html
+docs/paramiko.ssh_exception-module.html
+docs/paramiko.ssh_exception-pysrc.html
+docs/paramiko.ssh_exception.PartialAuthentication-class.html
+docs/paramiko.transport-module.html
+docs/paramiko.transport-pysrc.html
+docs/paramiko.transport.ChannelMap-class.html
+docs/paramiko.util-module.html
+docs/paramiko.util-pysrc.html
+docs/paramiko.util.PFilter-class.html
+docs/paramiko.util.enumerate-class.html
+docs/paramiko.win_pageant-module.html
+docs/paramiko.win_pageant-pysrc.html
+docs/paramiko.win_pageant.PageantConnection-class.html
+docs/redirect.html
+docs/since-index.html
+docs/toc-everything.html
+docs/toc-paramiko-module.html
+docs/toc-paramiko.agent-module.html
+docs/toc-paramiko.auth_handler-module.html
+docs/toc-paramiko.ber-module.html
+docs/toc-paramiko.buffered_pipe-module.html
+docs/toc-paramiko.channel-module.html
+docs/toc-paramiko.client-module.html
+docs/toc-paramiko.common-module.html
+docs/toc-paramiko.compress-module.html
+docs/toc-paramiko.config-module.html
+docs/toc-paramiko.dsskey-module.html
+docs/toc-paramiko.file-module.html
+docs/toc-paramiko.hostkeys-module.html
+docs/toc-paramiko.kex_gex-module.html
+docs/toc-paramiko.kex_group1-module.html
+docs/toc-paramiko.logging22-module.html
+docs/toc-paramiko.message-module.html
+docs/toc-paramiko.packet-module.html
+docs/toc-paramiko.pipe-module.html
+docs/toc-paramiko.pkey-module.html
+docs/toc-paramiko.primes-module.html
+docs/toc-paramiko.resource-module.html
+docs/toc-paramiko.rng-module.html
+docs/toc-paramiko.rng_posix-module.html
+docs/toc-paramiko.rng_win32-module.html
+docs/toc-paramiko.rsakey-module.html
+docs/toc-paramiko.server-module.html
+docs/toc-paramiko.sftp-module.html
+docs/toc-paramiko.sftp_attr-module.html
+docs/toc-paramiko.sftp_client-module.html
+docs/toc-paramiko.sftp_file-module.html
+docs/toc-paramiko.sftp_handle-module.html
+docs/toc-paramiko.sftp_server-module.html
+docs/toc-paramiko.sftp_si-module.html
+docs/toc-paramiko.ssh_exception-module.html
+docs/toc-paramiko.transport-module.html
+docs/toc-paramiko.util-module.html
+docs/toc-paramiko.win_pageant-module.html
+docs/toc.html
+paramiko/__init__.py
+paramiko/agent.py
+paramiko/auth_handler.py
+paramiko/ber.py
+paramiko/buffered_pipe.py
+paramiko/channel.py
+paramiko/client.py
+paramiko/common.py
+paramiko/compress.py
+paramiko/config.py
+paramiko/dsskey.py
+paramiko/file.py
+paramiko/hostkeys.py
+paramiko/kex_gex.py
+paramiko/kex_group1.py
+paramiko/logging22.py
+paramiko/message.py
+paramiko/packet.py
+paramiko/pipe.py
+paramiko/pkey.py
+paramiko/primes.py
+paramiko/resource.py
+paramiko/rng.py
+paramiko/rng_posix.py
+paramiko/rng_win32.py
+paramiko/rsakey.py
+paramiko/server.py
+paramiko/sftp.py
+paramiko/sftp_attr.py
+paramiko/sftp_client.py
+paramiko/sftp_file.py
+paramiko/sftp_handle.py
+paramiko/sftp_server.py
+paramiko/sftp_si.py
+paramiko/ssh_exception.py
+paramiko/transport.py
+paramiko/util.py
+paramiko/win_pageant.py
+paramiko.egg-info/PKG-INFO
+paramiko.egg-info/SOURCES.txt
+paramiko.egg-info/dependency_links.txt
+paramiko.egg-info/requires.txt
+paramiko.egg-info/top_level.txt
+tests/loop.py
+tests/stub_sftp.py
+tests/test_auth.py
+tests/test_buffered_pipe.py
+tests/test_client.py
+tests/test_dss.key
+tests/test_dss_password.key
+tests/test_file.py
+tests/test_hostkeys.py
+tests/test_kex.py
+tests/test_message.py
+tests/test_packetizer.py
+tests/test_pkey.py
+tests/test_rsa.key
+tests/test_rsa_password.key
+tests/test_sftp.py
+tests/test_sftp_big.py
+tests/test_transport.py
+tests/test_util.py
diff --git a/paramiko.egg-info/dependency_links.txt b/paramiko.egg-info/dependency_links.txt
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/paramiko.egg-info/dependency_links.txt
@@ -0,0 +1 @@
+
diff --git a/paramiko.egg-info/requires.txt b/paramiko.egg-info/requires.txt
new file mode 100644
index 0000000..ac63416
--- /dev/null
+++ b/paramiko.egg-info/requires.txt
@@ -0,0 +1 @@
+pycrypto >= 1.9 \ No newline at end of file
diff --git a/paramiko.egg-info/top_level.txt b/paramiko.egg-info/top_level.txt
new file mode 100644
index 0000000..8608c1b
--- /dev/null
+++ b/paramiko.egg-info/top_level.txt
@@ -0,0 +1 @@
+paramiko
diff --git a/paramiko/__init__.py b/paramiko/__init__.py
index 0a312cb..9a8caec 100644
--- a/paramiko/__init__.py
+++ b/paramiko/__init__.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2005 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2008 Robey Pointer <robey@lag.net>
#
# This file is part of paramiko.
#
@@ -26,8 +26,9 @@ replaced C{telnet} and C{rsh} for secure access to remote shells, but the
protocol also includes the ability to open arbitrary channels to remote
services across an encrypted tunnel. (This is how C{sftp} works, for example.)
-To use this package, pass a socket (or socket-like object) to a L{Transport},
-and use L{start_server <Transport.start_server>} or
+The high-level client API starts with creation of an L{SSHClient} object.
+For more direct control, pass a socket (or socket-like object) to a
+L{Transport}, and use L{start_server <Transport.start_server>} or
L{start_client <Transport.start_client>} to negoatite
with the remote host as either a server or client. As a client, you are
responsible for authenticating using a password or private key, and checking
@@ -46,7 +47,7 @@ released under the GNU Lesser General Public License (LGPL).
Website: U{http://www.lag.net/paramiko/}
-@version: 1.5.2 (rhydon)
+@version: 1.7.4 (Desmond)
@author: Robey Pointer
@contact: robey@lag.net
@license: GNU Lesser General Public License (LGPL)
@@ -59,20 +60,19 @@ if sys.version_info < (2, 2):
__author__ = "Robey Pointer <robey@lag.net>"
-__date__ = "04 Dec 2005"
-__version__ = "1.5.2 (rhydon)"
-__version_info__ = (1, 5, 2)
+__date__ = "06 Jul 2008"
+__version__ = "1.7.4 (Desmond)"
+__version_info__ = (1, 7, 4)
__license__ = "GNU Lesser General Public License (LGPL)"
-import transport, auth_handler, channel, rsakey, dsskey, message
-import ssh_exception, file, packet, agent, server, util
-import sftp_client, sftp_attr, sftp_handle, sftp_server, sftp_si
-
from transport import randpool, SecurityOptions, Transport
+from client import SSHClient, MissingHostKeyPolicy, AutoAddPolicy, RejectPolicy, WarningPolicy
from auth_handler import AuthHandler
from channel import Channel, ChannelFile
-from ssh_exception import SSHException, PasswordRequiredException, BadAuthenticationType
+from ssh_exception import SSHException, PasswordRequiredException, \
+ BadAuthenticationType, ChannelException, BadHostKeyException, \
+ AuthenticationException
from server import ServerInterface, SubsystemHandler, InteractiveQuery
from rsakey import RSAKey
from dsskey import DSSKey
@@ -88,15 +88,15 @@ from packet import Packetizer
from file import BufferedFile
from agent import Agent, AgentKey
from pkey import PKey
+from hostkeys import HostKeys
+from config import SSHConfig
# fix module names for epydoc
-for x in [Transport, SecurityOptions, Channel, SFTPServer, SSHException, \
- PasswordRequiredException, BadAuthenticationType, ChannelFile, \
- SubsystemHandler, AuthHandler, RSAKey, DSSKey, SFTPError, \
- SFTP, SFTPClient, SFTPServer, Message, Packetizer, SFTPAttributes, \
- SFTPHandle, SFTPServerInterface, BufferedFile, Agent, AgentKey, \
- PKey, BaseSFTP, SFTPFile, ServerInterface]:
- x.__module__ = 'paramiko'
+for c in locals().values():
+ if issubclass(type(c), type) or type(c).__name__ == 'classobj':
+ # classobj for exceptions :/
+ c.__module__ = __name__
+del c
from common import AUTH_SUCCESSFUL, AUTH_PARTIALLY_SUCCESSFUL, AUTH_FAILED, \
OPEN_SUCCEEDED, OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED, OPEN_FAILED_CONNECT_FAILED, \
@@ -106,16 +106,24 @@ from sftp import SFTP_OK, SFTP_EOF, SFTP_NO_SUCH_FILE, SFTP_PERMISSION_DENIED, S
SFTP_BAD_MESSAGE, SFTP_NO_CONNECTION, SFTP_CONNECTION_LOST, SFTP_OP_UNSUPPORTED
__all__ = [ 'Transport',
+ 'SSHClient',
+ 'MissingHostKeyPolicy',
+ 'AutoAddPolicy',
+ 'RejectPolicy',
+ 'WarningPolicy',
'SecurityOptions',
'SubsystemHandler',
'Channel',
+ 'PKey',
'RSAKey',
'DSSKey',
- 'Agent',
'Message',
'SSHException',
+ 'AuthenticationException',
'PasswordRequiredException',
'BadAuthenticationType',
+ 'ChannelException',
+ 'BadHostKeyException',
'SFTP',
'SFTPFile',
'SFTPHandle',
@@ -123,24 +131,11 @@ __all__ = [ 'Transport',
'SFTPServer',
'SFTPError',
'SFTPAttributes',
- 'SFTPServerInterface'
+ 'SFTPServerInterface',
'ServerInterface',
'BufferedFile',
'Agent',
'AgentKey',
- 'rsakey',
- 'dsskey',
- 'pkey',
- 'message',
- 'transport',
- 'sftp',
- 'sftp_client',
- 'sftp_server',
- 'sftp_attr',
- 'sftp_file',
- 'sftp_si',
- 'sftp_handle',
- 'server',
- 'file',
- 'agent',
+ 'HostKeys',
+ 'SSHConfig',
'util' ]
diff --git a/paramiko/agent.py b/paramiko/agent.py
index 3555512..71de8b8 100644
--- a/paramiko/agent.py
+++ b/paramiko/agent.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2005 John Rochester <john@jrochester.org>
+# Copyright (C) 2003-2007 John Rochester <john@jrochester.org>
#
# This file is part of paramiko.
#
@@ -55,20 +55,33 @@ class Agent:
@raise SSHException: if an SSH agent is found, but speaks an
incompatible protocol
"""
+ self.keys = ()
if ('SSH_AUTH_SOCK' in os.environ) and (sys.platform != 'win32'):
conn = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
- conn.connect(os.environ['SSH_AUTH_SOCK'])
+ try:
+ conn.connect(os.environ['SSH_AUTH_SOCK'])
+ except:
+ # probably a dangling env var: the ssh agent is gone
+ return
self.conn = conn
- type, result = self._send_message(chr(SSH2_AGENTC_REQUEST_IDENTITIES))
- if type != SSH2_AGENT_IDENTITIES_ANSWER:
- raise SSHException('could not get keys from ssh-agent')
- keys = []
- for i in range(result.get_int()):
- keys.append(AgentKey(self, result.get_string()))
- result.get_string()
- self.keys = tuple(keys)
+ elif sys.platform == 'win32':
+ import win_pageant
+ if win_pageant.can_talk_to_agent():
+ self.conn = win_pageant.PageantConnection()
+ else:
+ return
else:
- self.keys = ()
+ # no agent support
+ return
+
+ ptype, result = self._send_message(chr(SSH2_AGENTC_REQUEST_IDENTITIES))
+ if ptype != SSH2_AGENT_IDENTITIES_ANSWER:
+ raise SSHException('could not get keys from ssh-agent')
+ keys = []
+ for i in range(result.get_int()):
+ keys.append(AgentKey(self, result.get_string()))
+ result.get_string()
+ self.keys = tuple(keys)
def close(self):
"""
@@ -132,7 +145,7 @@ class AgentKey(PKey):
msg.add_string(self.blob)
msg.add_string(data)
msg.add_int(0)
- type, result = self.agent._send_message(msg)
- if type != SSH2_AGENT_SIGN_RESPONSE:
+ ptype, result = self.agent._send_message(msg)
+ if ptype != SSH2_AGENT_SIGN_RESPONSE:
raise SSHException('key cannot be used for signing')
return result.get_string()
diff --git a/paramiko/auth_handler.py b/paramiko/auth_handler.py
index 59aa376..39a0194 100644
--- a/paramiko/auth_handler.py
+++ b/paramiko/auth_handler.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2005 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
#
# This file is part of paramiko.
#
@@ -21,6 +21,7 @@ L{AuthHandler}
"""
import threading
+import weakref
# this helps freezing utils
import encodings.utf_8
@@ -28,7 +29,8 @@ import encodings.utf_8
from paramiko.common import *
from paramiko import util
from paramiko.message import Message
-from paramiko.ssh_exception import SSHException, BadAuthenticationType, PartialAuthentication
+from paramiko.ssh_exception import SSHException, AuthenticationException, \
+ BadAuthenticationType, PartialAuthentication
from paramiko.server import InteractiveQuery
@@ -38,13 +40,15 @@ class AuthHandler (object):
"""
def __init__(self, transport):
- self.transport = transport
+ self.transport = weakref.proxy(transport)
self.username = None
self.authenticated = False
self.auth_event = None
self.auth_method = ''
self.password = None
self.private_key = None
+ self.interactive_handler = None
+ self.submethods = None
# for server mode:
self.auth_username = None
self.auth_fail_count = 0
@@ -154,15 +158,15 @@ class AuthHandler (object):
event.wait(0.1)
if not self.transport.is_active():
e = self.transport.get_exception()
- if e is None:
- e = SSHException('Authentication failed.')
+ if (e is None) or issubclass(e.__class__, EOFError):
+ e = AuthenticationException('Authentication failed.')
raise e
if event.isSet():
break
if not self.is_authenticated():
e = self.transport.get_exception()
if e is None:
- e = SSHException('Authentication failed.')
+ e = AuthenticationException('Authentication failed.')
# this is horrible. python Exception isn't yet descended from
# object, so type(e) won't work. :(
if issubclass(e.__class__, PartialAuthentication):
@@ -193,7 +197,10 @@ class AuthHandler (object):
m.add_string(self.auth_method)
if self.auth_method == 'password':
m.add_boolean(False)
- m.add_string(self.password.encode('UTF-8'))
+ password = self.password
+ if isinstance(password, unicode):
+ password = password.encode('UTF-8')
+ m.add_string(password)
elif self.auth_method == 'publickey':
m.add_boolean(True)
m.add_string(self.private_key.get_name())
@@ -276,12 +283,22 @@ class AuthHandler (object):
result = self.transport.server_object.check_auth_none(username)
elif method == 'password':
changereq = m.get_boolean()
- password = m.get_string().decode('UTF-8', 'replace')
+ password = m.get_string()
+ try:
+ password = password.decode('UTF-8')
+ except UnicodeError:
+ # some clients/servers expect non-utf-8 passwords!
+ # in this case, just return the raw byte string.
+ pass
if changereq:
# always treated as failure, since we don't support changing passwords, but collect
# the list of valid auth types from the callback anyway
self.transport._log(DEBUG, 'Auth request to change passwords (rejected)')
- newpassword = m.get_string().decode('UTF-8', 'replace')
+ newpassword = m.get_string()
+ try:
+ newpassword = newpassword.decode('UTF-8', 'replace')
+ except UnicodeError:
+ pass
result = AUTH_FAILED
else:
result = self.transport.server_object.check_auth_password(username, password)
@@ -332,7 +349,7 @@ class AuthHandler (object):
self._send_auth_result(username, method, result)
def _parse_userauth_success(self, m):
- self.transport._log(INFO, 'Authentication successful!')
+ self.transport._log(INFO, 'Authentication (%s) successful!' % self.auth_method)
self.authenticated = True
self.transport._auth_trigger()
if self.auth_event != None:
@@ -346,11 +363,11 @@ 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 not permitted.')
+ self.transport._log(INFO, '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:
- self.transport._log(INFO, 'Authentication failed.')
+ self.transport._log(INFO, 'Authentication (%s) failed.' % self.auth_method)
self.authenticated = False
self.username = None
if self.auth_event != None:
@@ -407,4 +424,3 @@ class AuthHandler (object):
MSG_USERAUTH_INFO_RESPONSE: _parse_userauth_info_response,
}
-
diff --git a/paramiko/ber.py b/paramiko/ber.py
index 6a7823d..9d8ddfa 100644
--- a/paramiko/ber.py
+++ b/paramiko/ber.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2005 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
#
# This file is part of paramiko.
#
@@ -16,7 +16,7 @@
# along with Paramiko; if not, write to the Free Software Foundation, Inc.,
# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
-import struct
+
import util
@@ -91,8 +91,9 @@ class BER(object):
while True:
x = b.decode_next()
if x is None:
- return out
+ break
out.append(x)
+ return out
decode_sequence = staticmethod(decode_sequence)
def encode_tlv(self, ident, val):
diff --git a/paramiko/buffered_pipe.py b/paramiko/buffered_pipe.py
new file mode 100644
index 0000000..ae3d9d6
--- /dev/null
+++ b/paramiko/buffered_pipe.py
@@ -0,0 +1,200 @@
+# Copyright (C) 2006-2007 Robey Pointer <robey@lag.net>
+#
+# This file is part of paramiko.
+#
+# Paramiko is free software; you can redistribute it and/or modify it under the
+# terms of the GNU Lesser General Public License as published by the Free
+# Software Foundation; either version 2.1 of the License, or (at your option)
+# any later version.
+#
+# Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+# A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+# details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with Paramiko; if not, write to the Free Software Foundation, Inc.,
+# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+
+"""
+Attempt to generalize the "feeder" part of a Channel: an object which can be
+read from and closed, but is reading from a buffer fed by another thread. The
+read operations are blocking and can have a timeout set.
+"""
+
+import array
+import threading
+import time
+
+
+class PipeTimeout (IOError):
+ """
+ Indicates that a timeout was reached on a read from a L{BufferedPipe}.
+ """
+ pass
+
+
+class BufferedPipe (object):
+ """
+ A buffer that obeys normal read (with timeout) & close semantics for a
+ file or socket, but is fed data from another thread. This is used by
+ L{Channel}.
+ """
+
+ def __init__(self):
+ self._lock = threading.Lock()
+ self._cv = threading.Condition(self._lock)
+ self._event = None
+ self._buffer = array.array('B')
+ self._closed = False
+
+ def set_event(self, event):
+ """
+ Set an event on this buffer. When data is ready to be read (or the
+ buffer has been closed), the event will be set. When no data is
+ ready, the event will be cleared.
+
+ @param event: the event to set/clear
+ @type event: Event
+ """
+ self._event = event
+ if len(self._buffer) > 0:
+ event.set()
+ else:
+ event.clear()
+
+ def feed(self, data):
+ """
+ Feed new data into this pipe. This method is assumed to be called
+ from a separate thread, so synchronization is done.
+
+ @param data: the data to add
+ @type data: str
+ """
+ self._lock.acquire()
+ try:
+ if self._event is not None:
+ self._event.set()
+ self._buffer.fromstring(data)
+ self._cv.notifyAll()
+ finally:
+ self._lock.release()
+
+ def read_ready(self):
+ """
+ Returns true if data is buffered and ready to be read from this
+ feeder. A C{False} result does not mean that the feeder has closed;
+ it means you may need to wait before more data arrives.
+
+ @return: C{True} if a L{read} call would immediately return at least
+ one byte; C{False} otherwise.
+ @rtype: bool
+ """
+ self._lock.acquire()
+ try:
+ if len(self._buffer) == 0:
+ return False
+ return True
+ finally:
+ self._lock.release()
+
+ def read(self, nbytes, timeout=None):
+ """
+ Read data from the pipe. The return value is a string representing
+ the data received. The maximum amount of data to be received at once
+ is specified by C{nbytes}. If a string of length zero is returned,
+ the pipe has been closed.
+
+ The optional C{timeout} argument can be a nonnegative float expressing
+ seconds, or C{None} for no timeout. If a float is given, a
+ C{PipeTimeout} will be raised if the timeout period value has
+ elapsed before any data arrives.
+
+ @param nbytes: maximum number of bytes to read
+ @type nbytes: int
+ @param timeout: maximum seconds to wait (or C{None}, the default, to
+ wait forever)
+ @type timeout: float
+ @return: data
+ @rtype: str
+
+ @raise PipeTimeout: if a timeout was specified and no data was ready
+ before that timeout
+ """
+ out = ''
+ self._lock.acquire()
+ try:
+ if len(self._buffer) == 0:
+ if self._closed:
+ return out
+ # should we block?
+ if timeout == 0.0:
+ raise PipeTimeout()
+ # loop here in case we get woken up but a different thread has
+ # grabbed everything in the buffer.
+ while (len(self._buffer) == 0) and not self._closed:
+ then = time.time()
+ self._cv.wait(timeout)
+ if timeout is not None:
+ timeout -= time.time() - then
+ if timeout <= 0.0:
+ raise PipeTimeout()
+
+ # something's in the buffer and we have the lock!
+ if len(self._buffer) <= nbytes:
+ out = self._buffer.tostring()
+ del self._buffer[:]
+ if (self._event is not None) and not self._closed:
+ self._event.clear()
+ else:
+ out = self._buffer[:nbytes].tostring()
+ del self._buffer[:nbytes]
+ finally:
+ self._lock.release()
+
+ return out
+
+ def empty(self):
+ """
+ Clear out the buffer and return all data that was in it.
+
+ @return: any data that was in the buffer prior to clearing it out
+ @rtype: str
+ """
+ self._lock.acquire()
+ try:
+ out = self._buffer.tostring()
+ del self._buffer[:]
+ if (self._event is not None) and not self._closed:
+ self._event.clear()
+ return out
+ finally:
+ self._lock.release()
+
+ def close(self):
+ """
+ Close this pipe object. Future calls to L{read} after the buffer
+ has been emptied will return immediately with an empty string.
+ """
+ self._lock.acquire()
+ try:
+ self._closed = True
+ self._cv.notifyAll()
+ if self._event is not None:
+ self._event.set()
+ finally:
+ self._lock.release()
+
+ def __len__(self):
+ """
+ Return the number of bytes buffered.
+
+ @return: number of bytes bufferes
+ @rtype: int
+ """
+ self._lock.acquire()
+ try:
+ return len(self._buffer)
+ finally:
+ self._lock.release()
+
diff --git a/paramiko/channel.py b/paramiko/channel.py
index 8a00233..910a03c 100644
--- a/paramiko/channel.py
+++ b/paramiko/channel.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2005 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
#
# This file is part of paramiko.
#
@@ -20,6 +20,7 @@
Abstraction for an SSH2 channel.
"""
+import binascii
import sys
import time
import threading
@@ -31,9 +32,14 @@ from paramiko import util
from paramiko.message import Message
from paramiko.ssh_exception import SSHException
from paramiko.file import BufferedFile
+from paramiko.buffered_pipe import BufferedPipe, PipeTimeout
from paramiko import pipe
+# lower bound on the max packet size we'll accept from the remote host
+MIN_PACKET_SIZE = 1024
+
+
class Channel (object):
"""
A secure tunnel across an SSH L{Transport}. A Channel is meant to behave
@@ -49,9 +55,6 @@ class Channel (object):
is exactly like a normal network socket, so it shouldn't be too surprising.
"""
- # lower bound on the max packet size we'll accept from the remote host
- MIN_PACKET_SIZE = 1024
-
def __init__(self, chanid):
"""
Create a new channel. The channel is not associated with any
@@ -69,14 +72,12 @@ class Channel (object):
self.active = False
self.eof_received = 0
self.eof_sent = 0
- self.in_buffer = ''
- self.in_stderr_buffer = ''
+ self.in_buffer = BufferedPipe()
+ self.in_stderr_buffer = BufferedPipe()
self.timeout = None
self.closed = False
self.ultra_debug = False
self.lock = threading.Lock()
- self.in_buffer_cv = threading.Condition(self.lock)
- self.in_stderr_buffer_cv = threading.Condition(self.lock)
self.out_buffer_cv = threading.Condition(self.lock)
self.in_window_size = 0
self.out_window_size = 0
@@ -85,15 +86,19 @@ class Channel (object):
self.in_window_threshold = 0
self.in_window_sofar = 0
self.status_event = threading.Event()
- self.name = str(chanid)
- self.logger = util.get_logger('paramiko.chan.' + str(chanid))
- self.pipe = None
+ self._name = str(chanid)
+ self.logger = util.get_logger('paramiko.transport')
+ self._pipe = None
self.event = threading.Event()
self.combine_stderr = False
self.exit_status = -1
+ self.origin_addr = None
def __del__(self):
- self.close()
+ try:
+ self.close()
+ except:
+ pass
def __repr__(self):
"""
@@ -124,14 +129,15 @@ class Channel (object):
It isn't necessary (or desirable) to call this method if you're going
to exectue a single command with L{exec_command}.
- @param term: the terminal type to emulate (for example, C{'vt100'}).
+ @param term: the terminal type to emulate (for example, C{'vt100'})
@type term: str
@param width: width (in characters) of the terminal screen
@type width: int
@param height: height (in characters) of the terminal screen
@type height: int
- @return: C{True} if the operation succeeded; C{False} if not.
- @rtype: bool
+
+ @raise SSHException: if the request was rejected or the channel was
+ closed
"""
if self.closed or self.eof_received or self.eof_sent or not self.active:
raise SSHException('Channel is not open')
@@ -148,12 +154,7 @@ class Channel (object):
m.add_string('')
self.event.clear()
self.transport._send_user_message(m)
- while True:
- self.event.wait(0.1)
- if self.closed:
- return False
- if self.event.isSet():
- return True
+ self._wait_for_event()
def invoke_shell(self):
"""
@@ -168,8 +169,8 @@ class Channel (object):
When the shell exits, the channel will be closed and can't be reused.
You must open a new channel if you wish to open another shell.
- @return: C{True} if the operation succeeded; C{False} if not.
- @rtype: bool
+ @raise SSHException: if the request was rejected or the channel was
+ closed
"""
if self.closed or self.eof_received or self.eof_sent or not self.active:
raise SSHException('Channel is not open')
@@ -180,12 +181,7 @@ class Channel (object):
m.add_boolean(1)
self.event.clear()
self.transport._send_user_message(m)
- while True:
- self.event.wait(0.1)
- if self.closed:
- return False
- if self.event.isSet():
- return True
+ self._wait_for_event()
def exec_command(self, command):
"""
@@ -199,8 +195,9 @@ class Channel (object):
@param command: a shell command to execute.
@type command: str
- @return: C{True} if the operation succeeded; C{False} if not.
- @rtype: bool
+
+ @raise SSHException: if the request was rejected or the channel was
+ closed
"""
if self.closed or self.eof_received or self.eof_sent or not self.active:
raise SSHException('Channel is not open')
@@ -208,16 +205,11 @@ class Channel (object):
m.add_byte(chr(MSG_CHANNEL_REQUEST))
m.add_int(self.remote_chanid)
m.add_string('exec')
- m.add_boolean(1)
+ m.add_boolean(True)
m.add_string(command)
self.event.clear()
self.transport._send_user_message(m)
- while True:
- self.event.wait(0.1)
- if self.closed:
- return False
- if self.event.isSet():
- return True
+ self._wait_for_event()
def invoke_subsystem(self, subsystem):
"""
@@ -230,8 +222,9 @@ class Channel (object):
@param subsystem: name of the subsystem being requested.
@type subsystem: str
- @return: C{True} if the operation succeeded; C{False} if not.
- @rtype: bool
+
+ @raise SSHException: if the request was rejected or the channel was
+ closed
"""
if self.closed or self.eof_received or self.eof_sent or not self.active:
raise SSHException('Channel is not open')
@@ -239,16 +232,11 @@ class Channel (object):
m.add_byte(chr(MSG_CHANNEL_REQUEST))
m.add_int(self.remote_chanid)
m.add_string('subsystem')
- m.add_boolean(1)
+ m.add_boolean(True)
m.add_string(subsystem)
self.event.clear()
self.transport._send_user_message(m)
- while True:
- self.event.wait(0.1)
- if self.closed:
- return False
- if self.event.isSet():
- return True
+ self._wait_for_event()
def resize_pty(self, width=80, height=24):
"""
@@ -259,8 +247,9 @@ class Channel (object):
@type width: int
@param height: new height (in characters) of the terminal screen
@type height: int
- @return: C{True} if the operation succeeded; C{False} if not.
- @rtype: bool
+
+ @raise SSHException: if the request was rejected or the channel was
+ closed
"""
if self.closed or self.eof_received or self.eof_sent or not self.active:
raise SSHException('Channel is not open')
@@ -268,19 +257,27 @@ class Channel (object):
m.add_byte(chr(MSG_CHANNEL_REQUEST))
m.add_int(self.remote_chanid)
m.add_string('window-change')
- m.add_boolean(1)
+ m.add_boolean(True)
m.add_int(width)
m.add_int(height)
m.add_int(0).add_int(0)
self.event.clear()
self.transport._send_user_message(m)
- while True:
- self.event.wait(0.1)
- if self.closed:
- return False
- if self.event.isSet():
- return True
+ self._wait_for_event()
+ def exit_status_ready(self):
+ """
+ Return true if the remote process has exited and returned an exit
+ status. You may use this to poll the process status if you don't
+ want to block in L{recv_exit_status}. Note that the server may not
+ return an exit status in some cases (like bad servers).
+
+ @return: True if L{recv_exit_status} will return immediately
+ @rtype: bool
+ @since: 1.7.3
+ """
+ return self.closed or self.status_event.isSet()
+
def recv_exit_status(self):
"""
Return the exit status from the process on the server. This is
@@ -296,8 +293,9 @@ class Channel (object):
"""
while True:
if self.closed or self.status_event.isSet():
- return self.exit_status
+ break
self.status_event.wait(0.1)
+ return self.exit_status
def send_exit_status(self, status):
"""
@@ -317,10 +315,73 @@ class Channel (object):
m.add_byte(chr(MSG_CHANNEL_REQUEST))
m.add_int(self.remote_chanid)
m.add_string('exit-status')
- m.add_boolean(0)
+ m.add_boolean(False)
m.add_int(status)
self.transport._send_user_message(m)
+
+ def request_x11(self, screen_number=0, auth_protocol=None, auth_cookie=None,
+ single_connection=False, handler=None):
+ """
+ Request an x11 session on this channel. If the server allows it,
+ further x11 requests can be made from the server to the client,
+ when an x11 application is run in a shell session.
+
+ From RFC4254::
+
+ It is RECOMMENDED that the 'x11 authentication cookie' that is
+ sent be a fake, random cookie, and that the cookie be checked and
+ replaced by the real cookie when a connection request is received.
+ If you omit the auth_cookie, a new secure random 128-bit value will be
+ generated, used, and returned. You will need to use this value to
+ verify incoming x11 requests and replace them with the actual local
+ x11 cookie (which requires some knoweldge of the x11 protocol).
+
+ If a handler is passed in, the handler is called from another thread
+ whenever a new x11 connection arrives. The default handler queues up
+ incoming x11 connections, which may be retrieved using
+ L{Transport.accept}. The handler's calling signature is::
+
+ handler(channel: Channel, (address: str, port: int))
+
+ @param screen_number: the x11 screen number (0, 10, etc)
+ @type screen_number: int
+ @param auth_protocol: the name of the X11 authentication method used;
+ if none is given, C{"MIT-MAGIC-COOKIE-1"} is used
+ @type auth_protocol: str
+ @param auth_cookie: hexadecimal string containing the x11 auth cookie;
+ if none is given, a secure random 128-bit value is generated
+ @type auth_cookie: str
+ @param single_connection: if True, only a single x11 connection will be
+ forwarded (by default, any number of x11 connections can arrive
+ over this session)
+ @type single_connection: bool
+ @param handler: an optional handler to use for incoming X11 connections
+ @type handler: function
+ @return: the auth_cookie used
+ """
+ if self.closed or self.eof_received or self.eof_sent or not self.active:
+ raise SSHException('Channel is not open')
+ if auth_protocol is None:
+ auth_protocol = 'MIT-MAGIC-COOKIE-1'
+ if auth_cookie is None:
+ auth_cookie = binascii.hexlify(self.transport.randpool.get_bytes(16))
+
+ m = Message()
+ m.add_byte(chr(MSG_CHANNEL_REQUEST))
+ m.add_int(self.remote_chanid)
+ m.add_string('x11-req')
+ m.add_boolean(True)
+ m.add_boolean(single_connection)
+ m.add_string(auth_protocol)
+ m.add_string(auth_cookie)
+ m.add_int(screen_number)
+ self.event.clear()
+ self.transport._send_user_message(m)
+ self._wait_for_event()
+ self.transport._set_x11_handler(handler)
+ return auth_cookie
+
def get_transport(self):
"""
Return the L{Transport} associated with this channel.
@@ -333,14 +394,13 @@ class Channel (object):
def set_name(self, name):
"""
Set a name for this channel. Currently it's only used to set the name
- of the log level used for debugging. The name can be fetched with the
+ of the channel in logfile entries. The name can be fetched with the
L{get_name} method.
- @param name: new channel name.
+ @param name: new channel name
@type name: str
"""
- self.name = name
- self.logger = util.get_logger(self.transport.get_log_channel() + '.' + self.name)
+ self._name = name
def get_name(self):
"""
@@ -349,7 +409,7 @@ class Channel (object):
@return: the name of this channel.
@rtype: str
"""
- return self.name
+ return self._name
def get_id(self):
"""
@@ -360,8 +420,6 @@ class Channel (object):
@return: the ID of this channel.
@rtype: int
-
- @since: ivysaur
"""
return self.chanid
@@ -394,8 +452,7 @@ class Channel (object):
self.combine_stderr = combine
if combine and not old:
# copy old stderr buffer into primary buffer
- data = self.in_stderr_buffer
- self.in_stderr_buffer = ''
+ data = self.in_stderr_buffer.empty()
finally:
self.lock.release()
if len(data) > 0:
@@ -419,7 +476,7 @@ class Channel (object):
C{chan.settimeout(None)} is equivalent to C{chan.setblocking(1)}.
@param timeout: seconds to wait for a pending read/write operation
- before raising C{socket.timeout}, or C{None} for no timeout.
+ before raising C{socket.timeout}, or C{None} for no timeout.
@type timeout: float
"""
self.timeout = timeout
@@ -439,17 +496,19 @@ class Channel (object):
"""
Set blocking or non-blocking mode of the channel: if C{blocking} is 0,
the channel is set to non-blocking mode; otherwise it's set to blocking
- mode. Initially all channels are in blocking mode.
+ mode. Initially all channels are in blocking mode.
In non-blocking mode, if a L{recv} call doesn't find any data, or if a
L{send} call can't immediately dispose of the data, an error exception
- is raised. In blocking mode, the calls block until they can proceed.
+ is raised. In blocking mode, the calls block until they can proceed. An
+ EOF condition is considered "immediate data" for L{recv}, so if the
+ channel is closed in the read direction, it will never block.
C{chan.setblocking(0)} is equivalent to C{chan.settimeout(0)};
C{chan.setblocking(1)} is equivalent to C{chan.settimeout(None)}.
@param blocking: 0 to set non-blocking mode; non-0 to set blocking
- mode.
+ mode.
@type blocking: int
"""
if blocking:
@@ -457,6 +516,18 @@ class Channel (object):
else:
self.settimeout(0.0)
+ def getpeername(self):
+ """
+ Return the address of the remote side of this Channel, if possible.
+ This is just a wrapper around C{'getpeername'} on the Transport, used
+ to provide enough of a socket-like interface to allow asyncore to work.
+ (asyncore likes to call C{'getpeername'}.)
+
+ @return: the address if the remote host, if known
+ @rtype: tuple(str, int)
+ """
+ return self.transport.getpeername()
+
def close(self):
"""
Close the channel. All future read/write operations on the channel
@@ -466,15 +537,17 @@ class Channel (object):
"""
self.lock.acquire()
try:
+ # only close the pipe when the user explicitly closes the channel.
+ # otherwise they will get unpleasant surprises. (and do it before
+ # checking self.closed, since the remote host may have already
+ # closed the connection.)
+ if self._pipe is not None:
+ self._pipe.close()
+ self._pipe = None
+
if not self.active or self.closed:
return
msgs = self._close_internal()
-
- # only close the pipe when the user explicitly closes the channel.
- # otherwise they will get unpleasant surprises.
- if self.pipe is not None:
- self.pipe.close()
- self.pipe = None
finally:
self.lock.release()
for m in msgs:
@@ -491,13 +564,7 @@ class Channel (object):
return at least one byte; C{False} otherwise.
@rtype: boolean
"""
- self.lock.acquire()
- try:
- if len(self.in_buffer) == 0:
- return False
- return True
- finally:
- self.lock.release()
+ return self.in_buffer.read_ready()
def recv(self, nbytes):
"""
@@ -514,38 +581,12 @@ class Channel (object):
@raise socket.timeout: if no data is ready before the timeout set by
L{settimeout}.
"""
- out = ''
- self.lock.acquire()
try:
- if len(self.in_buffer) == 0:
- if self.closed or self.eof_received:
- return out
- # should we block?
- if self.timeout == 0.0:
- raise socket.timeout()
- # loop here in case we get woken up but a different thread has grabbed everything in the buffer
- timeout = self.timeout
- while (len(self.in_buffer) == 0) and not self.closed and not self.eof_received:
- then = time.time()
- self.in_buffer_cv.wait(timeout)
- if timeout != None:
- timeout -= time.time() - then
- if timeout <= 0.0:
- raise socket.timeout()
- # something in the buffer and we have the lock
- if len(self.in_buffer) <= nbytes:
- out = self.in_buffer
- self.in_buffer = ''
- if self.pipe is not None:
- # clear the pipe, since no more data is buffered
- self.pipe.clear()
- else:
- out = self.in_buffer[:nbytes]
- self.in_buffer = self.in_buffer[nbytes:]
- ack = self._check_add_window(len(out))
- finally:
- self.lock.release()
+ out = self.in_buffer.read(nbytes, self.timeout)
+ except PipeTimeout, e:
+ raise socket.timeout()
+ ack = self._check_add_window(len(out))
# no need to hold the channel lock when sending this
if ack > 0:
m = Message()
@@ -569,13 +610,7 @@ class Channel (object):
@since: 1.1
"""
- self.lock.acquire()
- try:
- if len(self.in_stderr_buffer) == 0:
- return False
- return True
- finally:
- self.lock.release()
+ return self.in_stderr_buffer.read_ready()
def recv_stderr(self, nbytes):
"""
@@ -596,36 +631,43 @@ class Channel (object):
@since: 1.1
"""
- out = ''
+ try:
+ out = self.in_stderr_buffer.read(nbytes, self.timeout)
+ except PipeTimeout, e:
+ raise socket.timeout()
+
+ ack = self._check_add_window(len(out))
+ # no need to hold the channel lock when sending this
+ if ack > 0:
+ m = Message()
+ m.add_byte(chr(MSG_CHANNEL_WINDOW_ADJUST))
+ m.add_int(self.remote_chanid)
+ m.add_int(ack)
+ self.transport._send_user_message(m)
+
+ return out
+
+ def send_ready(self):
+ """
+ Returns true if data can be written to this channel without blocking.
+ This means the channel is either closed (so any write attempt would
+ return immediately) or there is at least one byte of space in the
+ outbound buffer. If there is at least one byte of space in the
+ outbound buffer, a L{send} call will succeed immediately and return
+ the number of bytes actually written.
+
+ @return: C{True} if a L{send} call on this channel would immediately
+ succeed or fail
+ @rtype: boolean
+ """
self.lock.acquire()
try:
- if len(self.in_stderr_buffer) == 0:
- if self.closed or self.eof_received:
- return out
- # should we block?
- if self.timeout == 0.0:
- raise socket.timeout()
- # loop here in case we get woken up but a different thread has grabbed everything in the buffer
- timeout = self.timeout
- while (len(self.in_stderr_buffer) == 0) and not self.closed and not self.eof_received:
- then = time.time()
- self.in_stderr_buffer_cv.wait(timeout)
- if timeout != None:
- timeout -= time.time() - then
- if timeout <= 0.0:
- raise socket.timeout()
- # something in the buffer and we have the lock
- if len(self.in_stderr_buffer) <= nbytes:
- out = self.in_stderr_buffer
- self.in_stderr_buffer = ''
- else:
- out = self.in_stderr_buffer[:nbytes]
- self.in_stderr_buffer = self.in_stderr_buffer[nbytes:]
- self._check_add_window(len(out))
+ if self.closed or self.eof_sent:
+ return True
+ return self.out_window_size > 0
finally:
self.lock.release()
- return out
-
+
def send(self, s):
"""
Send data to the channel. Returns the number of bytes sent, or 0 if
@@ -634,9 +676,9 @@ class Channel (object):
transmitted, the application needs to attempt delivery of the remaining
data.
- @param s: data to send.
+ @param s: data to send
@type s: str
- @return: number of bytes actually sent.
+ @return: number of bytes actually sent
@rtype: int
@raise socket.timeout: if no data could be sent before the timeout set
@@ -653,9 +695,11 @@ class Channel (object):
m.add_byte(chr(MSG_CHANNEL_DATA))
m.add_int(self.remote_chanid)
m.add_string(s[:size])
- self.transport._send_user_message(m)
finally:
self.lock.release()
+ # Note: We release self.lock before calling _send_user_message.
+ # Otherwise, we can deadlock during re-keying.
+ self.transport._send_user_message(m)
return size
def send_stderr(self, s):
@@ -689,9 +733,11 @@ class Channel (object):
m.add_int(self.remote_chanid)
m.add_int(1)
m.add_string(s[:size])
- self.transport._send_user_message(m)
finally:
self.lock.release()
+ # Note: We release self.lock before calling _send_user_message.
+ # Otherwise, we can deadlock during re-keying.
+ self.transport._send_user_message(m)
return size
def sendall(self, s):
@@ -776,14 +822,14 @@ class Channel (object):
def fileno(self):
"""
Returns an OS-level file descriptor which can be used for polling, but
- but I{not} for reading or writing). This is primaily to allow python's
+ but I{not} for reading or writing. This is primaily to allow python's
C{select} module to work.
The first time C{fileno} is called on a channel, a pipe is created to
simulate real OS-level file descriptor (FD) behavior. Because of this,
two OS-level FDs are created, which will use up FDs faster than normal.
- You won't notice this effect unless you open hundreds or thousands of
- channels simultaneously, but it's still notable.
+ (You won't notice this effect unless you have hundreds of channels
+ open at the same time.)
@return: an OS-level file descriptor
@rtype: int
@@ -793,13 +839,14 @@ class Channel (object):
"""
self.lock.acquire()
try:
- if self.pipe is not None:
- return self.pipe.fileno()
+ if self._pipe is not None:
+ return self._pipe.fileno()
# create the pipe and feed in any existing data
- self.pipe = pipe.make_pipe()
- if len(self.in_buffer) > 0:
- self.pipe.set()
- return self.pipe.fileno()
+ self._pipe = pipe.make_pipe()
+ p1, p2 = pipe.make_or_pipe(self._pipe)
+ self.in_buffer.set_event(p1)
+ self.in_stderr_buffer.set_event(p2)
+ return self._pipe.fileno()
finally:
self.lock.release()
@@ -856,7 +903,7 @@ class Channel (object):
def _set_transport(self, transport):
self.transport = transport
- self.logger = util.get_logger(self.transport.get_log_channel() + '.' + self.name)
+ self.logger = util.get_logger(self.transport.get_log_channel())
def _set_window(self, window_size, max_packet_size):
self.in_window_size = window_size
@@ -869,7 +916,7 @@ class Channel (object):
def _set_remote_channel(self, chanid, window_size, max_packet_size):
self.remote_chanid = chanid
self.out_window_size = window_size
- self.out_max_packet_size = max(max_packet_size, self.MIN_PACKET_SIZE)
+ 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)
@@ -894,16 +941,7 @@ class Channel (object):
s = m
else:
s = m.get_string()
- self.lock.acquire()
- try:
- if self.ultra_debug:
- self._log(DEBUG, 'fed %d bytes' % len(s))
- if self.pipe is not None:
- self.pipe.set()
- self.in_buffer += s
- self.in_buffer_cv.notifyAll()
- finally:
- self.lock.release()
+ self.in_buffer.feed(s)
def _feed_extended(self, m):
code = m.get_int()
@@ -912,15 +950,9 @@ class Channel (object):
self._log(ERROR, 'unknown extended_data type %d; discarding' % code)
return
if self.combine_stderr:
- return self._feed(s)
- self.lock.acquire()
- try:
- if self.ultra_debug:
- self._log(DEBUG, 'fed %d stderr bytes' % len(s))
- self.in_stderr_buffer += s
- self.in_stderr_buffer_cv.notifyAll()
- finally:
- self.lock.release()
+ self._feed(s)
+ else:
+ self.in_stderr_buffer.feed(s)
def _window_adjust(self, m):
nbytes = m.get_int()
@@ -984,6 +1016,16 @@ class Channel (object):
else:
ok = server.check_channel_window_change_request(self, width, height, pixelwidth,
pixelheight)
+ elif key == 'x11-req':
+ single_connection = m.get_boolean()
+ auth_proto = m.get_string()
+ auth_cookie = m.get_string()
+ screen_number = m.get_int()
+ if server is None:
+ ok = False
+ else:
+ ok = server.check_channel_x11_request(self, single_connection,
+ auth_proto, auth_cookie, screen_number)
else:
self._log(DEBUG, 'Unhandled channel request "%s"' % key)
ok = False
@@ -1001,13 +1043,13 @@ class Channel (object):
try:
if not self.eof_received:
self.eof_received = True
- self.in_buffer_cv.notifyAll()
- self.in_stderr_buffer_cv.notifyAll()
- if self.pipe is not None:
- self.pipe.set_forever()
+ self.in_buffer.close()
+ self.in_stderr_buffer.close()
+ if self._pipe is not None:
+ self._pipe.set_forever()
finally:
self.lock.release()
- self._log(DEBUG, 'EOF received')
+ self._log(DEBUG, 'EOF received (%s)', self._name)
def _handle_close(self, m):
self.lock.acquire()
@@ -1024,17 +1066,29 @@ class Channel (object):
### internals...
- def _log(self, level, msg):
- self.logger.log(level, msg)
+ def _log(self, level, msg, *args):
+ self.logger.log(level, "[chan " + self._name + "] " + msg, *args)
+
+ 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
def _set_closed(self):
# you are holding the lock.
self.closed = True
- self.in_buffer_cv.notifyAll()
- self.in_stderr_buffer_cv.notifyAll()
+ self.in_buffer.close()
+ self.in_stderr_buffer.close()
self.out_buffer_cv.notifyAll()
- if self.pipe is not None:
- self.pipe.set_forever()
+ if self._pipe is not None:
+ self._pipe.set_forever()
def _send_eof(self):
# you are holding the lock.
@@ -1044,7 +1098,7 @@ class Channel (object):
m.add_byte(chr(MSG_CHANNEL_EOF))
m.add_int(self.remote_chanid)
self.eof_sent = True
- self._log(DEBUG, 'EOF sent')
+ self._log(DEBUG, 'EOF sent (%s)', self._name)
return m
def _close_internal(self):
@@ -1072,19 +1126,22 @@ class Channel (object):
self.lock.release()
def _check_add_window(self, n):
- # already holding the lock!
- if self.closed or self.eof_received or not self.active:
- return 0
- if self.ultra_debug:
- self._log(DEBUG, 'addwindow %d' % n)
- self.in_window_sofar += n
- if self.in_window_sofar <= self.in_window_threshold:
- return 0
- if self.ultra_debug:
- self._log(DEBUG, 'addwindow send %d' % self.in_window_sofar)
- out = self.in_window_sofar
- self.in_window_sofar = 0
- return out
+ self.lock.acquire()
+ try:
+ if self.closed or self.eof_received or not self.active:
+ return 0
+ if self.ultra_debug:
+ self._log(DEBUG, 'addwindow %d' % n)
+ self.in_window_sofar += n
+ if self.in_window_sofar <= self.in_window_threshold:
+ return 0
+ if self.ultra_debug:
+ self._log(DEBUG, 'addwindow send %d' % self.in_window_sofar)
+ out = self.in_window_sofar
+ self.in_window_sofar = 0
+ return out
+ finally:
+ self.lock.release()
def _wait_for_send_window(self, size):
"""
@@ -1155,8 +1212,6 @@ class ChannelFile (BufferedFile):
def _write(self, data):
self.channel.sendall(data)
return len(data)
-
- seek = BufferedFile.seek
class ChannelStderrFile (ChannelFile):
diff --git a/paramiko/client.py b/paramiko/client.py
new file mode 100644
index 0000000..7870ea9
--- /dev/null
+++ b/paramiko/client.py
@@ -0,0 +1,474 @@
+# Copyright (C) 2006-2007 Robey Pointer <robey@lag.net>
+#
+# This file is part of paramiko.
+#
+# Paramiko is free software; you can redistribute it and/or modify it under the
+# terms of the GNU Lesser General Public License as published by the Free
+# Software Foundation; either version 2.1 of the License, or (at your option)
+# any later version.
+#
+# Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+# A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+# details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with Paramiko; if not, write to the Free Software Foundation, Inc.,
+# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+
+"""
+L{SSHClient}.
+"""
+
+from binascii import hexlify
+import getpass
+import os
+import socket
+import warnings
+
+from paramiko.agent import Agent
+from paramiko.common import *
+from paramiko.dsskey import DSSKey
+from paramiko.hostkeys import HostKeys
+from paramiko.resource import ResourceManager
+from paramiko.rsakey import RSAKey
+from paramiko.ssh_exception import SSHException, BadHostKeyException
+from paramiko.transport import Transport
+
+
+class MissingHostKeyPolicy (object):
+ """
+ Interface for defining the policy that L{SSHClient} should use when the
+ SSH server's hostname is not in either the system host keys or the
+ 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
+ isn't in either the system or local L{HostKeys} object. To accept
+ the key, simply return. To reject, raised an exception (which will
+ be passed to the calling application).
+ """
+ pass
+
+
+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:
+ client.save_host_keys(client._host_keys_filename)
+ client._log(DEBUG, 'Adding %s host key for %s: %s' %
+ (key.get_name(), hostname, hexlify(key.get_fingerprint())))
+
+
+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())))
+ raise SSHException('Unknown server %s' % hostname)
+
+
+class WarningPolicy (MissingHostKeyPolicy):
+ """
+ Policy for logging a python-style warning for an unknown host key, but
+ accepting it. This is used by L{SSHClient}.
+ """
+ def missing_host_key(self, client, hostname, key):
+ warnings.warn('Unknown %s host key for %s: %s' %
+ (key.get_name(), hostname, hexlify(key.get_fingerprint())))
+
+
+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
+ """
+
+ def __init__(self):
+ """
+ Create a new SSHClient.
+ """
+ self._system_host_keys = HostKeys()
+ self._host_keys = HostKeys()
+ self._host_keys_filename = None
+ 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
+ probably only useful on posix.
+
+ @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
+ """
+ if filename is None:
+ # try the user's .ssh key file, and mask exceptions
+ filename = os.path.expanduser('~/.ssh/known_hosts')
+ try:
+ self._system_host_keys.load(filename)
+ except IOError:
+ 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
+ method will be checked I{after} keys loaded via L{load_system_host_keys},
+ 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
+
+ @raise IOError: if the filename could not be read
+ """
+ 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')
+ f.write('# SSH host keys collected by paramiko\n')
+ for hostname, keys in self._host_keys.iteritems():
+ 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"}
+ but it can be set to anything you want.
+
+ @param name: new channel name for logging
+ @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,
+ 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
+ is checked against the system host keys (see L{load_system_host_keys})
+ and any local host keys (L{load_host_keys}). If the server's hostname
+ 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.
+
+ @param hostname: the server to connect to
+ @type hostname: str
+ @param port: the server port to connect to
+ @type port: int
+ @param username: the username to authenticate as (defaults to the
+ current local username)
+ @type username: str
+ @param password: a password to use for authentication or for unlocking
+ a private key
+ @type password: str
+ @param pkey: an optional private key to use for authentication
+ @type pkey: L{PKey}
+ @param key_filename: the filename, or list of filenames, of optional
+ private key(s) to try for authentication
+ @type key_filename: str or list(str)
+ @param timeout: an optional timeout (in seconds) for the TCP connect
+ @type timeout: float
+ @param allow_agent: set to False to disable connecting to the SSH agent
+ @type allow_agent: bool
+ @param look_for_keys: set to False to disable searching for discoverable
+ private key files in C{~/.ssh/}
+ @type look_for_keys: bool
+
+ @raise BadHostKeyException: if the server's host key could not be
+ verified
+ @raise AuthenticationException: if authentication failed
+ @raise SSHException: if there was any other error connecting or
+ establishing an SSH session
+ @raise socket.error: if a socket error occurred while connecting
+ """
+ sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+ if timeout is not None:
+ try:
+ sock.settimeout(timeout)
+ except:
+ pass
+
+ sock.connect((hostname, port))
+ 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 our_server_key is None:
+ our_server_key = self._host_keys.get(hostname, {}).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)
+ # 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)):
+ key_filenames = [ key_filename ]
+ 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}.
+ """
+ if self._transport is None:
+ return
+ self._transport.close()
+ self._transport = None
+
+ def exec_command(self, command, bufsize=-1):
+ """
+ Execute a command on the SSH server. A new L{Channel} is opened and
+ 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
+ @type bufsize: int
+ @return: the stdin, stdout, and stderr of the executing command
+ @rtype: tuple(L{ChannelFile}, L{ChannelFile}, L{ChannelFile})
+
+ @raise SSHException: if the server fails to execute the command
+ """
+ chan = self._transport.open_session()
+ chan.exec_command(command)
+ stdin = chan.makefile('wb', bufsize)
+ stdout = chan.makefile('rb', bufsize)
+ stderr = chan.makefile_stderr('rb', bufsize)
+ return stdin, stdout, stderr
+
+ def invoke_shell(self, term='vt100', width=80, height=24):
+ """
+ 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
+ @type width: int
+ @param height: the height (in characters) of the terminal window
+ @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()))
+ self._transport.auth_publickey(username, pkey)
+ return
+ except SSHException, e:
+ saved_exception = e
+
+ for key_filename in key_filenames:
+ for pkey_class in (RSAKey, DSSKey):
+ try:
+ key = pkey_class.from_private_key_file(key_filename, password)
+ self._log(DEBUG, 'Trying key %s from %s' % (hexlify(key.get_fingerprint()), key_filename))
+ self._transport.auth_publickey(username, key)
+ return
+ except SSHException, e:
+ saved_exception = e
+
+ if allow_agent:
+ for key in Agent().get_keys():
+ try:
+ self._log(DEBUG, 'Trying SSH agent key %s' % hexlify(key.get_fingerprint()))
+ self._transport.auth_publickey(username, key)
+ return
+ except SSHException, e:
+ saved_exception = e
+
+ keyfiles = []
+ rsa_key = os.path.expanduser('~/.ssh/id_rsa')
+ dsa_key = os.path.expanduser('~/.ssh/id_dsa')
+ if os.path.isfile(rsa_key):
+ keyfiles.append((RSAKey, rsa_key))
+ if os.path.isfile(dsa_key):
+ keyfiles.append((DSSKey, dsa_key))
+ # look in ~/ssh/ for windows users:
+ rsa_key = os.path.expanduser('~/ssh/id_rsa')
+ dsa_key = os.path.expanduser('~/ssh/id_dsa')
+ if os.path.isfile(rsa_key):
+ keyfiles.append((RSAKey, rsa_key))
+ if os.path.isfile(dsa_key):
+ keyfiles.append((DSSKey, dsa_key))
+
+ if not look_for_keys:
+ keyfiles = []
+
+ for pkey_class, filename in keyfiles:
+ try:
+ key = pkey_class.from_private_key_file(filename, password)
+ self._log(DEBUG, 'Trying discovered key %s in %s' % (hexlify(key.get_fingerprint()), filename))
+ self._transport.auth_publickey(username, key)
+ return
+ except SSHException, e:
+ saved_exception = e
+ except IOError, e:
+ saved_exception = e
+
+ if password is not None:
+ try:
+ self._transport.auth_password(username, password)
+ return
+ except SSHException, e:
+ saved_exception = e
+
+ # if we got an auth-failed exception earlier, re-raise it
+ if saved_exception is not None:
+ raise saved_exception
+ raise SSHException('No authentication methods available')
+
+ def _log(self, level, msg):
+ self._transport._log(level, msg)
+
diff --git a/paramiko/common.py b/paramiko/common.py
index c5999e6..f4a4d81 100644
--- a/paramiko/common.py
+++ b/paramiko/common.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2005 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
#
# This file is part of paramiko.
#
@@ -21,7 +21,7 @@ Common constants and global variables.
"""
MSG_DISCONNECT, MSG_IGNORE, MSG_UNIMPLEMENTED, MSG_DEBUG, MSG_SERVICE_REQUEST, \
- MSG_SERVICE_ACCEPT = range(1, 7)
+ MSG_SERVICE_ACCEPT = range(1, 7)
MSG_KEXINIT, MSG_NEWKEYS = range(20, 22)
MSG_USERAUTH_REQUEST, MSG_USERAUTH_FAILURE, MSG_USERAUTH_SUCCESS, \
MSG_USERAUTH_BANNER = range(50, 54)
@@ -29,9 +29,9 @@ MSG_USERAUTH_PK_OK = 60
MSG_USERAUTH_INFO_REQUEST, MSG_USERAUTH_INFO_RESPONSE = range(60, 62)
MSG_GLOBAL_REQUEST, MSG_REQUEST_SUCCESS, MSG_REQUEST_FAILURE = range(80, 83)
MSG_CHANNEL_OPEN, MSG_CHANNEL_OPEN_SUCCESS, MSG_CHANNEL_OPEN_FAILURE, \
- MSG_CHANNEL_WINDOW_ADJUST, MSG_CHANNEL_DATA, MSG_CHANNEL_EXTENDED_DATA, \
- MSG_CHANNEL_EOF, MSG_CHANNEL_CLOSE, MSG_CHANNEL_REQUEST, \
- MSG_CHANNEL_SUCCESS, MSG_CHANNEL_FAILURE = range(90, 101)
+ MSG_CHANNEL_WINDOW_ADJUST, MSG_CHANNEL_DATA, MSG_CHANNEL_EXTENDED_DATA, \
+ MSG_CHANNEL_EOF, MSG_CHANNEL_CLOSE, MSG_CHANNEL_REQUEST, \
+ MSG_CHANNEL_SUCCESS, MSG_CHANNEL_FAILURE = range(90, 101)
# for debugging:
@@ -95,21 +95,10 @@ CONNECTION_FAILED_CODE = {
DISCONNECT_SERVICE_NOT_AVAILABLE, DISCONNECT_AUTH_CANCELLED_BY_USER, \
DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE = 7, 13, 14
-
-from Crypto.Util.randpool import PersistentRandomPool, RandomPool
+from rng import StrongLockingRandomPool
# keep a crypto-strong PRNG nearby
-try:
- randpool = PersistentRandomPool(os.path.join(os.path.expanduser('~'), '/.randpool'))
-except:
- # the above will likely fail on Windows - fall back to non-persistent random pool
- randpool = RandomPool()
-
-try:
- randpool.randomize()
-except:
- # earlier versions of pyCrypto (pre-2.0) don't have randomize()
- pass
+randpool = StrongLockingRandomPool()
import sys
if sys.version_info < (2, 3):
@@ -129,6 +118,7 @@ else:
import logging
PY22 = False
+
DEBUG = logging.DEBUG
INFO = logging.INFO
WARNING = logging.WARNING
diff --git a/paramiko/compress.py b/paramiko/compress.py
index bdf4b42..08fffb1 100644
--- a/paramiko/compress.py
+++ b/paramiko/compress.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2005 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
#
# This file is part of paramiko.
#
diff --git a/paramiko/config.py b/paramiko/config.py
new file mode 100644
index 0000000..1e3d680
--- /dev/null
+++ b/paramiko/config.py
@@ -0,0 +1,105 @@
+# Copyright (C) 2006-2007 Robey Pointer <robey@lag.net>
+#
+# This file is part of paramiko.
+#
+# Paramiko is free software; you can redistribute it and/or modify it under the
+# terms of the GNU Lesser General Public License as published by the Free
+# Software Foundation; either version 2.1 of the License, or (at your option)
+# any later version.
+#
+# Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+# A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+# details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with Paramiko; if not, write to the Free Software Foundation, Inc.,
+# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+
+"""
+L{SSHConfig}.
+"""
+
+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
+ 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]
+ for line in file_obj:
+ line = line.rstrip('\n').lstrip()
+ if (line == '') or (line[0] == '#'):
+ continue
+ if '=' in line:
+ key, value = line.split('=', 1)
+ key = key.strip().lower()
+ else:
+ # find first whitespace, and split there
+ i = 0
+ while (i < len(line)) and not line[i].isspace():
+ i += 1
+ if i == len(line):
+ raise Exception('Unparsable line: %r' % line)
+ key = line[:i].lower()
+ 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)
+ else:
+ config[key] = value
+
+ def lookup(self, hostname):
+ """
+ Return a dict of config options for a given hostname.
+
+ 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 *"}
+ 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
+ values.
+
+ @param hostname: the hostname to lookup
+ @type hostname: str
+ """
+ matches = [x for x in self._config if fnmatch.fnmatch(hostname, x['host'])]
+ # sort in order of shortest match (usually '*') to longest
+ matches.sort(lambda x,y: cmp(len(x['host']), len(y['host'])))
+ ret = {}
+ for m in matches:
+ ret.update(m)
+ del ret['host']
+ return ret
diff --git a/paramiko/dsskey.py b/paramiko/dsskey.py
index 2b31372..9f381d2 100644
--- a/paramiko/dsskey.py
+++ b/paramiko/dsskey.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2005 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
#
# This file is part of paramiko.
#
@@ -37,7 +37,15 @@ class DSSKey (PKey):
data.
"""
- def __init__(self, msg=None, data=None, filename=None, password=None, vals=None):
+ def __init__(self, msg=None, data=None, filename=None, password=None, vals=None, file_obj=None):
+ self.p = None
+ self.q = None
+ self.g = None
+ self.y = None
+ self.x = None
+ if file_obj is not None:
+ self._from_private_key(file_obj, password)
+ return
if filename is not None:
self._from_private_key_file(filename, password)
return
@@ -81,7 +89,7 @@ class DSSKey (PKey):
return self.size
def can_sign(self):
- return hasattr(self, 'x')
+ return self.x is not None
def sign_ssh_data(self, rpool, data):
digest = SHA.new(data).digest()
@@ -123,14 +131,22 @@ class DSSKey (PKey):
dss = DSA.construct((long(self.y), long(self.g), long(self.p), long(self.q)))
return dss.verify(sigM, (sigR, sigS))
- def write_private_key_file(self, filename, password=None):
+ def _encode_key(self):
+ if self.x is None:
+ raise SSHException('Not enough key information')
keylist = [ 0, self.p, self.q, self.g, self.y, self.x ]
try:
b = BER()
b.encode(keylist)
except BERException:
raise SSHException('Unable to create ber encoding of key')
- self._write_private_key_file('DSA', filename, str(b), password)
+ return str(b)
+
+ def write_private_key_file(self, filename, password=None):
+ self._write_private_key_file('DSA', filename, self._encode_key(), password)
+
+ def write_private_key(self, file_obj, password=None):
+ self._write_private_key('DSA', file_obj, self._encode_key(), password)
def generate(bits=1024, progress_func=None):
"""
@@ -144,8 +160,6 @@ class DSSKey (PKey):
@type progress_func: function
@return: new private key
@rtype: L{DSSKey}
-
- @since: fearow
"""
randpool.stir()
dsa = DSA.generate(bits, randpool.get_bytes, progress_func)
@@ -159,9 +173,16 @@ class DSSKey (PKey):
def _from_private_key_file(self, filename, password):
+ data = self._read_private_key_file('DSA', filename, password)
+ self._decode_key(data)
+
+ def _from_private_key(self, file_obj, password):
+ data = self._read_private_key('DSA', file_obj, password)
+ self._decode_key(data)
+
+ def _decode_key(self, data):
# private key file contains:
# DSAPrivateKey = { version = 0, p, q, g, y, x }
- data = self._read_private_key_file('DSA', filename, password)
try:
keylist = BER(data).decode()
except BERException, x:
diff --git a/paramiko/file.py b/paramiko/file.py
index c29e7c4..7db4401 100644
--- a/paramiko/file.py
+++ b/paramiko/file.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2005 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
#
# This file is part of paramiko.
#
@@ -23,15 +23,6 @@ BufferedFile.
from cStringIO import StringIO
-_FLAG_READ = 0x1
-_FLAG_WRITE = 0x2
-_FLAG_APPEND = 0x4
-_FLAG_BINARY = 0x10
-_FLAG_BUFFERED = 0x20
-_FLAG_LINE_BUFFERED = 0x40
-_FLAG_UNIVERSAL_NEWLINE = 0x80
-
-
class BufferedFile (object):
"""
Reusable base class to implement python-style file buffering around a
@@ -44,7 +35,16 @@ class BufferedFile (object):
SEEK_CUR = 1
SEEK_END = 2
+ FLAG_READ = 0x1
+ FLAG_WRITE = 0x2
+ FLAG_APPEND = 0x4
+ FLAG_BINARY = 0x10
+ FLAG_BUFFERED = 0x20
+ FLAG_LINE_BUFFERED = 0x40
+ FLAG_UNIVERSAL_NEWLINE = 0x80
+
def __init__(self):
+ self.newlines = None
self._flags = 0
self._bufsize = self._DEFAULT_BUFSIZE
self._wbuffer = StringIO()
@@ -55,6 +55,8 @@ class BufferedFile (object):
# realpos - position according the OS
# (these may be different because we buffer for line reading)
self._pos = self._realpos = 0
+ # size only matters for seekable files
+ self._size = 0
def __del__(self):
self.close()
@@ -112,16 +114,16 @@ class BufferedFile (object):
file first). If the C{size} argument is negative or omitted, read all
the remaining data in the file.
- @param size: maximum number of bytes to read.
+ @param size: maximum number of bytes to read
@type size: int
@return: data read from the file, or an empty string if EOF was
- encountered immediately.
+ encountered immediately
@rtype: str
"""
if self._closed:
raise IOError('File is closed')
- if not (self._flags & _FLAG_READ):
- raise IOError('File not open for reading')
+ if not (self._flags & self.FLAG_READ):
+ raise IOError('File is not open for reading')
if (size is None) or (size < 0):
# go for broke
result = self._rbuffer
@@ -144,8 +146,11 @@ class BufferedFile (object):
self._pos += len(result)
return result
while len(self._rbuffer) < size:
+ read_size = size - len(self._rbuffer)
+ if self._flags & self.FLAG_BUFFERED:
+ read_size = max(self._bufsize, read_size)
try:
- new_data = self._read(max(self._bufsize, size - len(self._rbuffer)))
+ new_data = self._read(read_size)
except EOFError:
new_data = None
if (new_data is None) or (len(new_data) == 0):
@@ -178,11 +183,11 @@ class BufferedFile (object):
# it's almost silly how complex this function is.
if self._closed:
raise IOError('File is closed')
- if not (self._flags & _FLAG_READ):
+ if not (self._flags & self.FLAG_READ):
raise IOError('File not open for reading')
line = self._rbuffer
while True:
- if self._at_trailing_cr and (self._flags & _FLAG_UNIVERSAL_NEWLINE) and (len(line) > 0):
+ if self._at_trailing_cr and (self._flags & self.FLAG_UNIVERSAL_NEWLINE) and (len(line) > 0):
# edge case: the newline may be '\r\n' and we may have read
# only the first '\r' last time.
if line[0] == '\n':
@@ -202,8 +207,8 @@ class BufferedFile (object):
return line
n = size - len(line)
else:
- n = self._DEFAULT_BUFSIZE
- if ('\n' in line) or ((self._flags & _FLAG_UNIVERSAL_NEWLINE) and ('\r' in line)):
+ n = self._bufsize
+ if ('\n' in line) or ((self._flags & self.FLAG_UNIVERSAL_NEWLINE) and ('\r' in line)):
break
try:
new_data = self._read(n)
@@ -217,7 +222,7 @@ class BufferedFile (object):
self._realpos += len(new_data)
# find the newline
pos = line.find('\n')
- if self._flags & _FLAG_UNIVERSAL_NEWLINE:
+ if self._flags & self.FLAG_UNIVERSAL_NEWLINE:
rpos = line.find('\r')
if (rpos >= 0) and ((rpos < pos) or (pos < 0)):
pos = rpos
@@ -250,7 +255,7 @@ class BufferedFile (object):
"""
lines = []
bytes = 0
- while 1:
+ while True:
line = self.readline()
if len(line) == 0:
break
@@ -303,13 +308,13 @@ class BufferedFile (object):
"""
if self._closed:
raise IOError('File is closed')
- if not (self._flags & _FLAG_WRITE):
+ if not (self._flags & self.FLAG_WRITE):
raise IOError('File not open for writing')
- if not (self._flags & _FLAG_BUFFERED):
+ if not (self._flags & self.FLAG_BUFFERED):
self._write_all(data)
return
self._wbuffer.write(data)
- if self._flags & _FLAG_LINE_BUFFERED:
+ if self._flags & self.FLAG_LINE_BUFFERED:
# only scan the new data for linefeed, to avoid wasting time.
last_newline_pos = data.rfind('\n')
if last_newline_pos >= 0:
@@ -387,26 +392,37 @@ class BufferedFile (object):
"""
Subclasses call this method to initialize the BufferedFile.
"""
+ # set bufsize in any event, because it's used for readline().
+ self._bufsize = self._DEFAULT_BUFSIZE
+ if bufsize < 0:
+ # do no buffering by default, because otherwise writes will get
+ # buffered in a way that will probably confuse people.
+ bufsize = 0
if bufsize == 1:
# apparently, line buffering only affects writes. reads are only
# buffered if you call readline (directly or indirectly: iterating
# over a file will indirectly call readline).
- self._flags |= _FLAG_BUFFERED | _FLAG_LINE_BUFFERED
+ self._flags |= self.FLAG_BUFFERED | self.FLAG_LINE_BUFFERED
elif bufsize > 1:
self._bufsize = bufsize
- self._flags |= _FLAG_BUFFERED
+ self._flags |= self.FLAG_BUFFERED
+ self._flags &= ~self.FLAG_LINE_BUFFERED
+ elif bufsize == 0:
+ # unbuffered
+ self._flags &= ~(self.FLAG_BUFFERED | self.FLAG_LINE_BUFFERED)
+
if ('r' in mode) or ('+' in mode):
- self._flags |= _FLAG_READ
+ self._flags |= self.FLAG_READ
if ('w' in mode) or ('+' in mode):
- self._flags |= _FLAG_WRITE
+ self._flags |= self.FLAG_WRITE
if ('a' in mode):
- self._flags |= _FLAG_WRITE | _FLAG_APPEND
+ self._flags |= self.FLAG_WRITE | self.FLAG_APPEND
self._size = self._get_size()
self._pos = self._realpos = self._size
if ('b' in mode):
- self._flags |= _FLAG_BINARY
+ self._flags |= self.FLAG_BINARY
if ('U' in mode):
- self._flags |= _FLAG_UNIVERSAL_NEWLINE
+ self._flags |= self.FLAG_UNIVERSAL_NEWLINE
# built-in file objects have this attribute to store which kinds of
# line terminations they've seen:
# <http://www.python.org/doc/current/lib/built-in-funcs.html>
@@ -418,7 +434,7 @@ class BufferedFile (object):
while len(data) > 0:
count = self._write(data)
data = data[count:]
- if self._flags & _FLAG_APPEND:
+ if self._flags & self.FLAG_APPEND:
self._size += count
self._pos = self._realpos = self._size
else:
@@ -430,7 +446,7 @@ class BufferedFile (object):
# silliness about tracking what kinds of newlines we've seen.
# i don't understand why it can be None, a string, or a tuple, instead
# of just always being a tuple, but we'll emulate that behavior anyway.
- if not (self._flags & _FLAG_UNIVERSAL_NEWLINE):
+ if not (self._flags & self.FLAG_UNIVERSAL_NEWLINE):
return
if self.newlines is None:
self.newlines = newline
diff --git a/paramiko/hostkeys.py b/paramiko/hostkeys.py
new file mode 100644
index 0000000..0c0ac8c
--- /dev/null
+++ b/paramiko/hostkeys.py
@@ -0,0 +1,315 @@
+# Copyright (C) 2006-2007 Robey Pointer <robey@lag.net>
+#
+# This file is part of paramiko.
+#
+# Paramiko is free software; you can redistribute it and/or modify it under the
+# terms of the GNU Lesser General Public License as published by the Free
+# Software Foundation; either version 2.1 of the License, or (at your option)
+# any later version.
+#
+# Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+# A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+# details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with Paramiko; if not, write to the Free Software Foundation, Inc.,
+# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+
+"""
+L{HostKeys}
+"""
+
+import base64
+from Crypto.Hash import SHA, HMAC
+import UserDict
+
+from paramiko.common import *
+from paramiko.dsskey import DSSKey
+from paramiko.rsakey import RSAKey
+
+
+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
+ self.key = key
+
+ def from_line(cls, line):
+ """
+ Parses the given line of text to find the names for the host,
+ the type of key, and the key data. The line is expected to be in the
+ format used by the openssh known_hosts file.
+
+ Lines are expected to not have leading or trailing whitespace.
+ We don't bother to check for comments or empty lines. All of
+ that should be taken care of before sending the line to us.
+
+ @param line: a line from an OpenSSH known_hosts file
+ @type line: str
+ """
+ fields = line.split(' ')
+ if len(fields) != 3:
+ # Bad number of fields
+ return None
+
+ names, keytype, key = fields
+ names = names.split(',')
+
+ # Decide what kind of key we're looking at and create an object
+ # to hold it accordingly.
+ if keytype == 'ssh-rsa':
+ key = RSAKey(data=base64.decodestring(key))
+ elif keytype == 'ssh-dss':
+ key = DSSKey(data=base64.decodestring(key))
+ else:
+ return None
+
+ return cls(names, key)
+ from_line = classmethod(from_line)
+
+ def to_line(self):
+ """
+ Returns a string in OpenSSH known_hosts file format, or None if
+ the object is not in a valid state. A trailing newline is
+ included.
+ """
+ if self.valid:
+ 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)
+
+
+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
+ """
+ # emulate a dict of { hostname: { keytype: PKey } }
+ 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"})
+ @type keytype: str
+ @param key: the key to add
+ @type key: L{PKey}
+ """
+ for e in self._entries:
+ if (hostname in e.hostnames) and (e.key.get_name() == keytype):
+ 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')
+ for line in f:
+ line = line.strip()
+ if (len(line) == 0) or (line[0] == '#'):
+ continue
+ e = HostKeyEntry.from_line(line)
+ 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')
+ for e in self._entries:
+ line = e.to_line()
+ if line:
+ f.write(line)
+ f.close()
+
+ def lookup(self, hostname):
+ """
+ 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})
+ @rtype: dict(str, L{PKey})
+ """
+ class SubDict (UserDict.DictMixin):
+ def __init__(self, hostname, entries, hostkeys):
+ 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:
+ continue
+ if e.key.get_name() == key:
+ # replace
+ e.key = val
+ break
+ else:
+ # add a new one
+ 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]
+
+ entries = []
+ for e in self._entries:
+ for h in e.hostnames:
+ if (h.startswith('|1|') and (self.hash_host(hostname, h) == h)) or (h == hostname):
+ entries.append(e)
+ 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
+ @type key: L{PKey}
+ @return: C{True} if the key is associated with the hostname; C{False}
+ if not
+ @rtype: bool
+ """
+ k = self.lookup(hostname)
+ if k is None:
+ return False
+ host_key = k.get(key.get_name(), None)
+ if host_key is None:
+ return False
+ return str(host_key) == str(key)
+
+ def clear(self):
+ """
+ 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:
+ self._entries.append(HostKeyEntry([hostname], None))
+ return
+ for key_type in entry.keys():
+ found = False
+ for e in self._entries:
+ if (hostname in e.hostnames) and (e.key.get_name() == key_type):
+ # replace
+ e.key = entry[key_type]
+ 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 = []
+ for e in self._entries:
+ for h in e.hostnames:
+ if h not in ret:
+ ret.append(h)
+ return ret
+
+ def values(self):
+ ret = []
+ for k in self.keys():
+ ret.append(self.lookup(k))
+ return ret
+
+ def hash_host(hostname, salt=None):
+ """
+ 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)
+ @type salt: str
+ @return: the hashed hostname
+ @rtype: str
+ """
+ if salt is None:
+ salt = randpool.get_bytes(SHA.digest_size)
+ else:
+ if salt.startswith('|1|'):
+ salt = salt.split('|')[2]
+ salt = base64.decodestring(salt)
+ assert len(salt) == SHA.digest_size
+ hmac = HMAC.HMAC(salt, hostname, SHA).digest()
+ hostkey = '|1|%s|%s' % (base64.encodestring(salt), base64.encodestring(hmac))
+ return hostkey.replace('\n', '')
+ hash_host = staticmethod(hash_host)
+
diff --git a/paramiko/kex_gex.py b/paramiko/kex_gex.py
index 994d76c..63a0c99 100644
--- a/paramiko/kex_gex.py
+++ b/paramiko/kex_gex.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2005 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
#
# This file is part of paramiko.
#
@@ -31,7 +31,8 @@ from paramiko.message import Message
from paramiko.ssh_exception import SSHException
-_MSG_KEXDH_GEX_GROUP, _MSG_KEXDH_GEX_INIT, _MSG_KEXDH_GEX_REPLY, _MSG_KEXDH_GEX_REQUEST = range(31, 35)
+_MSG_KEXDH_GEX_REQUEST_OLD, _MSG_KEXDH_GEX_GROUP, _MSG_KEXDH_GEX_INIT, \
+ _MSG_KEXDH_GEX_REPLY, _MSG_KEXDH_GEX_REQUEST = range(30, 35)
class KexGex (object):
@@ -43,19 +44,32 @@ class KexGex (object):
def __init__(self, transport):
self.transport = transport
-
- def start_kex(self):
+ self.p = None
+ self.q = None
+ self.g = None
+ self.x = None
+ self.e = None
+ self.f = None
+ self.old_style = False
+
+ def start_kex(self, _test_old_style=False):
if self.transport.server_mode:
- self.transport._expect_packet(_MSG_KEXDH_GEX_REQUEST)
+ self.transport._expect_packet(_MSG_KEXDH_GEX_REQUEST, _MSG_KEXDH_GEX_REQUEST_OLD)
return
# request a bit range: we accept (min_bits) to (max_bits), but prefer
# (preferred_bits). according to the spec, we shouldn't pull the
# minimum up above 1024.
m = Message()
- m.add_byte(chr(_MSG_KEXDH_GEX_REQUEST))
- m.add_int(self.min_bits)
- m.add_int(self.preferred_bits)
- m.add_int(self.max_bits)
+ if _test_old_style:
+ # only used for unit tests: we shouldn't ever send this
+ m.add_byte(chr(_MSG_KEXDH_GEX_REQUEST_OLD))
+ m.add_int(self.preferred_bits)
+ self.old_style = True
+ else:
+ m.add_byte(chr(_MSG_KEXDH_GEX_REQUEST))
+ m.add_int(self.min_bits)
+ m.add_int(self.preferred_bits)
+ m.add_int(self.max_bits)
self.transport._send_message(m)
self.transport._expect_packet(_MSG_KEXDH_GEX_GROUP)
@@ -68,6 +82,8 @@ class KexGex (object):
return self._parse_kexdh_gex_init(m)
elif ptype == _MSG_KEXDH_GEX_REPLY:
return self._parse_kexdh_gex_reply(m)
+ elif ptype == _MSG_KEXDH_GEX_REQUEST_OLD:
+ return self._parse_kexdh_gex_request_old(m)
raise SSHException('KexGex asked to handle packet type %d' % ptype)
@@ -126,6 +142,28 @@ class KexGex (object):
self.transport._send_message(m)
self.transport._expect_packet(_MSG_KEXDH_GEX_INIT)
+ def _parse_kexdh_gex_request_old(self, m):
+ # same as above, but without min_bits or max_bits (used by older clients like putty)
+ self.preferred_bits = m.get_int()
+ # smoosh the user's preferred size into our own limits
+ if self.preferred_bits > self.max_bits:
+ self.preferred_bits = self.max_bits
+ if self.preferred_bits < self.min_bits:
+ self.preferred_bits = self.min_bits
+ # generate prime
+ pack = self.transport._get_modulus_pack()
+ if pack is None:
+ raise SSHException('Can\'t do server-side gex with no modulus pack')
+ self.transport._log(DEBUG, 'Picking p (~ %d bits)' % (self.preferred_bits,))
+ self.g, self.p = pack.get_modulus(self.min_bits, self.preferred_bits, self.max_bits)
+ m = Message()
+ m.add_byte(chr(_MSG_KEXDH_GEX_GROUP))
+ m.add_mpint(self.p)
+ m.add_mpint(self.g)
+ self.transport._send_message(m)
+ self.transport._expect_packet(_MSG_KEXDH_GEX_INIT)
+ self.old_style = True
+
def _parse_kexdh_gex_group(self, m):
self.p = m.get_mpint()
self.g = m.get_mpint()
@@ -156,9 +194,11 @@ class KexGex (object):
hm.add(self.transport.remote_version, self.transport.local_version,
self.transport.remote_kex_init, self.transport.local_kex_init,
key)
- hm.add_int(self.min_bits)
+ if not self.old_style:
+ hm.add_int(self.min_bits)
hm.add_int(self.preferred_bits)
- hm.add_int(self.max_bits)
+ if not self.old_style:
+ hm.add_int(self.max_bits)
hm.add_mpint(self.p)
hm.add_mpint(self.g)
hm.add_mpint(self.e)
@@ -189,9 +229,11 @@ class KexGex (object):
hm.add(self.transport.local_version, self.transport.remote_version,
self.transport.local_kex_init, self.transport.remote_kex_init,
host_key)
- hm.add_int(self.min_bits)
+ if not self.old_style:
+ hm.add_int(self.min_bits)
hm.add_int(self.preferred_bits)
- hm.add_int(self.max_bits)
+ if not self.old_style:
+ hm.add_int(self.max_bits)
hm.add_mpint(self.p)
hm.add_mpint(self.g)
hm.add_mpint(self.e)
diff --git a/paramiko/kex_group1.py b/paramiko/kex_group1.py
index a13cf3a..843a6d8 100644
--- a/paramiko/kex_group1.py
+++ b/paramiko/kex_group1.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2005 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
#
# This file is part of paramiko.
#
diff --git a/paramiko/logging22.py b/paramiko/logging22.py
index ac11a73..9bf7656 100644
--- a/paramiko/logging22.py
+++ b/paramiko/logging22.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2005 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
#
# This file is part of paramiko.
#
diff --git a/paramiko/message.py b/paramiko/message.py
index 1d75a01..1a5151c 100644
--- a/paramiko/message.py
+++ b/paramiko/message.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2005 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
#
# This file is part of paramiko.
#
@@ -285,7 +285,7 @@ class Message (object):
elif type(i) is list:
return self.add_list(i)
else:
- raise exception('Unknown type')
+ raise Exception('Unknown type')
def add(self, *seq):
"""
diff --git a/paramiko/packet.py b/paramiko/packet.py
index 277d68e..4bde2f7 100644
--- a/paramiko/packet.py
+++ b/paramiko/packet.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2005 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
#
# This file is part of paramiko.
#
@@ -20,12 +20,12 @@
Packetizer.
"""
+import errno
import select
import socket
import struct
import threading
import time
-from Crypto.Hash import HMAC
from paramiko.common import *
from paramiko import util
@@ -33,6 +33,19 @@ from paramiko.ssh_exception import SSHException
from paramiko.message import Message
+got_r_hmac = False
+try:
+ import r_hmac
+ got_r_hmac = True
+except ImportError:
+ pass
+def compute_hmac(key, message, digest_class):
+ if got_r_hmac:
+ return r_hmac.HMAC(key, message, digest_class).digest()
+ from Crypto.Hash import HMAC
+ return HMAC.HMAC(key, message, digest_class).digest()
+
+
class NeedRekeyException (Exception):
pass
@@ -54,6 +67,7 @@ class Packetizer (object):
self.__dump_packets = False
self.__need_rekey = False
self.__init_count = 0
+ self.__remainder = ''
# used for noticing when to re-key:
self.__sent_bytes = 0
@@ -86,13 +100,6 @@ class Packetizer (object):
self.__keepalive_last = time.time()
self.__keepalive_callback = None
- def __del__(self):
- # this is not guaranteed to be called, but we should try.
- try:
- self.__socket.close()
- except:
- pass
-
def set_log(self, log):
"""
Set the python log object to use for logging.
@@ -142,6 +149,7 @@ class Packetizer (object):
def close(self):
self.__closed = True
+ self.__socket.close()
def set_hexdump(self, hexdump):
self.__dump_packets = hexdump
@@ -186,10 +194,16 @@ class Packetizer (object):
@raise EOFError: if the socket was closed before all the bytes could
be read
"""
- if PY22:
- return self._py22_read_all(n)
out = ''
+ # handle over-reading from reading the banner line
+ if len(self.__remainder) > 0:
+ out = self.__remainder[:n]
+ self.__remainder = self.__remainder[n:]
+ n -= len(out)
+ if PY22:
+ return self._py22_read_all(n, out)
while n > 0:
+ got_timeout = False
try:
x = self.__socket.recv(n)
if len(x) == 0:
@@ -197,6 +211,21 @@ class Packetizer (object):
out += x
n -= len(x)
except socket.timeout:
+ got_timeout = True
+ except socket.error, e:
+ # on Linux, sometimes instead of socket.timeout, we get
+ # EAGAIN. this is a bug in recent (> 2.6.9) kernels but
+ # we need to work around it.
+ if (type(e.args) is tuple) and (len(e.args) > 0) and (e.args[0] == errno.EAGAIN):
+ got_timeout = True
+ elif (type(e.args) is tuple) and (len(e.args) > 0) and (e.args[0] == errno.EINTR):
+ # syscall interrupted; try again
+ pass
+ elif self.__closed:
+ raise EOFError()
+ else:
+ raise
+ if got_timeout:
if self.__closed:
raise EOFError()
if check_rekey and (len(out) == 0) and self.__need_rekey:
@@ -207,32 +236,44 @@ class Packetizer (object):
def write_all(self, out):
self.__keepalive_last = time.time()
while len(out) > 0:
+ got_timeout = False
try:
n = self.__socket.send(out)
except socket.timeout:
- n = 0
- if self.__closed:
+ got_timeout = True
+ except socket.error, e:
+ if (type(e.args) is tuple) and (len(e.args) > 0) and (e.args[0] == errno.EAGAIN):
+ got_timeout = True
+ elif (type(e.args) is tuple) and (len(e.args) > 0) and (e.args[0] == errno.EINTR):
+ # syscall interrupted; try again
+ pass
+ else:
n = -1
except Exception:
# could be: (32, 'Broken pipe')
n = -1
+ if got_timeout:
+ n = 0
+ if self.__closed:
+ n = -1
if n < 0:
raise EOFError()
if n == len(out):
- return
+ break
out = out[n:]
return
def readline(self, timeout):
"""
- Read a line from the socket. This is done in a fairly inefficient
- way, but is only used for initial banner negotiation so it's not worth
- optimising.
+ Read a line from the socket. We assume no data is pending after the
+ line, so it's okay to attempt large reads.
"""
buf = ''
while not '\n' in buf:
buf += self._read_timeout(timeout)
- buf = buf[:-1]
+ n = buf.index('\n')
+ self.__remainder += buf[n+1:]
+ buf = buf[:n]
if (len(buf) > 0) and (buf[-1] == '\r'):
buf = buf[:-1]
return buf
@@ -242,21 +283,21 @@ class Packetizer (object):
Write a block of data using the current cipher, as an SSH block.
"""
# encrypt this sucka
- randpool.stir()
data = str(data)
cmd = ord(data[0])
if cmd in MSG_NAMES:
cmd_name = MSG_NAMES[cmd]
else:
cmd_name = '$%x' % cmd
- self._log(DEBUG, 'Write packet <%s>, length %d' % (cmd_name, len(data)))
- if self.__compress_engine_out is not None:
- data = self.__compress_engine_out(data)
- packet = self._build_packet(data)
- if self.__dump_packets:
- self._log(DEBUG, util.format_binary(packet, 'OUT: '))
+ orig_len = len(data)
self.__write_lock.acquire()
try:
+ if self.__compress_engine_out is not None:
+ data = self.__compress_engine_out(data)
+ packet = self._build_packet(data)
+ if self.__dump_packets:
+ self._log(DEBUG, 'Write packet <%s>, length %d' % (cmd_name, orig_len))
+ self._log(DEBUG, util.format_binary(packet, 'OUT: '))
if self.__block_engine_out != None:
out = self.__block_engine_out.encrypt(packet)
else:
@@ -264,12 +305,15 @@ class Packetizer (object):
# + mac
if self.__block_engine_out != None:
payload = struct.pack('>I', self.__sequence_number_out) + packet
- out += HMAC.HMAC(self.__mac_key_out, payload, self.__mac_engine_out).digest()[:self.__mac_size_out]
+ out += compute_hmac(self.__mac_key_out, payload, self.__mac_engine_out)[:self.__mac_size_out]
self.__sequence_number_out = (self.__sequence_number_out + 1) & 0xffffffffL
self.write_all(out)
self.__sent_bytes += len(out)
self.__sent_packets += 1
+ if (self.__sent_packets % 100) == 0:
+ # stirring the randpool takes 30ms on my ibook!!
+ randpool.stir()
if ((self.__sent_packets >= self.REKEY_PACKETS) or (self.__sent_bytes >= self.REKEY_BYTES)) \
and not self.__need_rekey:
# only ask once for rekeying
@@ -310,12 +354,12 @@ class Packetizer (object):
if self.__mac_size_in > 0:
mac = post_packet[:self.__mac_size_in]
mac_payload = struct.pack('>II', self.__sequence_number_in, packet_size) + packet
- my_mac = HMAC.HMAC(self.__mac_key_in, mac_payload, self.__mac_engine_in).digest()[:self.__mac_size_in]
+ my_mac = compute_hmac(self.__mac_key_in, mac_payload, self.__mac_engine_in)[:self.__mac_size_in]
if my_mac != mac:
raise SSHException('Mismatched MAC')
padding = ord(packet[0])
payload = packet[1:packet_size - padding]
- randpool.add_event(packet[packet_size - padding])
+ randpool.add_event()
if self.__dump_packets:
self._log(DEBUG, 'Got payload (%d bytes, %d padding)' % (packet_size, padding))
@@ -348,7 +392,8 @@ class Packetizer (object):
cmd_name = MSG_NAMES[cmd]
else:
cmd_name = '$%x' % cmd
- self._log(DEBUG, 'Read packet <%s>, length %d' % (cmd_name, len(payload)))
+ if self.__dump_packets:
+ self._log(DEBUG, 'Read packet <%s>, length %d' % (cmd_name, len(payload)))
return cmd, msg
@@ -374,8 +419,7 @@ class Packetizer (object):
self.__keepalive_callback()
self.__keepalive_last = now
- def _py22_read_all(self, n):
- out = ''
+ def _py22_read_all(self, n, out):
while n > 0:
r, w, e = select.select([self.__socket], [], [], 0.1)
if self.__socket not in r:
@@ -398,23 +442,24 @@ class Packetizer (object):
x = self.__socket.recv(1)
if len(x) == 0:
raise EOFError()
- return x
+ break
if self.__closed:
raise EOFError()
now = time.time()
if now - start >= timeout:
raise socket.timeout()
+ return x
def _read_timeout(self, timeout):
if PY22:
- return self._py22_read_timeout(n)
+ return self._py22_read_timeout(timeout)
start = time.time()
while True:
try:
- x = self.__socket.recv(1)
+ x = self.__socket.recv(128)
if len(x) == 0:
raise EOFError()
- return x
+ break
except socket.timeout:
pass
if self.__closed:
@@ -422,6 +467,7 @@ class Packetizer (object):
now = time.time()
if now - start >= timeout:
raise socket.timeout()
+ return x
def _build_packet(self, payload):
# pad up at least 4 bytes, to nearest block-size (usually 8)
diff --git a/paramiko/pipe.py b/paramiko/pipe.py
index cc28f43..1cfed2d 100644
--- a/paramiko/pipe.py
+++ b/paramiko/pipe.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2005 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
#
# This file is part of paramiko.
#
@@ -19,6 +19,9 @@
"""
Abstraction of a one-way pipe where the read end can be used in select().
Normally this is trivial, but Windows makes it nearly impossible.
+
+The pipe acts like an Event, which can be set or cleared. When set, the pipe
+will trigger as readable in select().
"""
import sys
@@ -28,8 +31,10 @@ import socket
def make_pipe ():
if sys.platform[:3] != 'win':
- return PosixPipe()
- return WindowsPipe()
+ p = PosixPipe()
+ else:
+ p = WindowsPipe()
+ return p
class PosixPipe (object):
@@ -37,10 +42,13 @@ class PosixPipe (object):
self._rfd, self._wfd = os.pipe()
self._set = False
self._forever = False
+ self._closed = False
def close (self):
os.close(self._rfd)
os.close(self._wfd)
+ # used for unit tests:
+ self._closed = True
def fileno (self):
return self._rfd
@@ -52,7 +60,7 @@ class PosixPipe (object):
self._set = False
def set (self):
- if self._set:
+ if self._set or self._closed:
return
self._set = True
os.write(self._wfd, '*')
@@ -80,10 +88,13 @@ class WindowsPipe (object):
serv.close()
self._set = False
self._forever = False
+ self._closed = False
def close (self):
self._rsock.close()
self._wsock.close()
+ # used for unit tests:
+ self._closed = True
def fileno (self):
return self._rsock.fileno()
@@ -95,7 +106,7 @@ class WindowsPipe (object):
self._set = False
def set (self):
- if self._set:
+ if self._set or self._closed:
return
self._set = True
self._wsock.send('*')
@@ -103,3 +114,34 @@ class WindowsPipe (object):
def set_forever (self):
self._forever = True
self.set()
+
+
+class OrPipe (object):
+ def __init__(self, pipe):
+ self._set = False
+ self._partner = None
+ self._pipe = pipe
+
+ def set(self):
+ self._set = True
+ if not self._partner._set:
+ self._pipe.set()
+
+ def clear(self):
+ self._set = False
+ if not self._partner._set:
+ self._pipe.clear()
+
+
+def make_or_pipe(pipe):
+ """
+ wraps a pipe into two pipe-like objects which are "or"d together to
+ affect the real pipe. if either returned pipe is set, the wrapped pipe
+ is set. when both are cleared, the wrapped pipe is cleared.
+ """
+ p1 = OrPipe(pipe)
+ p2 = OrPipe(pipe)
+ p1._partner = p2
+ p2._partner = p1
+ return p1, p2
+
diff --git a/paramiko/pkey.py b/paramiko/pkey.py
index 75db8e5..4e8b26b 100644
--- a/paramiko/pkey.py
+++ b/paramiko/pkey.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2005 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
#
# This file is part of paramiko.
#
@@ -21,6 +21,7 @@ Common API for all public keys.
"""
import base64
+from binascii import hexlify, unhexlify
import os
from Crypto.Hash import MD5
@@ -139,8 +140,6 @@ class PKey (object):
@return: a base64 string containing the public part of the key.
@rtype: str
-
- @since: fearow
"""
return base64.encodestring(str(self)).replace('\n', '')
@@ -173,7 +172,7 @@ class PKey (object):
"""
return False
- def from_private_key_file(cl, filename, password=None):
+ def from_private_key_file(cls, filename, password=None):
"""
Create a key object by reading a private key file. If the private
key is encrypted and C{password} is not C{None}, the given password
@@ -182,41 +181,76 @@ class PKey (object):
exist in all subclasses of PKey (such as L{RSAKey} or L{DSSKey}), but
is useless on the abstract PKey class.
- @param filename: name of the file to read.
+ @param filename: name of the file to read
@type filename: str
@param password: an optional password to use to decrypt the key file,
if it's encrypted
@type password: str
- @return: a new key object based on the given private key.
+ @return: a new key object based on the given private key
@rtype: L{PKey}
- @raise IOError: if there was an error reading the file.
+ @raise IOError: if there was an error reading the file
@raise PasswordRequiredException: if the private key file is
- encrypted, and C{password} is C{None}.
- @raise SSHException: if the key file is invalid.
-
- @since: fearow
+ encrypted, and C{password} is C{None}
+ @raise SSHException: if the key file is invalid
"""
- key = cl(filename=filename, password=password)
+ key = cls(filename=filename, password=password)
return key
from_private_key_file = classmethod(from_private_key_file)
+ def from_private_key(cls, file_obj, password=None):
+ """
+ Create a key object by reading a private key from a file (or file-like)
+ object. If the private key is encrypted and C{password} is not C{None},
+ the given password will be used to decrypt the key (otherwise
+ L{PasswordRequiredException} is thrown).
+
+ @param file_obj: the file to read from
+ @type file_obj: file
+ @param password: an optional password to use to decrypt the key, if it's
+ encrypted
+ @type password: str
+ @return: a new key object based on the given private key
+ @rtype: L{PKey}
+
+ @raise IOError: if there was an error reading the key
+ @raise PasswordRequiredException: if the private key file is encrypted,
+ and C{password} is C{None}
+ @raise SSHException: if the key file is invalid
+ """
+ key = cls(file_obj=file_obj, password=password)
+ return key
+ from_private_key = classmethod(from_private_key)
+
def write_private_key_file(self, filename, password=None):
"""
Write private key contents into a file. If the password is not
C{None}, the key is encrypted before writing.
- @param filename: name of the file to write.
+ @param filename: name of the file to write
@type filename: str
- @param password: an optional password to use to encrypt the key file.
+ @param password: an optional password to use to encrypt the key file
@type password: str
- @raise IOError: if there was an error writing the file.
- @raise SSHException: if the key is invalid.
-
- @since: fearow
+ @raise IOError: if there was an error writing the file
+ @raise SSHException: if the key is invalid
+ """
+ raise Exception('Not implemented in PKey')
+
+ def write_private_key(self, file_obj, password=None):
"""
- raise exception('Not implemented in PKey')
+ Write private key contents into a file (or file-like) object. If the
+ password is not C{None}, the key is encrypted before writing.
+
+ @param file_obj: the file object to write into
+ @type file_obj: file
+ @param password: an optional password to use to encrypt the key
+ @type password: str
+
+ @raise IOError: if there was an error writing to the file
+ @raise SSHException: if the key is invalid
+ """
+ raise Exception('Not implemented in PKey')
def _read_private_key_file(self, tag, filename, password=None):
"""
@@ -242,8 +276,12 @@ class PKey (object):
@raise SSHException: if the key file is invalid.
"""
f = open(filename, 'r')
- lines = f.readlines()
+ data = self._read_private_key(tag, f, password)
f.close()
+ return data
+
+ def _read_private_key(self, tag, f, password=None):
+ lines = f.readlines()
start = 0
while (start < len(lines)) and (lines[start].strip() != '-----BEGIN ' + tag + ' PRIVATE KEY-----'):
start += 1
@@ -265,9 +303,9 @@ class PKey (object):
# if we trudged to the end of the file, just try to cope.
try:
data = base64.decodestring(''.join(lines[start:end]))
- except binascii.Error, e:
+ except base64.binascii.Error, e:
raise SSHException('base64 decoding error: ' + str(e))
- if not headers.has_key('proc-type'):
+ if 'proc-type' not in headers:
# unencryped: done
return data
# encrypted keyfile: will need a password
@@ -277,7 +315,7 @@ class PKey (object):
encryption_type, saltstr = headers['dek-info'].split(',')
except:
raise SSHException('Can\'t parse DEK-info in private key file')
- if not self._CIPHER_TABLE.has_key(encryption_type):
+ if encryption_type not in self._CIPHER_TABLE:
raise SSHException('Unknown private key cipher "%s"' % encryption_type)
# if no password was passed in, raise an exception pointing out that we need one
if password is None:
@@ -285,7 +323,7 @@ class PKey (object):
cipher = self._CIPHER_TABLE[encryption_type]['cipher']
keysize = self._CIPHER_TABLE[encryption_type]['keysize']
mode = self._CIPHER_TABLE[encryption_type]['mode']
- salt = util.unhexify(saltstr)
+ salt = unhexlify(saltstr)
key = util.generate_key_bytes(MD5, salt, password, keysize)
return cipher.new(key, mode, salt).decrypt(data)
@@ -310,6 +348,10 @@ class PKey (object):
f = open(filename, 'w', 0600)
# grrr... the mode doesn't always take hold
os.chmod(filename, 0600)
+ self._write_private_key(tag, f, data, password)
+ f.close()
+
+ def _write_private_key(self, tag, f, data, password=None):
f.write('-----BEGIN %s PRIVATE KEY-----\n' % tag)
if password is not None:
# since we only support one cipher here, use it
@@ -327,7 +369,7 @@ class PKey (object):
data += '\0' * n
data = cipher.new(key, mode, salt).encrypt(data)
f.write('Proc-Type: 4,ENCRYPTED\n')
- f.write('DEK-Info: %s,%s\n' % (cipher_name, util.hexify(salt)))
+ f.write('DEK-Info: %s,%s\n' % (cipher_name, hexlify(salt).upper()))
f.write('\n')
s = base64.encodestring(data)
# re-wrap to 64-char lines
@@ -336,4 +378,3 @@ class PKey (object):
f.write(s)
f.write('\n')
f.write('-----END %s PRIVATE KEY-----\n' % tag)
- f.close()
diff --git a/paramiko/primes.py b/paramiko/primes.py
index 3677394..7b35736 100644
--- a/paramiko/primes.py
+++ b/paramiko/primes.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2005 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
#
# This file is part of paramiko.
#
@@ -23,6 +23,7 @@ Utility functions for dealing with primes.
from Crypto.Util import number
from paramiko import util
+from paramiko.ssh_exception import SSHException
def _generate_prime(bits, randpool):
@@ -39,7 +40,8 @@ def _generate_prime(bits, randpool):
while not number.isPrime(n):
n += 2
if util.bit_length(n) == bits:
- return n
+ break
+ return n
def _roll_random(rpool, n):
"returns a random # from 0 to N-1"
@@ -59,7 +61,8 @@ def _roll_random(rpool, n):
x = chr(ord(x[0]) & hbyte_mask) + x[1:]
num = util.inflate_long(x, 1)
if num < n:
- return num
+ break
+ return num
class ModulusPack (object):
@@ -75,8 +78,8 @@ class ModulusPack (object):
self.randpool = rpool
def _parse_modulus(self, line):
- timestamp, type, tests, tries, size, generator, modulus = line.split()
- type = int(type)
+ timestamp, mod_type, tests, tries, size, generator, modulus = line.split()
+ mod_type = int(mod_type)
tests = int(tests)
tries = int(tries)
size = int(size)
@@ -87,7 +90,7 @@ class ModulusPack (object):
# type 2 (meets basic structural requirements)
# test 4 (more than just a small-prime sieve)
# tries < 100 if test & 4 (at least 100 tries of miller-rabin)
- if (type < 2) or (tests < 4) or ((tests & 4) and (tests < 8) and (tries < 100)):
+ if (mod_type < 2) or (tests < 4) or ((tests & 4) and (tests < 8) and (tries < 100)):
self.discarded.append((modulus, 'does not meet basic requirements'))
return
if generator == 0:
@@ -100,7 +103,7 @@ class ModulusPack (object):
if (bl != size) and (bl != size + 1):
self.discarded.append((modulus, 'incorrectly reported bit length %d' % size))
return
- if not self.pack.has_key(bl):
+ if bl not in self.pack:
self.pack[bl] = []
self.pack[bl].append((generator, modulus))
diff --git a/paramiko/resource.py b/paramiko/resource.py
new file mode 100644
index 0000000..a089754
--- /dev/null
+++ b/paramiko/resource.py
@@ -0,0 +1,72 @@
+# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
+#
+# This file is part of paramiko.
+#
+# Paramiko is free software; you can redistribute it and/or modify it under the
+# terms of the GNU Lesser General Public License as published by the Free
+# Software Foundation; either version 2.1 of the License, or (at your option)
+# any later version.
+#
+# Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+# A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+# details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with Paramiko; if not, write to the Free Software Foundation, Inc.,
+# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+
+"""
+Resource manager.
+"""
+
+import weakref
+
+
+class ResourceManager (object):
+ """
+ A registry of objects and resources that should be closed when those
+ objects are deleted.
+
+ This is meant to be a safer alternative to python's C{__del__} method,
+ which can cause reference cycles to never be collected. Objects registered
+ with the ResourceManager can be collected but still free resources when
+ they die.
+
+ Resources are registered using L{register}, and when an object is garbage
+ collected, each registered resource is closed by having its C{close()}
+ method called. Multiple resources may be registered per object, but a
+ resource will only be closed once, even if multiple objects register it.
+ (The last object to register it wins.)
+ """
+
+ def __init__(self):
+ self._table = {}
+
+ def register(self, obj, resource):
+ """
+ Register a resource to be closed with an object is collected.
+
+ When the given C{obj} is garbage-collected by the python interpreter,
+ the C{resource} will be closed by having its C{close()} method called.
+ Any exceptions are ignored.
+
+ @param obj: the object to track
+ @type obj: object
+ @param resource: the resource to close when the object is collected
+ @type resource: object
+ """
+ def callback(ref):
+ try:
+ resource.close()
+ except:
+ pass
+ del self._table[id(resource)]
+
+ # keep the weakref in a table so it sticks around long enough to get
+ # its callback called. :)
+ self._table[id(resource)] = weakref.ref(obj, callback)
+
+
+# singleton
+ResourceManager = ResourceManager()
diff --git a/paramiko/rng.py b/paramiko/rng.py
new file mode 100644
index 0000000..46329d1
--- /dev/null
+++ b/paramiko/rng.py
@@ -0,0 +1,112 @@
+#!/usr/bin/python
+# -*- coding: ascii -*-
+# Copyright (C) 2008 Dwayne C. Litzenberger <dlitz@dlitz.net>
+#
+# This file is part of paramiko.
+#
+# Paramiko is free software; you can redistribute it and/or modify it under the
+# terms of the GNU Lesser General Public License as published by the Free
+# Software Foundation; either version 2.1 of the License, or (at your option)
+# any later version.
+#
+# Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+# A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+# details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with Paramiko; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+import sys
+import threading
+from Crypto.Util.randpool import RandomPool as _RandomPool
+
+try:
+ import platform
+except ImportError:
+ platform = None # Not available using Python 2.2
+
+def _strxor(a, b):
+ assert len(a) == len(b)
+ return "".join(map(lambda x, y: chr(ord(x) ^ ord(y)), a, b))
+
+##
+## Find a strong random entropy source, depending on the detected platform.
+## WARNING TO DEVELOPERS: This will fail on some systems, but do NOT use
+## Crypto.Util.randpool.RandomPool as a fall-back. RandomPool will happily run
+## with very little entropy, thus _silently_ defeating any security that
+## Paramiko attempts to provide. (This is current as of PyCrypto 2.0.1).
+## See http://www.lag.net/pipermail/paramiko/2008-January/000599.html
+## and http://www.lag.net/pipermail/paramiko/2008-April/000678.html
+##
+
+if ((platform is not None and platform.system().lower() == 'windows') or
+ sys.platform == 'win32'):
+ # MS Windows
+ from paramiko import rng_win32
+ rng_device = rng_win32.open_rng_device()
+else:
+ # Assume POSIX (any system where /dev/urandom exists)
+ from paramiko import rng_posix
+ rng_device = rng_posix.open_rng_device()
+
+
+class StrongLockingRandomPool(object):
+ """Wrapper around RandomPool guaranteeing strong random numbers.
+
+ Crypto.Util.randpool.RandomPool will silently operate even if it is seeded
+ with little or no entropy, and it provides no prediction resistance if its
+ state is ever compromised throughout its runtime. It is also not thread-safe.
+
+ This wrapper augments RandomPool by XORing its output with random bits from
+ the operating system, and by controlling access to the underlying
+ RandomPool using an exclusive lock.
+ """
+
+ def __init__(self, instance=None):
+ if instance is None:
+ instance = _RandomPool()
+ self.randpool = instance
+ self.randpool_lock = threading.Lock()
+ self.entropy = rng_device
+
+ # Stir 256 bits of entropy from the RNG device into the RandomPool.
+ self.randpool.stir(self.entropy.read(32))
+ self.entropy.randomize()
+
+ def stir(self, s=''):
+ self.randpool_lock.acquire()
+ try:
+ self.randpool.stir(s)
+ finally:
+ self.randpool_lock.release()
+ self.entropy.randomize()
+
+ def randomize(self, N=0):
+ self.randpool_lock.acquire()
+ try:
+ self.randpool.randomize(N)
+ finally:
+ self.randpool_lock.release()
+ self.entropy.randomize()
+
+ def add_event(self, s=''):
+ self.randpool_lock.acquire()
+ try:
+ self.randpool.add_event(s)
+ finally:
+ self.randpool_lock.release()
+
+ def get_bytes(self, N):
+ self.randpool_lock.acquire()
+ try:
+ randpool_data = self.randpool.get_bytes(N)
+ finally:
+ self.randpool_lock.release()
+ entropy_data = self.entropy.read(N)
+ result = _strxor(randpool_data, entropy_data)
+ assert len(randpool_data) == N and len(entropy_data) == N and len(result) == N
+ return result
+
+# vim:set ts=4 sw=4 sts=4 expandtab:
diff --git a/paramiko/rng_posix.py b/paramiko/rng_posix.py
new file mode 100644
index 0000000..1e6d72c
--- /dev/null
+++ b/paramiko/rng_posix.py
@@ -0,0 +1,97 @@
+#!/usr/bin/python
+# -*- coding: ascii -*-
+# Copyright (C) 2008 Dwayne C. Litzenberger <dlitz@dlitz.net>
+# Copyright (C) 2008 Open Systems Canada Limited
+#
+# This file is part of paramiko.
+#
+# Paramiko is free software; you can redistribute it and/or modify it under the
+# terms of the GNU Lesser General Public License as published by the Free
+# Software Foundation; either version 2.1 of the License, or (at your option)
+# any later version.
+#
+# Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+# A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+# details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with Paramiko; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+import os
+import stat
+
+class error(Exception):
+ pass
+
+class _RNG(object):
+ def __init__(self, file):
+ self.file = file
+
+ def read(self, bytes):
+ return self.file.read(bytes)
+
+ def close(self):
+ return self.file.close()
+
+ def randomize(self):
+ return
+
+def open_rng_device(device_path=None):
+ """Open /dev/urandom and perform some sanity checks."""
+
+ f = None
+ g = None
+
+ if device_path is None:
+ device_path = "/dev/urandom"
+
+ try:
+ # Try to open /dev/urandom now so that paramiko will be able to access
+ # it even if os.chroot() is invoked later.
+ try:
+ 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)
+ except EnvironmentError:
+ raise error("Unable to open /dev/urandom")
+
+ # Check that /dev/urandom is a character special device, not a regular file.
+ 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))
+
+ # Close the duplicate file object
+ g.close()
+
+ # Return the first file object
+ return _RNG(f)
+
+ except error:
+ if f is not None:
+ f.close()
+ if g is not None:
+ g.close()
+ raise
+
+# vim:set ts=4 sw=4 sts=4 expandtab:
+
diff --git a/paramiko/rng_win32.py b/paramiko/rng_win32.py
new file mode 100644
index 0000000..3cb8b84
--- /dev/null
+++ b/paramiko/rng_win32.py
@@ -0,0 +1,121 @@
+#!/usr/bin/python
+# -*- coding: ascii -*-
+# Copyright (C) 2008 Dwayne C. Litzenberger <dlitz@dlitz.net>
+# Copyright (C) 2008 Open Systems Canada Limited
+#
+# This file is part of paramiko.
+#
+# Paramiko is free software; you can redistribute it and/or modify it under the
+# terms of the GNU Lesser General Public License as published by the Free
+# Software Foundation; either version 2.1 of the License, or (at your option)
+# any later version.
+#
+# Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+# A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+# details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with Paramiko; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+class error(Exception):
+ pass
+
+# Try to import the "winrandom" module
+try:
+ from Crypto.Util import winrandom as _winrandom
+except ImportError:
+ _winrandom = None
+
+# Try to import the "urandom" module
+try:
+ from os import urandom as _urandom
+except ImportError:
+ _urandom = None
+
+
+class _RNG(object):
+ def __init__(self, readfunc):
+ self.read = readfunc
+
+ def randomize(self):
+ # According to "Cryptanalysis of the Random Number Generator of the
+ # Windows Operating System", by Leo Dorrendorf and Zvi Gutterman
+ # and Benny Pinkas <http://eprint.iacr.org/2007/419>,
+ # CryptGenRandom only updates its internal state using kernel-provided
+ # random data every 128KiB of output.
+ self.read(128*1024) # discard 128 KiB of output
+
+def _open_winrandom():
+ if _winrandom is None:
+ raise error("Crypto.Util.winrandom module not found")
+
+ # Check that we can open the winrandom module
+ try:
+ r0 = _winrandom.new()
+ r1 = _winrandom.new()
+ except Exception, exc:
+ raise error("winrandom.new() failed: %s" % str(exc), exc)
+
+ # Check that we can read from the winrandom module
+ try:
+ x = r0.get_bytes(20)
+ y = r1.get_bytes(20)
+ except Exception, exc:
+ raise error("winrandom get_bytes failed: %s" % str(exc), exc)
+
+ # Check that the requested number of bytes are returned
+ if len(x) != 20 or len(y) != 20:
+ raise error("Error reading from winrandom: input truncated")
+
+ # Check that different reads return different data
+ if x == y:
+ raise error("winrandom broken: returning identical data")
+
+ return _RNG(r0.get_bytes)
+
+def _open_urandom():
+ if _urandom is None:
+ raise error("os.urandom function not found")
+
+ # Check that we can read from os.urandom()
+ try:
+ x = _urandom(20)
+ y = _urandom(20)
+ except Exception, exc:
+ raise error("os.urandom failed: %s" % str(exc), exc)
+
+ # Check that the requested number of bytes are returned
+ if len(x) != 20 or len(y) != 20:
+ raise error("os.urandom failed: input truncated")
+
+ # Check that different reads return different data
+ if x == y:
+ raise error("os.urandom failed: returning identical data")
+
+ return _RNG(_urandom)
+
+def open_rng_device():
+ # Try using the Crypto.Util.winrandom module
+ try:
+ return _open_winrandom()
+ except error:
+ pass
+
+ # Several versions of PyCrypto do not contain the winrandom module, but
+ # Python >= 2.4 has os.urandom, so try to use that.
+ try:
+ return _open_urandom()
+ except error:
+ pass
+
+ # SECURITY NOTE: DO NOT USE Crypto.Util.randpool.RandomPool HERE!
+ # If we got to this point, RandomPool will silently run with very little
+ # entropy. (This is current as of PyCrypto 2.0.1).
+ # See http://www.lag.net/pipermail/paramiko/2008-January/000599.html
+ # and http://www.lag.net/pipermail/paramiko/2008-April/000678.html
+
+ raise error("Unable to find a strong random entropy source. You cannot run this software securely under the current configuration.")
+
+# vim:set ts=4 sw=4 sts=4 expandtab:
diff --git a/paramiko/rsakey.py b/paramiko/rsakey.py
index 780ea1b..d72d175 100644
--- a/paramiko/rsakey.py
+++ b/paramiko/rsakey.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2005 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
#
# This file is part of paramiko.
#
@@ -38,7 +38,15 @@ class RSAKey (PKey):
data.
"""
- def __init__(self, msg=None, data=None, filename=None, password=None, vals=None):
+ def __init__(self, msg=None, data=None, filename=None, password=None, vals=None, file_obj=None):
+ self.n = None
+ self.e = None
+ self.d = None
+ self.p = None
+ self.q = None
+ if file_obj is not None:
+ self._from_private_key(file_obj, password)
+ return
if filename is not None:
self._from_private_key_file(filename, password)
return
@@ -75,7 +83,7 @@ class RSAKey (PKey):
return self.size
def can_sign(self):
- return hasattr(self, 'd')
+ return self.d is not None
def sign_ssh_data(self, rpool, data):
digest = SHA.new(data).digest()
@@ -93,11 +101,13 @@ class RSAKey (PKey):
# verify the signature by SHA'ing the data and encrypting it using the
# public key. some wackiness ensues where we "pkcs1imify" the 20-byte
# hash into a string as long as the RSA key.
- hash = util.inflate_long(self._pkcs1imify(SHA.new(data).digest()), True)
+ hash_obj = util.inflate_long(self._pkcs1imify(SHA.new(data).digest()), True)
rsa = RSA.construct((long(self.n), long(self.e)))
- return rsa.verify(hash, (sig,))
+ return rsa.verify(hash_obj, (sig,))
- def write_private_key_file(self, filename, password=None):
+ def _encode_key(self):
+ if (self.p is None) or (self.q is None):
+ raise SSHException('Not enough key info to write private key file')
keylist = [ 0, self.n, self.e, self.d, self.p, self.q,
self.d % (self.p - 1), self.d % (self.q - 1),
util.mod_inverse(self.q, self.p) ]
@@ -106,7 +116,13 @@ class RSAKey (PKey):
b.encode(keylist)
except BERException:
raise SSHException('Unable to create ber encoding of key')
- self._write_private_key_file('RSA', filename, str(b), password)
+ return str(b)
+
+ def write_private_key_file(self, filename, password=None):
+ self._write_private_key_file('RSA', filename, self._encode_key(), password)
+
+ def write_private_key(self, file_obj, password=None):
+ self._write_private_key('RSA', file_obj, self._encode_key(), password)
def generate(bits, progress_func=None):
"""
@@ -120,8 +136,6 @@ class RSAKey (PKey):
@type progress_func: function
@return: new private key
@rtype: L{RSAKey}
-
- @since: fearow
"""
randpool.stir()
rsa = RSA.generate(bits, randpool.get_bytes, progress_func)
@@ -147,9 +161,16 @@ class RSAKey (PKey):
return '\x00\x01' + filler + '\x00' + SHA1_DIGESTINFO + data
def _from_private_key_file(self, filename, password):
+ data = self._read_private_key_file('RSA', filename, password)
+ self._decode_key(data)
+
+ def _from_private_key(self, file_obj, password):
+ data = self._read_private_key('RSA', file_obj, password)
+ self._decode_key(data)
+
+ def _decode_key(self, data):
# private key file contains:
# RSAPrivateKey = { version = 0, n, e, d, p, q, d mod p-1, d mod q-1, q**-1 mod p }
- data = self._read_private_key_file('RSA', filename, password)
try:
keylist = BER(data).decode()
except BERException:
diff --git a/paramiko/server.py b/paramiko/server.py
index a0e3988..bcaa4be 100644
--- a/paramiko/server.py
+++ b/paramiko/server.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2005 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
#
# This file is part of paramiko.
#
@@ -41,6 +41,8 @@ class InteractiveQuery (object):
@type name: str
@param instructions: user instructions (usually short) about this query
@type instructions: str
+ @param prompts: one or more authentication prompts
+ @type prompts: str
"""
self.name = name
self.instructions = instructions
@@ -90,6 +92,7 @@ class ServerInterface (object):
- L{check_channel_shell_request}
- L{check_channel_subsystem_request}
- L{check_channel_window_change_request}
+ - L{check_channel_x11_request}
The C{chanid} parameter is a small number that uniquely identifies the
channel within a L{Transport}. A L{Channel} object is not created
@@ -273,6 +276,42 @@ class ServerInterface (object):
"""
return AUTH_FAILED
+ def check_port_forward_request(self, address, port):
+ """
+ Handle a request for port forwarding. The client is asking that
+ connections to the given address and port be forwarded back across
+ this ssh connection. An address of C{"0.0.0.0"} indicates a global
+ address (any address associated with this server) and a port of C{0}
+ indicates that no specific port is requested (usually the OS will pick
+ a port).
+
+ The default implementation always returns C{False}, rejecting the
+ port forwarding request. If the request is accepted, you should return
+ the port opened for listening.
+
+ @param address: the requested address
+ @type address: str
+ @param port: the requested port
+ @type port: int
+ @return: the port number that was opened for listening, or C{False} to
+ reject
+ @rtype: int
+ """
+ return False
+
+ def cancel_port_forward_request(self, address, port):
+ """
+ The client would like to cancel a previous port-forwarding request.
+ If the given address and port is being forwarded across this ssh
+ connection, the port should be closed.
+
+ @param address: the forwarded address
+ @type address: str
+ @param port: the forwarded port
+ @type port: int
+ """
+ pass
+
def check_global_request(self, kind, msg):
"""
Handle a global request of the given C{kind}. This method is called
@@ -291,6 +330,9 @@ class ServerInterface (object):
The default implementation always returns C{False}, indicating that it
does not support any global requests.
+
+ @note: Port forwarding requests are handled separately, in
+ L{check_port_forward_request}.
@param kind: the kind of global request being made.
@type kind: str
@@ -426,6 +468,71 @@ class ServerInterface (object):
@rtype: bool
"""
return False
+
+ def check_channel_x11_request(self, channel, single_connection, auth_protocol, auth_cookie, screen_number):
+ """
+ Determine if the client will be provided with an X11 session. If this
+ method returns C{True}, X11 applications should be routed through new
+ SSH channels, using L{Transport.open_x11_channel}.
+
+ The default implementation always returns C{False}.
+
+ @param channel: the L{Channel} the X11 request arrived on
+ @type channel: L{Channel}
+ @param single_connection: C{True} if only a single X11 channel should
+ be opened
+ @type single_connection: bool
+ @param auth_protocol: the protocol used for X11 authentication
+ @type auth_protocol: str
+ @param auth_cookie: the cookie used to authenticate to X11
+ @type auth_cookie: str
+ @param screen_number: the number of the X11 screen to connect to
+ @type screen_number: int
+ @return: C{True} if the X11 session was opened; C{False} if not
+ @rtype: bool
+ """
+ return False
+
+ def check_channel_direct_tcpip_request(self, chanid, origin, destination):
+ """
+ Determine if a local port forwarding channel will be granted, and
+ return C{OPEN_SUCCEEDED} or an error code. This method is
+ called in server mode when the client requests a channel, after
+ authentication is complete.
+
+ The C{chanid} parameter is a small number that uniquely identifies the
+ channel within a L{Transport}. A L{Channel} object is not created
+ unless this method returns C{OPEN_SUCCEEDED} -- once a
+ L{Channel} object is created, you can call L{Channel.get_id} to
+ retrieve the channel ID.
+
+ The origin and destination parameters are (ip_address, port) tuples
+ that correspond to both ends of the TCP connection in the forwarding
+ tunnel.
+
+ The return value should either be C{OPEN_SUCCEEDED} (or
+ C{0}) to allow the channel request, or one of the following error
+ codes to reject it:
+ - C{OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED}
+ - C{OPEN_FAILED_CONNECT_FAILED}
+ - C{OPEN_FAILED_UNKNOWN_CHANNEL_TYPE}
+ - C{OPEN_FAILED_RESOURCE_SHORTAGE}
+
+ The default implementation always returns
+ C{OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED}.
+
+ @param chanid: ID of the channel
+ @type chanid: int
+ @param origin: 2-tuple containing the IP address and port of the
+ originator (client side)
+ @type origin: tuple
+ @param destination: 2-tuple containing the IP address and port of the
+ destination (server side)
+ @type destination: tuple
+ @return: a success or failure code (listed above)
+ @rtype: int
+ """
+ return OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
class SubsystemHandler (threading.Thread):
@@ -443,8 +550,6 @@ class SubsystemHandler (threading.Thread):
authenticated and requests subsytem C{"mp3"}, an object of class
C{MP3Handler} will be created, and L{start_subsystem} will be called on
it from a new thread.
-
- @since: ivysaur
"""
def __init__(self, channel, name, server):
"""
diff --git a/paramiko/sftp.py b/paramiko/sftp.py
index 58d7103..2296d85 100644
--- a/paramiko/sftp.py
+++ b/paramiko/sftp.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2005 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
#
# This file is part of paramiko.
#
@@ -16,6 +16,7 @@
# along with Paramiko; if not, write to the Free Software Foundation, Inc.,
# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+import select
import socket
import struct
@@ -113,24 +114,22 @@ class BaseSFTP (object):
return version
def _send_server_version(self):
+ # winscp will freak out if the server sends version info before the
+ # client finishes sending INIT.
+ t, data = self._read_packet()
+ if t != CMD_INIT:
+ raise SFTPError('Incompatible sftp protocol')
+ version = struct.unpack('>I', data[:4])[0]
# advertise that we support "check-file"
extension_pairs = [ 'check-file', 'md5,sha1' ]
msg = Message()
msg.add_int(_VERSION)
msg.add(*extension_pairs)
self._send_packet(CMD_VERSION, str(msg))
- t, data = self._read_packet()
- if t != CMD_INIT:
- raise SFTPError('Incompatible sftp protocol')
- version = struct.unpack('>I', data[:4])[0]
return version
- def _log(self, level, msg):
- if issubclass(type(msg), list):
- for m in msg:
- self.logger.log(level, m)
- else:
- self.logger.log(level, msg)
+ def _log(self, level, msg, *args):
+ self.logger.log(level, msg, *args)
def _write_all(self, out):
while len(out) > 0:
@@ -145,7 +144,20 @@ class BaseSFTP (object):
def _read_all(self, n):
out = ''
while n > 0:
- x = self.sock.recv(n)
+ if isinstance(self.sock, socket.socket):
+ # sometimes sftp is used directly over a socket instead of
+ # through a paramiko channel. in this case, check periodically
+ # if the socket is closed. (for some reason, recv() won't ever
+ # return or raise an exception, but calling select on a closed
+ # socket will.)
+ while True:
+ read, write, err = select.select([ self.sock ], [], [], 0.1)
+ if len(read) > 0:
+ x = self.sock.recv(n)
+ break
+ else:
+ x = self.sock.recv(n)
+
if len(x) == 0:
raise EOFError()
out += x
@@ -153,16 +165,24 @@ class BaseSFTP (object):
return out
def _send_packet(self, t, packet):
+ #self._log(DEBUG2, 'write: %s (len=%d)' % (CMD_NAMES.get(t, '0x%02x' % t), len(packet)))
out = struct.pack('>I', len(packet) + 1) + chr(t) + packet
if self.ultra_debug:
self._log(DEBUG, util.format_binary(out, 'OUT: '))
self._write_all(out)
def _read_packet(self):
- size = struct.unpack('>I', self._read_all(4))[0]
+ x = self._read_all(4)
+ # most sftp servers won't accept packets larger than about 32k, so
+ # anything with the high byte set (> 16MB) is just garbage.
+ if x[0] != '\x00':
+ raise SFTPError('Garbage packet received')
+ size = struct.unpack('>I', x)[0]
data = self._read_all(size)
if self.ultra_debug:
self._log(DEBUG, util.format_binary(data, 'IN: '));
if size > 0:
- return ord(data[0]), data[1:]
+ t = ord(data[0])
+ #self._log(DEBUG2, 'read: %s (len=%d)' % (CMD_NAMES.get(t), '0x%02x' % t, len(data)-1))
+ return t, data[1:]
return 0, ''
diff --git a/paramiko/sftp_attr.py b/paramiko/sftp_attr.py
index eae7c99..9c92862 100644
--- a/paramiko/sftp_attr.py
+++ b/paramiko/sftp_attr.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2005 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2006 Robey Pointer <robey@lag.net>
#
# This file is part of paramiko.
#
@@ -51,6 +51,12 @@ class SFTPAttributes (object):
Create a new (empty) SFTPAttributes object. All fields will be empty.
"""
self._flags = 0
+ self.st_size = None
+ self.st_uid = None
+ self.st_gid = None
+ self.st_mode = None
+ self.st_atime = None
+ self.st_mtime = None
self.attr = {}
def from_stat(cls, obj, filename=None):
@@ -80,18 +86,17 @@ class SFTPAttributes (object):
def __repr__(self):
return '<SFTPAttributes: %s>' % self._debug_str()
- def __str__(self):
- return self._debug_str()
-
### internals...
- def _from_msg(cls, msg, filename=None):
+ def _from_msg(cls, msg, filename=None, longname=None):
attr = cls()
attr._unpack(msg)
if filename is not None:
attr.filename = filename
+ if longname is not None:
+ attr.longname = longname
return attr
_from_msg = classmethod(_from_msg)
@@ -114,13 +119,13 @@ class SFTPAttributes (object):
def _pack(self, msg):
self._flags = 0
- if hasattr(self, 'st_size'):
+ if self.st_size is not None:
self._flags |= self.FLAG_SIZE
- if hasattr(self, 'st_uid') or hasattr(self, 'st_gid'):
+ if (self.st_uid is not None) and (self.st_gid is not None):
self._flags |= self.FLAG_UIDGID
- if hasattr(self, 'st_mode'):
+ if self.st_mode is not None:
self._flags |= self.FLAG_PERMISSIONS
- if hasattr(self, 'st_atime') or hasattr(self, 'st_mtime'):
+ if (self.st_atime is not None) and (self.st_mtime is not None):
self._flags |= self.FLAG_AMTIME
if len(self.attr) > 0:
self._flags |= self.FLAG_EXTENDED
@@ -128,13 +133,14 @@ class SFTPAttributes (object):
if self._flags & self.FLAG_SIZE:
msg.add_int64(self.st_size)
if self._flags & self.FLAG_UIDGID:
- msg.add_int(getattr(self, 'st_uid', 0))
- msg.add_int(getattr(self, 'st_gid', 0))
+ msg.add_int(self.st_uid)
+ msg.add_int(self.st_gid)
if self._flags & self.FLAG_PERMISSIONS:
msg.add_int(self.st_mode)
if self._flags & self.FLAG_AMTIME:
- msg.add_int(getattr(self, 'st_atime', 0))
- msg.add_int(getattr(self, 'st_mtime', 0))
+ # throw away any fractional seconds
+ msg.add_int(long(self.st_atime))
+ msg.add_int(long(self.st_mtime))
if self._flags & self.FLAG_EXTENDED:
msg.add_int(len(self.attr))
for key, val in self.attr.iteritems():
@@ -144,15 +150,14 @@ class SFTPAttributes (object):
def _debug_str(self):
out = '[ '
- if hasattr(self, 'st_size'):
+ if self.st_size is not None:
out += 'size=%d ' % self.st_size
- if hasattr(self, 'st_uid') or hasattr(self, 'st_gid'):
- out += 'uid=%d gid=%d ' % (getattr(self, 'st_uid', 0), getattr(self, 'st_gid', 0))
- if hasattr(self, 'st_mode'):
+ if (self.st_uid is not None) and (self.st_gid is not None):
+ out += 'uid=%d gid=%d ' % (self.st_uid, self.st_gid)
+ if self.st_mode is not None:
out += 'mode=' + oct(self.st_mode) + ' '
- if hasattr(self, 'st_atime') or hasattr(self, 'st_mtime'):
- out += 'atime=%d mtime=%d ' % (getattr(self, 'st_atime', 0),
- getattr(self, 'st_mtime', 0))
+ if (self.st_atime is not None) and (self.st_mtime is not None):
+ out += 'atime=%d mtime=%d ' % (self.st_atime, self.st_mtime)
for k, v in self.attr.iteritems():
out += '"%s"=%r ' % (str(k), v)
out += ']'
@@ -171,7 +176,7 @@ class SFTPAttributes (object):
def __str__(self):
"create a unix-style long description of the file (like ls -l)"
- if hasattr(self, 'st_mode'):
+ if self.st_mode is not None:
kind = stat.S_IFMT(self.st_mode)
if kind == stat.S_IFIFO:
ks = 'p'
@@ -194,15 +199,25 @@ class SFTPAttributes (object):
ks += self._rwx(self.st_mode & 7, self.st_mode & stat.S_ISVTX, True)
else:
ks = '?---------'
- uid = getattr(self, 'st_uid', -1)
- gid = getattr(self, 'st_gid', -1)
- size = getattr(self, 'st_size', -1)
- mtime = getattr(self, 'st_mtime', 0)
# compute display date
- if abs(time.time() - mtime) > 15552000:
- # (15552000 = 6 months)
- datestr = time.strftime('%d %b %Y', time.localtime(mtime))
+ if (self.st_mtime is None) or (self.st_mtime == 0xffffffff):
+ # shouldn't really happen
+ datestr = '(unknown date)'
else:
- datestr = time.strftime('%d %b %H:%M', time.localtime(mtime))
+ if abs(time.time() - self.st_mtime) > 15552000:
+ # (15552000 = 6 months)
+ datestr = time.strftime('%d %b %Y', time.localtime(self.st_mtime))
+ else:
+ datestr = time.strftime('%d %b %H:%M', time.localtime(self.st_mtime))
filename = getattr(self, 'filename', '?')
- return '%s 1 %-8d %-8d %8d %-12s %s' % (ks, uid, gid, size, datestr, filename)
+
+ # not all servers support uid/gid
+ uid = self.st_uid
+ gid = self.st_gid
+ if uid is None:
+ uid = 0
+ if gid is None:
+ gid = 0
+
+ return '%s 1 %-8d %-8d %8d %-12s %s' % (ks, uid, gid, self.st_size, datestr, filename)
+
diff --git a/paramiko/sftp_client.py b/paramiko/sftp_client.py
index 2fe89e9..b3d2d56 100644
--- a/paramiko/sftp_client.py
+++ b/paramiko/sftp_client.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2005 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
#
# This file is part of paramiko.
#
@@ -20,21 +20,32 @@
Client-mode SFTP support.
"""
+from binascii import hexlify
import errno
import os
import threading
+import time
import weakref
+
from paramiko.sftp import *
from paramiko.sftp_attr import SFTPAttributes
+from paramiko.ssh_exception import SSHException
from paramiko.sftp_file import SFTPFile
def _to_unicode(s):
- "if a str is not ascii, decode its utf8 into unicode"
+ """
+ decode a string as ascii or utf8 if possible (as required by the sftp
+ protocol). if neither works, just return a byte string because the server
+ probably doesn't know the filename's encoding.
+ """
try:
return s.encode('ascii')
- except:
- return s.decode('utf-8')
+ except UnicodeError:
+ try:
+ return s.decode('utf-8')
+ except UnicodeError:
+ return s
class SFTPClient (BaseSFTP):
@@ -51,8 +62,11 @@ class SFTPClient (BaseSFTP):
An alternate way to create an SFTP client context is by using
L{from_transport}.
- @param sock: an open L{Channel} using the C{"sftp"} subsystem.
+ @param sock: an open L{Channel} using the C{"sftp"} subsystem
@type sock: L{Channel}
+
+ @raise SSHException: if there's an exception while negotiating
+ sftp
"""
BaseSFTP.__init__(self)
self.sock = sock
@@ -66,31 +80,33 @@ class SFTPClient (BaseSFTP):
if type(sock) is Channel:
# override default logger
transport = self.sock.get_transport()
- self.logger = util.get_logger(transport.get_log_channel() + '.' +
- self.sock.get_name() + '.sftp')
+ self.logger = util.get_logger(transport.get_log_channel() + '.sftp')
self.ultra_debug = transport.get_hexdump()
- self._send_version()
-
- def __del__(self):
- self.close()
+ try:
+ server_version = self._send_version()
+ except EOFError, x:
+ raise SSHException('EOF during negotiation')
+ self._log(INFO, 'Opened sftp connection (server version %d)' % server_version)
- def from_transport(selfclass, t):
+ def from_transport(cls, t):
"""
Create an SFTP client channel from an open L{Transport}.
- @param t: an open L{Transport} which is already authenticated.
+ @param t: an open L{Transport} which is already authenticated
@type t: L{Transport}
@return: a new L{SFTPClient} object, referring to an sftp session
- (channel) across the transport.
+ (channel) across the transport
@rtype: L{SFTPClient}
"""
chan = t.open_session()
if chan is None:
return None
- if not chan.invoke_subsystem('sftp'):
- raise SFTPError('Failed to invoke sftp subsystem')
- return selfclass(chan)
+ 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)))
def close(self):
"""
@@ -98,7 +114,20 @@ class SFTPClient (BaseSFTP):
@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
def listdir(self, path='.'):
"""
@@ -121,6 +150,11 @@ class SFTPClient (BaseSFTP):
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
+ depend on the SFTP server implementation.
@param path: path to list (defaults to C{'.'})
@type path: str
@@ -130,6 +164,7 @@ class SFTPClient (BaseSFTP):
@since: 1.2
"""
path = self._adjust_cwd(path)
+ self._log(DEBUG, 'listdir(%r)' % path)
t, msg = self._request(CMD_OPENDIR, path)
if t != CMD_HANDLE:
raise SFTPError('Expected handle')
@@ -147,13 +182,13 @@ class SFTPClient (BaseSFTP):
for i in range(count):
filename = _to_unicode(msg.get_string())
longname = _to_unicode(msg.get_string())
- attr = SFTPAttributes._from_msg(msg, filename)
+ attr = SFTPAttributes._from_msg(msg, filename, longname)
if (filename != '.') and (filename != '..'):
filelist.append(attr)
self._request(CMD_CLOSE, handle)
return filelist
- def file(self, filename, mode='r', bufsize=-1):
+ def open(self, filename, mode='r', bufsize=-1):
"""
Open a file on the remote server. The arguments are the same as for
python's built-in C{file} (aka C{open}). A file-like object is
@@ -177,18 +212,19 @@ class SFTPClient (BaseSFTP):
buffering, C{1} uses line buffering, and any number greater than 1
(C{>1}) uses that specific buffer size.
- @param filename: name of the file to open.
- @type filename: string
- @param mode: mode (python-style) to open in.
- @type mode: string
+ @param filename: name of the file to open
+ @type filename: str
+ @param mode: mode (python-style) to open in
+ @type mode: str
@param bufsize: desired buffering (-1 = default buffer size)
@type bufsize: int
- @return: a file object representing the open file.
+ @return: a file object representing the open file
@rtype: SFTPFile
@raise IOError: if the file could not be opened.
"""
filename = self._adjust_cwd(filename)
+ self._log(DEBUG, 'open(%r, %r)' % (filename, mode))
imode = 0
if ('r' in mode) or ('+' in mode):
imode |= SFTP_FLAG_READ
@@ -205,23 +241,24 @@ class SFTPClient (BaseSFTP):
if t != CMD_HANDLE:
raise SFTPError('Expected handle')
handle = msg.get_string()
+ self._log(DEBUG, 'open(%r, %r) -> %s' % (filename, mode, hexlify(handle)))
return SFTPFile(self, handle, mode, bufsize)
- # python has migrated toward file() instead of open().
- # and really, that's more easily identifiable.
- open = file
+ # python continues to vacillate about "open" vs "file"...
+ file = open
def remove(self, path):
"""
- Remove the file at the given path.
+ Remove the file at the given path. This only works on files; for
+ removing folders (directories), use L{rmdir}.
- @param path: path (absolute or relative) of the file to remove.
- @type path: string
+ @param path: path (absolute or relative) of the file to remove
+ @type path: str
- @raise IOError: if the path refers to a folder (directory). Use
- L{rmdir} to remove a folder.
+ @raise IOError: if the path refers to a folder (directory)
"""
path = self._adjust_cwd(path)
+ self._log(DEBUG, 'remove(%r)' % path)
self._request(CMD_REMOVE, path)
unlink = remove
@@ -230,16 +267,17 @@ class SFTPClient (BaseSFTP):
"""
Rename a file or folder from C{oldpath} to C{newpath}.
- @param oldpath: existing name of the file or folder.
- @type oldpath: string
- @param newpath: new name for the file or folder.
- @type newpath: string
+ @param oldpath: existing name of the file or folder
+ @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.
+ wrong
"""
oldpath = self._adjust_cwd(oldpath)
newpath = self._adjust_cwd(newpath)
+ self._log(DEBUG, 'rename(%r, %r)' % (oldpath, newpath))
self._request(CMD_RENAME, oldpath, newpath)
def mkdir(self, path, mode=0777):
@@ -248,12 +286,13 @@ class SFTPClient (BaseSFTP):
The default mode is 0777 (octal). On some systems, mode is ignored.
Where it is used, the current umask value is first masked out.
- @param path: name of the folder to create.
- @type path: string
- @param mode: permissions (posix-style) for the newly-created folder.
+ @param path: name of the folder to create
+ @type path: str
+ @param mode: permissions (posix-style) for the newly-created folder
@type mode: int
"""
path = self._adjust_cwd(path)
+ self._log(DEBUG, 'mkdir(%r, %r)' % (path, mode))
attr = SFTPAttributes()
attr.st_mode = mode
self._request(CMD_MKDIR, path, attr)
@@ -262,10 +301,11 @@ class SFTPClient (BaseSFTP):
"""
Remove the folder named C{path}.
- @param path: name of the folder to remove.
- @type path: string
+ @param path: name of the folder to remove
+ @type path: str
"""
path = self._adjust_cwd(path)
+ self._log(DEBUG, 'rmdir(%r)' % path)
self._request(CMD_RMDIR, path)
def stat(self, path):
@@ -282,12 +322,13 @@ class SFTPClient (BaseSFTP):
The fields supported are: C{st_mode}, C{st_size}, C{st_uid}, C{st_gid},
C{st_atime}, and C{st_mtime}.
- @param path: the filename to stat.
- @type path: string
- @return: an object containing attributes about the given file.
+ @param path: the filename to stat
+ @type path: str
+ @return: an object containing attributes about the given file
@rtype: SFTPAttributes
"""
path = self._adjust_cwd(path)
+ self._log(DEBUG, 'stat(%r)' % path)
t, msg = self._request(CMD_STAT, path)
if t != CMD_ATTRS:
raise SFTPError('Expected attributes')
@@ -299,12 +340,13 @@ class SFTPClient (BaseSFTP):
following symbolic links (shortcuts). This otherwise behaves exactly
the same as L{stat}.
- @param path: the filename to stat.
- @type path: string
- @return: an object containing attributes about the given file.
+ @param path: the filename to stat
+ @type path: str
+ @return: an object containing attributes about the given file
@rtype: SFTPAttributes
"""
path = self._adjust_cwd(path)
+ self._log(DEBUG, 'lstat(%r)' % path)
t, msg = self._request(CMD_LSTAT, path)
if t != CMD_ATTRS:
raise SFTPError('Expected attributes')
@@ -315,12 +357,13 @@ class SFTPClient (BaseSFTP):
Create a symbolic link (shortcut) of the C{source} path at
C{destination}.
- @param source: path of the original file.
- @type source: string
- @param dest: path of the newly created symlink.
- @type dest: string
+ @param source: path of the original file
+ @type source: str
+ @param dest: path of the newly created symlink
+ @type dest: str
"""
dest = self._adjust_cwd(dest)
+ self._log(DEBUG, 'symlink(%r, %r)' % (source, dest))
if type(source) is unicode:
source = source.encode('utf-8')
self._request(CMD_SYMLINK, source, dest)
@@ -331,12 +374,13 @@ class SFTPClient (BaseSFTP):
unix-style and identical to those used by python's C{os.chmod}
function.
- @param path: path of the file to change the permissions of.
- @type path: string
- @param mode: new permissions.
+ @param path: path of the file to change the permissions of
+ @type path: str
+ @param mode: new permissions
@type mode: int
"""
path = self._adjust_cwd(path)
+ self._log(DEBUG, 'chmod(%r, %r)' % (path, mode))
attr = SFTPAttributes()
attr.st_mode = mode
self._request(CMD_SETSTAT, path, attr)
@@ -348,14 +392,15 @@ class SFTPClient (BaseSFTP):
only want to change one, use L{stat} first to retrieve the current
owner and group.
- @param path: path of the file to change the owner and group of.
- @type path: string
+ @param path: path of the file to change the owner and group of
+ @type path: str
@param uid: new owner's uid
@type uid: int
@param gid: new group id
@type gid: int
"""
path = self._adjust_cwd(path)
+ self._log(DEBUG, 'chown(%r, %r, %r)' % (path, uid, gid))
attr = SFTPAttributes()
attr.st_uid, attr.st_gid = uid, gid
self._request(CMD_SETSTAT, path, attr)
@@ -369,31 +414,50 @@ class SFTPClient (BaseSFTP):
modified times, respectively. This bizarre API is mimicked from python
for the sake of consistency -- I apologize.
- @param path: path of the file to modify.
- @type path: string
+ @param path: path of the file to modify
+ @type path: str
@param times: C{None} or a tuple of (access time, modified time) in
- standard internet epoch time (seconds since 01 January 1970 GMT).
- @type times: tuple of int
+ standard internet epoch time (seconds since 01 January 1970 GMT)
+ @type times: tuple(int)
"""
path = self._adjust_cwd(path)
if times is None:
times = (time.time(), time.time())
+ self._log(DEBUG, 'utime(%r, %r)' % (path, times))
attr = SFTPAttributes()
attr.st_atime, attr.st_mtime = times
self._request(CMD_SETSTAT, path, attr)
+ def truncate(self, path, size):
+ """
+ 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
+ @type size: int or long
+ """
+ path = self._adjust_cwd(path)
+ self._log(DEBUG, 'truncate(%r, %r)' % (path, size))
+ attr = SFTPAttributes()
+ attr.st_size = size
+ self._request(CMD_SETSTAT, path, attr)
+
def readlink(self, path):
"""
Return the target of a symbolic link (shortcut). You can use
L{symlink} to create these. The result may be either an absolute or
relative pathname.
- @param path: path of the symbolic link file.
+ @param path: path of the symbolic link file
@type path: str
- @return: target path.
+ @return: target path
@rtype: str
"""
path = self._adjust_cwd(path)
+ self._log(DEBUG, 'readlink(%r)' % path)
t, msg = self._request(CMD_READLINK, path)
if t != CMD_NAME:
raise SFTPError('Expected name response')
@@ -411,14 +475,15 @@ class SFTPClient (BaseSFTP):
server is considering to be the "current folder" (by passing C{'.'}
as C{path}).
- @param path: path to be normalized.
+ @param path: path to be normalized
@type path: str
- @return: normalized form of the given path.
+ @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)
+ self._log(DEBUG, 'normalize(%r)' % path)
t, msg = self._request(CMD_REALPATH, path)
if t != CMD_NAME:
raise SFTPError('Expected name response')
@@ -457,7 +522,7 @@ class SFTPClient (BaseSFTP):
"""
return self._cwd
- def put(self, localpath, remotepath):
+ 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
@@ -469,9 +534,17 @@ class SFTPClient (BaseSFTP):
@type localpath: str
@param remotepath: the destination path on the SFTP server
@type remotepath: str
+ @param callback: optional callback function that accepts the bytes
+ transferred so far and the total bytes to be transferred
+ (since 1.7.4)
+ @type callback: function(int, int)
+ @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)
@@ -482,13 +555,16 @@ class SFTPClient (BaseSFTP):
break
fr.write(data)
size += len(data)
+ if callback is not None:
+ callback(size, file_size)
fl.close()
fr.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):
+ 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
@@ -498,10 +574,15 @@ class SFTPClient (BaseSFTP):
@type remotepath: str
@param localpath: the destination path on the local host
@type localpath: str
+ @param callback: optional callback function that accepts the bytes
+ 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
@@ -511,6 +592,8 @@ class SFTPClient (BaseSFTP):
break
fl.write(data)
size += len(data)
+ if callback is not None:
+ callback(size, file_size)
fl.close()
fr.close()
s = os.stat(localpath)
@@ -552,7 +635,10 @@ class SFTPClient (BaseSFTP):
def _read_response(self, waitfor=None):
while True:
- t, data = self._read_packet()
+ try:
+ t, data = self._read_packet()
+ except EOFError, e:
+ raise SSHException('Server connection dropped: %s' % (str(e),))
msg = Message(data)
num = msg.get_int()
if num not in self._expecting:
@@ -560,7 +646,7 @@ class SFTPClient (BaseSFTP):
self._log(DEBUG, 'Unexpected response #%d' % (num,))
if waitfor is None:
# just doing a single check
- return
+ break
continue
fileobj = self._expecting[num]
del self._expecting[num]
@@ -573,7 +659,8 @@ class SFTPClient (BaseSFTP):
fileobj._async_response(t, msg)
if waitfor is None:
# just doing a single check
- return
+ break
+ return (None, None)
def _finish_responses(self, fileobj):
while fileobj in self._expecting.values():
@@ -610,6 +697,8 @@ class SFTPClient (BaseSFTP):
if (len(path) > 0) and (path[0] == '/'):
# absolute path
return path
+ if self._cwd == '/':
+ return self._cwd + path
return self._cwd + '/' + path
diff --git a/paramiko/sftp_file.py b/paramiko/sftp_file.py
index f224f02..cfa7db1 100644
--- a/paramiko/sftp_file.py
+++ b/paramiko/sftp_file.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2005 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
#
# This file is part of paramiko.
#
@@ -20,7 +20,11 @@
L{SFTPFile}
"""
+from binascii import hexlify
+import socket
import threading
+import time
+
from paramiko.common import *
from paramiko.sftp import *
from paramiko.file import BufferedFile
@@ -43,12 +47,18 @@ class SFTPFile (BufferedFile):
BufferedFile._set_mode(self, mode, bufsize)
self.pipelined = False
self._prefetching = False
+ self._prefetch_done = False
+ self._prefetch_data = {}
+ self._prefetch_reads = []
self._saved_exception = None
def __del__(self):
- self.close(_async=True)
+ self._close(async=True)
+
+ def close(self):
+ self._close(async=False)
- def close(self, _async=False):
+ def _close(self, async=False):
# We allow double-close without signaling an error, because real
# Python file objects do. However, we must protect against actually
# sending multiple CMD_CLOSE packets, because after we close our
@@ -58,11 +68,12 @@ class SFTPFile (BufferedFile):
# __del__.)
if self._closed:
return
+ self.sftp._log(DEBUG, 'close(%s)' % hexlify(self.handle))
if self.pipelined:
self.sftp._finish_responses(self)
BufferedFile.close(self)
try:
- if _async:
+ if async:
# GC'd file handle could be called from an arbitrary thread -- don't wait for a response
self.sftp._async_request(type(None), CMD_CLOSE, self.handle)
else:
@@ -70,34 +81,77 @@ class SFTPFile (BufferedFile):
except EOFError:
# may have outlived the Transport connection
pass
- except IOError:
+ except (IOError, socket.error):
# may have outlived the Transport connection
pass
+ def _data_in_prefetch_requests(self, offset, size):
+ k = [i for i in self._prefetch_reads if i[0] <= offset]
+ if len(k) == 0:
+ return False
+ k.sort(lambda x, y: cmp(x[0], y[0]))
+ buf_offset, buf_size = k[-1]
+ if buf_offset + buf_size <= offset:
+ # prefetch request ends before this one begins
+ return False
+ if buf_offset + buf_size >= offset + size:
+ # inclusive
+ return True
+ # well, we have part of the request. see if another chunk has the rest.
+ return self._data_in_prefetch_requests(buf_offset + buf_size, offset + size - buf_offset - buf_size)
+
+ def _data_in_prefetch_buffers(self, offset):
+ """
+ if a block of data is present in the prefetch buffers, at the given
+ offset, return the offset of the relevant prefetch buffer. otherwise,
+ return None. this guarantees nothing about the number of bytes
+ collected in the prefetch buffer so far.
+ """
+ k = [i for i in self._prefetch_data.keys() if i <= offset]
+ if len(k) == 0:
+ return None
+ index = max(k)
+ buf_offset = offset - index
+ if buf_offset >= len(self._prefetch_data[index]):
+ # it's not here
+ return None
+ return index
+
def _read_prefetch(self, size):
+ """
+ read data out of the prefetch buffer, if possible. if the data isn't
+ in the buffer, return None. otherwise, behaves like a normal read.
+ """
# while not closed, and haven't fetched past the current position, and haven't reached EOF...
- while (self._prefetch_so_far <= self._realpos) and \
- (self._prefetch_so_far < self._prefetch_size) and not self._closed:
+ while True:
+ offset = self._data_in_prefetch_buffers(self._realpos)
+ if offset is not None:
+ break
+ if self._prefetch_done or self._closed:
+ break
self.sftp._read_response()
- self._check_exception()
- k = self._prefetch_data.keys()
- k.sort()
- while (len(k) > 0) and (k[0] + len(self._prefetch_data[k[0]]) <= self._realpos):
- # done with that block
- del self._prefetch_data[k[0]]
- k.pop(0)
- if len(k) == 0:
+ self._check_exception()
+ if offset is None:
self._prefetching = False
- return ''
- assert k[0] <= self._realpos
- buf_offset = self._realpos - k[0]
- buf_length = len(self._prefetch_data[k[0]]) - buf_offset
- return self._prefetch_data[k[0]][buf_offset : buf_offset + buf_length]
+ return None
+ prefetch = self._prefetch_data[offset]
+ del self._prefetch_data[offset]
+
+ buf_offset = self._realpos - offset
+ if buf_offset > 0:
+ self._prefetch_data[offset] = prefetch[:buf_offset]
+ prefetch = prefetch[buf_offset:]
+ if size < len(prefetch):
+ self._prefetch_data[self._realpos + size] = prefetch[size:]
+ prefetch = prefetch[:size]
+ return prefetch
def _read(self, size):
size = min(size, self.MAX_REQUEST_SIZE)
if self._prefetching:
- return self._read_prefetch(size)
+ data = self._read_prefetch(size)
+ if data is not None:
+ return data
t, msg = self.sftp._request(CMD_READ, self.handle, long(self._realpos), int(size))
if t != CMD_DATA:
raise SFTPError('Expected data')
@@ -106,8 +160,7 @@ class SFTPFile (BufferedFile):
def _write(self, data):
# may write less than requested if it would exceed max packet size
chunk = min(len(data), self.MAX_REQUEST_SIZE)
- req = self.sftp._async_request(type(None), CMD_WRITE, self.handle, long(self._realpos),
- str(data[:chunk]))
+ req = self.sftp._async_request(type(None), CMD_WRITE, self.handle, long(self._realpos), str(data[:chunk]))
if not self.pipelined or self.sftp.sock.recv_ready():
t, msg = self.sftp._read_response(req)
if t != CMD_STATUS:
@@ -173,6 +226,71 @@ class SFTPFile (BufferedFile):
if t != CMD_ATTRS:
raise SFTPError('Expected attributes')
return SFTPAttributes._from_msg(msg)
+
+ def chmod(self, mode):
+ """
+ Change the mode (permissions) of this file. The permissions are
+ unix-style and identical to those used by python's C{os.chmod}
+ function.
+
+ @param mode: new permissions
+ @type mode: int
+ """
+ self.sftp._log(DEBUG, 'chmod(%s, %r)' % (hexlify(self.handle), mode))
+ attr = SFTPAttributes()
+ attr.st_mode = mode
+ self.sftp._request(CMD_FSETSTAT, self.handle, attr)
+
+ def chown(self, uid, gid):
+ """
+ Change the owner (C{uid}) and group (C{gid}) of this file. As with
+ python's C{os.chown} function, you must pass both arguments, so if you
+ only want to change one, use L{stat} first to retrieve the current
+ owner and group.
+
+ @param uid: new owner's uid
+ @type uid: int
+ @param gid: new group id
+ @type gid: int
+ """
+ self.sftp._log(DEBUG, 'chown(%s, %r, %r)' % (hexlify(self.handle), uid, gid))
+ attr = SFTPAttributes()
+ attr.st_uid, attr.st_gid = uid, gid
+ self.sftp._request(CMD_FSETSTAT, self.handle, attr)
+
+ def utime(self, times):
+ """
+ Set the access and modified times of this file. If
+ C{times} is C{None}, then the file's access and modified times are set
+ to the current time. Otherwise, C{times} must be a 2-tuple of numbers,
+ of the form C{(atime, mtime)}, which is used to set the access and
+ modified times, respectively. This bizarre API is mimicked from python
+ for the sake of consistency -- I apologize.
+
+ @param times: C{None} or a tuple of (access time, modified time) in
+ standard internet epoch time (seconds since 01 January 1970 GMT)
+ @type times: tuple(int)
+ """
+ if times is None:
+ times = (time.time(), time.time())
+ self.sftp._log(DEBUG, 'utime(%s, %r)' % (hexlify(self.handle), times))
+ attr = SFTPAttributes()
+ attr.st_atime, attr.st_mtime = times
+ self.sftp._request(CMD_FSETSTAT, self.handle, attr)
+
+ def truncate(self, size):
+ """
+ Change the size of this file. This usually extends
+ or shrinks the size of the file, just like the C{truncate()} method on
+ python file objects.
+
+ @param size: the new size of the file
+ @type size: int or long
+ """
+ self.sftp._log(DEBUG, 'truncate(%s, %r)' % (hexlify(self.handle), size))
+ attr = SFTPAttributes()
+ attr.st_size = size
+ self.sftp._request(CMD_FSETSTAT, self.handle, attr)
def check(self, hash_algorithm, offset=0, length=0, block_size=0):
"""
@@ -255,26 +373,60 @@ class SFTPFile (BufferedFile):
dramatically improve the download speed by avoiding roundtrip latency.
The file's contents are incrementally buffered in a background thread.
+ The prefetched data is stored in a buffer until read via the L{read}
+ method. Once data has been read, it's removed from the buffer. The
+ data may be read in a random order (using L{seek}); chunks of the
+ buffer that haven't been read will continue to be buffered.
+
@since: 1.5.1
"""
size = self.stat().st_size
# queue up async reads for the rest of the file
- self._prefetching = True
- self._prefetch_so_far = self._realpos
- self._prefetch_size = size
- self._prefetch_data = {}
- t = threading.Thread(target=self._prefetch)
- t.setDaemon(True)
- t.start()
-
- def _prefetch(self):
+ chunks = []
n = self._realpos
- size = self._prefetch_size
while n < size:
chunk = min(self.MAX_REQUEST_SIZE, size - n)
- self.sftp._async_request(self, CMD_READ, self.handle, long(n), int(chunk))
+ chunks.append((n, chunk))
n += chunk
+ if len(chunks) > 0:
+ self._start_prefetch(chunks)
+
+ def readv(self, chunks):
+ """
+ Read a set of blocks from the file by (offset, length). This is more
+ efficient than doing a series of L{seek} and L{read} calls, since the
+ prefetch machinery is used to retrieve all the requested blocks at
+ once.
+
+ @param chunks: a list of (offset, length) tuples indicating which
+ sections of the file to read
+ @type chunks: list(tuple(long, int))
+ @return: a list of blocks read, in the same order as in C{chunks}
+ @rtype: list(str)
+
+ @since: 1.5.4
+ """
+ self.sftp._log(DEBUG, 'readv(%s, %r)' % (hexlify(self.handle), chunks))
+ read_chunks = []
+ for offset, size in chunks:
+ # don't fetch data that's already in the prefetch buffer
+ if self._data_in_prefetch_buffers(offset) or self._data_in_prefetch_requests(offset, size):
+ continue
+
+ # break up anything larger than the max read size
+ while size > 0:
+ chunk_size = min(size, self.MAX_REQUEST_SIZE)
+ read_chunks.append((offset, chunk_size))
+ offset += chunk_size
+ size -= chunk_size
+
+ self._start_prefetch(read_chunks)
+ # now we can just devolve to a bunch of read()s :)
+ for x in chunks:
+ self.seek(x[0])
+ yield self.read(x[1])
+
### internals...
@@ -285,6 +437,21 @@ class SFTPFile (BufferedFile):
except:
return 0
+ def _start_prefetch(self, chunks):
+ self._prefetching = True
+ self._prefetch_done = False
+ self._prefetch_reads.extend(chunks)
+
+ t = threading.Thread(target=self._prefetch_thread, args=(chunks,))
+ t.setDaemon(True)
+ t.start()
+
+ def _prefetch_thread(self, chunks):
+ # do these read requests in a temporary thread because there may be
+ # a lot of them, so it may block.
+ for offset, length in chunks:
+ self.sftp._async_request(self, CMD_READ, self.handle, long(offset), int(length))
+
def _async_response(self, t, msg):
if t == CMD_STATUS:
# save exception and re-raise it on next file operation
@@ -296,8 +463,10 @@ class SFTPFile (BufferedFile):
if t != CMD_DATA:
raise SFTPError('Expected data')
data = msg.get_string()
- self._prefetch_data[self._prefetch_so_far] = data
- self._prefetch_so_far += len(data)
+ offset, length = self._prefetch_reads.pop(0)
+ self._prefetch_data[offset] = data
+ if len(self._prefetch_reads) == 0:
+ self._prefetch_done = True
def _check_exception(self):
"if there's a saved exception, raise & clear it"
diff --git a/paramiko/sftp_handle.py b/paramiko/sftp_handle.py
index e1d93e9..e976f43 100644
--- a/paramiko/sftp_handle.py
+++ b/paramiko/sftp_handle.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2005 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
#
# This file is part of paramiko.
#
@@ -35,7 +35,16 @@ class SFTPHandle (object):
Server implementations can (and should) subclass SFTPHandle to implement
features of a file handle, like L{stat} or L{chattr}.
"""
- def __init__(self):
+ def __init__(self, flags=0):
+ """
+ Create a new file handle representing a local file being served over
+ SFTP. If C{flags} is passed in, it's used to determine if the file
+ is open in append mode.
+
+ @param flags: optional flags as passed to L{SFTPServerInterface.open}
+ @type flags: int
+ """
+ self.__flags = flags
self.__name = None
# only for handles to folders:
self.__files = { }
@@ -81,15 +90,16 @@ class SFTPHandle (object):
@return: data read from the file, or an SFTP error code.
@rtype: str
"""
- if not hasattr(self, 'readfile') or (self.readfile is None):
+ readfile = getattr(self, 'readfile', None)
+ if readfile is None:
return SFTP_OP_UNSUPPORTED
try:
if self.__tell is None:
- self.__tell = self.readfile.tell()
+ self.__tell = readfile.tell()
if offset != self.__tell:
- self.readfile.seek(offset)
+ readfile.seek(offset)
self.__tell = offset
- data = self.readfile.read(length)
+ data = readfile.read(length)
except IOError, e:
self.__tell = None
return SFTPServer.convert_errno(e.errno)
@@ -116,20 +126,24 @@ class SFTPHandle (object):
@type data: str
@return: an SFTP error code like L{SFTP_OK}.
"""
- if not hasattr(self, 'writefile') or (self.writefile is None):
+ writefile = getattr(self, 'writefile', None)
+ if writefile is None:
return SFTP_OP_UNSUPPORTED
try:
- if self.__tell is None:
- self.__tell = self.writefile.tell()
- if offset != self.__tell:
- self.writefile.seek(offset)
- self.__tell = offset
- self.writefile.write(data)
- self.writefile.flush()
+ # in append mode, don't care about seeking
+ if (self.__flags & os.O_APPEND) == 0:
+ if self.__tell is None:
+ self.__tell = writefile.tell()
+ if offset != self.__tell:
+ writefile.seek(offset)
+ self.__tell = offset
+ writefile.write(data)
+ writefile.flush()
except IOError, e:
self.__tell = None
return SFTPServer.convert_errno(e.errno)
- self.__tell += len(data)
+ if self.__tell is not None:
+ self.__tell += len(data)
return SFTP_OK
def stat(self):
diff --git a/paramiko/sftp_server.py b/paramiko/sftp_server.py
index 5905843..099ac12 100644
--- a/paramiko/sftp_server.py
+++ b/paramiko/sftp_server.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2005 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
#
# This file is part of paramiko.
#
@@ -66,15 +66,21 @@ class SFTPServer (BaseSFTP, SubsystemHandler):
BaseSFTP.__init__(self)
SubsystemHandler.__init__(self, channel, name, server)
transport = channel.get_transport()
- self.logger = util.get_logger(transport.get_log_channel() + '.' +
- channel.get_name() + '.sftp')
+ self.logger = util.get_logger(transport.get_log_channel() + '.sftp')
self.ultra_debug = transport.get_hexdump()
self.next_handle = 1
# map of handle-string to SFTPHandle for files & folders:
self.file_table = { }
self.folder_table = { }
self.server = sftp_si(server, *largs, **kwargs)
-
+
+ def _log(self, level, msg):
+ if issubclass(type(msg), list):
+ for m in msg:
+ super(SFTPServer, self)._log(level, "[chan " + self.sock.get_name() + "] " + m)
+ else:
+ super(SFTPServer, self)._log(level, "[chan " + self.sock.get_name() + "] " + msg)
+
def start_subsystem(self, name, transport, channel):
self.sock = channel
self._log(DEBUG, 'Started sftp server on channel %s' % repr(channel))
@@ -92,10 +98,20 @@ class SFTPServer (BaseSFTP, SubsystemHandler):
return
msg = Message(data)
request_number = msg.get_int()
- self._process(t, request_number, msg)
+ try:
+ self._process(t, request_number, msg)
+ except Exception, e:
+ self._log(DEBUG, 'Exception in server processing: ' + str(e))
+ self._log(DEBUG, util.tb_strings())
+ # send some kind of failure message, at least
+ try:
+ self._send_status(request_number, SFTP_FAILURE)
+ except:
+ pass
def finish_subsystem(self):
self.server.session_ended()
+ super(SFTPServer, self).finish_subsystem()
# close any file handles that were left open (so we can return them to the OS quickly)
for f in self.file_table.itervalues():
f.close()
@@ -118,7 +134,7 @@ class SFTPServer (BaseSFTP, SubsystemHandler):
if e == errno.EACCES:
# permission denied
return SFTP_PERMISSION_DENIED
- elif e == errno.ENOENT:
+ elif (e == errno.ENOENT) or (e == errno.ENOTDIR):
# no such file
return SFTP_NO_SUCH_FILE
else:
@@ -141,12 +157,16 @@ class SFTPServer (BaseSFTP, SubsystemHandler):
@param attr: attributes to change.
@type attr: L{SFTPAttributes}
"""
- if attr._flags & attr.FLAG_PERMISSIONS:
- os.chmod(filename, attr.st_mode)
- if attr._flags & attr.FLAG_UIDGID:
- os.chown(filename, attr.st_uid, attr.st_gid)
+ if sys.platform != 'win32':
+ # mode operations are meaningless on win32
+ if attr._flags & attr.FLAG_PERMISSIONS:
+ os.chmod(filename, attr.st_mode)
+ if attr._flags & attr.FLAG_UIDGID:
+ os.chown(filename, attr.st_uid, attr.st_gid)
if attr._flags & attr.FLAG_AMTIME:
os.utime(filename, (attr.st_atime, attr.st_mtime))
+ if attr._flags & attr.FLAG_SIZE:
+ open(filename, 'w+').truncate(attr.st_size)
set_file_attr = staticmethod(set_file_attr)
@@ -184,8 +204,12 @@ class SFTPServer (BaseSFTP, SubsystemHandler):
def _send_status(self, request_number, code, desc=None):
if desc is None:
- desc = SFTP_DESC[code]
- self._response(request_number, CMD_STATUS, code, desc)
+ try:
+ desc = SFTP_DESC[code]
+ except IndexError:
+ desc = 'Unknown'
+ # some clients expect a "langauge" tag at the end (but don't mind it being blank)
+ self._response(request_number, CMD_STATUS, code, desc, '')
def _open_folder(self, request_number, path):
resp = self.server.list_folder(path)
@@ -222,7 +246,7 @@ class SFTPServer (BaseSFTP, SubsystemHandler):
start = msg.get_int64()
length = msg.get_int64()
block_size = msg.get_int()
- if not self.file_table.has_key(handle):
+ if handle not in self.file_table:
self._send_status(request_number, SFTP_BAD_MESSAGE, 'Invalid handle')
return
f = self.file_table[handle]
@@ -246,29 +270,29 @@ class SFTPServer (BaseSFTP, SubsystemHandler):
self._send_status(request_number, SFTP_FAILURE, 'Block size too small')
return
- sum = ''
+ sum_out = ''
offset = start
while offset < start + length:
blocklen = min(block_size, start + length - offset)
# don't try to read more than about 64KB at a time
chunklen = min(blocklen, 65536)
count = 0
- hash = alg.new()
+ hash_obj = alg.new()
while count < blocklen:
data = f.read(offset, chunklen)
if not type(data) is str:
self._send_status(request_number, data, 'Unable to hash file')
return
- hash.update(data)
+ hash_obj.update(data)
count += len(data)
offset += count
- sum += hash.digest()
+ sum_out += hash_obj.digest()
msg = Message()
msg.add_int(request_number)
msg.add_string('check-file')
msg.add_string(algname)
- msg.add_bytes(sum)
+ msg.add_bytes(sum_out)
self._send_packet(CMD_EXTENDED_REPLY, str(msg))
def _convert_pflags(self, pflags):
@@ -298,11 +322,11 @@ class SFTPServer (BaseSFTP, SubsystemHandler):
self._send_handle_response(request_number, self.server.open(path, flags, attr))
elif t == CMD_CLOSE:
handle = msg.get_string()
- if self.folder_table.has_key(handle):
+ if handle in self.folder_table:
del self.folder_table[handle]
self._send_status(request_number, SFTP_OK)
return
- if self.file_table.has_key(handle):
+ if handle in self.file_table:
self.file_table[handle].close()
del self.file_table[handle]
self._send_status(request_number, SFTP_OK)
@@ -312,7 +336,7 @@ class SFTPServer (BaseSFTP, SubsystemHandler):
handle = msg.get_string()
offset = msg.get_int64()
length = msg.get_int()
- if not self.file_table.has_key(handle):
+ if handle not in self.file_table:
self._send_status(request_number, SFTP_BAD_MESSAGE, 'Invalid handle')
return
data = self.file_table[handle].read(offset, length)
@@ -327,7 +351,7 @@ class SFTPServer (BaseSFTP, SubsystemHandler):
handle = msg.get_string()
offset = msg.get_int64()
data = msg.get_string()
- if not self.file_table.has_key(handle):
+ if handle not in self.file_table:
self._send_status(request_number, SFTP_BAD_MESSAGE, 'Invalid handle')
return
self._send_status(request_number, self.file_table[handle].write(offset, data))
@@ -351,7 +375,7 @@ class SFTPServer (BaseSFTP, SubsystemHandler):
return
elif t == CMD_READDIR:
handle = msg.get_string()
- if not self.folder_table.has_key(handle):
+ if handle not in self.folder_table:
self._send_status(request_number, SFTP_BAD_MESSAGE, 'Invalid handle')
return
folder = self.folder_table[handle]
@@ -372,7 +396,7 @@ class SFTPServer (BaseSFTP, SubsystemHandler):
self._send_status(request_number, resp)
elif t == CMD_FSTAT:
handle = msg.get_string()
- if not self.file_table.has_key(handle):
+ if handle not in self.file_table:
self._send_status(request_number, SFTP_BAD_MESSAGE, 'Invalid handle')
return
resp = self.file_table[handle].stat()
@@ -387,7 +411,7 @@ class SFTPServer (BaseSFTP, SubsystemHandler):
elif t == CMD_FSETSTAT:
handle = msg.get_string()
attr = SFTPAttributes._from_msg(msg)
- if not self.file_table.has_key(handle):
+ if handle not in self.file_table:
self._response(request_number, SFTP_BAD_MESSAGE, 'Invalid handle')
return
self._send_status(request_number, self.file_table[handle].chattr(attr))
@@ -412,7 +436,7 @@ class SFTPServer (BaseSFTP, SubsystemHandler):
if tag == 'check-file':
self._check_file(request_number, msg)
else:
- send._send_status(request_number, SFTP_OP_UNSUPPORTED)
+ self._send_status(request_number, SFTP_OP_UNSUPPORTED)
else:
self._send_status(request_number, SFTP_OP_UNSUPPORTED)
diff --git a/paramiko/sftp_si.py b/paramiko/sftp_si.py
index 16005d4..47dd25d 100644
--- a/paramiko/sftp_si.py
+++ b/paramiko/sftp_si.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2005 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
#
# This file is part of paramiko.
#
@@ -36,6 +36,9 @@ class SFTPServerInterface (object):
SFTP sessions). However, raising an exception will usually cause the SFTP
session to abruptly end, so you will usually want to catch exceptions and
return an appropriate error code.
+
+ All paths are in string form instead of unicode because not all SFTP
+ clients & servers obey the requirement that paths be encoded in UTF-8.
"""
def __init__ (self, server, *largs, **kwargs):
@@ -268,9 +271,13 @@ class SFTPServerInterface (object):
The default implementation returns C{os.path.normpath('/' + path)}.
"""
if os.path.isabs(path):
- return os.path.normpath(path)
+ out = os.path.normpath(path)
else:
- return os.path.normpath('/' + path)
+ out = os.path.normpath('/' + path)
+ if sys.platform == 'win32':
+ # on windows, normalize backslashes to sftp/posix format
+ out = out.replace('\\', '/')
+ return out
def readlink(self, path):
"""
diff --git a/paramiko/ssh_exception.py b/paramiko/ssh_exception.py
index 900d4a0..e3120bb 100644
--- a/paramiko/ssh_exception.py
+++ b/paramiko/ssh_exception.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2005 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
#
# This file is part of paramiko.
#
@@ -28,14 +28,25 @@ class SSHException (Exception):
pass
-class PasswordRequiredException (SSHException):
+class AuthenticationException (SSHException):
+ """
+ Exception raised when authentication failed for some reason. It may be
+ possible to retry with different credentials. (Other classes specify more
+ specific reasons.)
+
+ @since: 1.6
+ """
+ pass
+
+
+class PasswordRequiredException (AuthenticationException):
"""
Exception raised when a password is needed to unlock a private key file.
"""
pass
-class BadAuthenticationType (SSHException):
+class BadAuthenticationType (AuthenticationException):
"""
Exception raised when an authentication type (like password) is used, but
the server isn't allowing that type. (It may only allow public-key, for
@@ -51,19 +62,54 @@ class BadAuthenticationType (SSHException):
allowed_types = []
def __init__(self, explanation, types):
- SSHException.__init__(self, explanation)
+ AuthenticationException.__init__(self, explanation)
self.allowed_types = types
def __str__(self):
return SSHException.__str__(self) + ' (allowed_types=%r)' % self.allowed_types
-class PartialAuthentication (SSHException):
+class PartialAuthentication (AuthenticationException):
"""
An internal exception thrown in the case of partial authentication.
"""
allowed_types = []
def __init__(self, types):
- SSHException.__init__(self, 'partial authentication')
+ AuthenticationException.__init__(self, 'partial authentication')
self.allowed_types = types
+
+
+class ChannelException (SSHException):
+ """
+ Exception raised when an attempt to open a new L{Channel} fails.
+
+ @ivar code: the error code returned by the server
+ @type code: int
+
+ @since: 1.6
+ """
+ def __init__(self, code, text):
+ SSHException.__init__(self, text)
+ self.code = code
+
+
+class BadHostKeyException (SSHException):
+ """
+ The host key given by the SSH server did not match what we were expecting.
+
+ @ivar hostname: the hostname of the SSH server
+ @type hostname: str
+ @ivar key: the host key presented by the server
+ @type key: L{PKey}
+ @ivar expected_key: the host key expected
+ @type expected_key: L{PKey}
+
+ @since: 1.6
+ """
+ def __init__(self, hostname, got_key, expected_key):
+ SSHException.__init__(self, 'Host key for server %s does not match!' % hostname)
+ self.hostname = hostname
+ self.key = got_key
+ self.expected_key = expected_key
+
diff --git a/paramiko/transport.py b/paramiko/transport.py
index 8714a96..a18e05b 100644
--- a/paramiko/transport.py
+++ b/paramiko/transport.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2005 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
#
# This file is part of paramiko.
#
@@ -30,19 +30,20 @@ import time
import weakref
from paramiko import util
+from paramiko.auth_handler import AuthHandler
+from paramiko.channel import Channel
from paramiko.common import *
from paramiko.compress import ZlibCompressor, ZlibDecompressor
-from paramiko.ssh_exception import SSHException, BadAuthenticationType
-from paramiko.message import Message
-from paramiko.channel import Channel
-from paramiko.sftp_client import SFTPClient
-from paramiko.packet import Packetizer, NeedRekeyException
-from paramiko.rsakey import RSAKey
from paramiko.dsskey import DSSKey
-from paramiko.kex_group1 import KexGroup1
from paramiko.kex_gex import KexGex
+from paramiko.kex_group1 import KexGroup1
+from paramiko.message import Message
+from paramiko.packet import Packetizer, NeedRekeyException
from paramiko.primes import ModulusPack
-from paramiko.auth_handler import AuthHandler
+from paramiko.rsakey import RSAKey
+from paramiko.server import ServerInterface
+from paramiko.sftp_client import SFTPClient
+from paramiko.ssh_exception import SSHException, BadAuthenticationType, ChannelException
# these come from PyCrypt
# http://www.amk.ca/python/writing/pycrypt/
@@ -50,7 +51,7 @@ from paramiko.auth_handler import AuthHandler
# 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.Hash import SHA, MD5, HMAC
+from Crypto.Hash import SHA, MD5
# for thread cleanup
@@ -73,8 +74,6 @@ class SecurityOptions (object):
If you try to add an algorithm that paramiko doesn't recognize,
C{ValueError} will be raised. If you try to assign something besides a
tuple to one of the fields, C{TypeError} will be raised.
-
- @since: ivysaur
"""
__slots__ = [ 'ciphers', 'digests', 'key_types', 'kex', 'compression', '_transport' ]
@@ -110,7 +109,8 @@ class SecurityOptions (object):
if type(x) is not tuple:
raise TypeError('expected tuple or list')
possible = getattr(self._transport, orig).keys()
- if len(filter(lambda n: n not in possible, x)) > 0:
+ forbidden = filter(lambda n: n not in possible, x)
+ if len(forbidden) > 0:
raise ValueError('unknown cipher')
setattr(self._transport, name, x)
@@ -140,6 +140,51 @@ class SecurityOptions (object):
"Compression algorithms")
+class ChannelMap (object):
+ def __init__(self):
+ # (id -> Channel)
+ self._map = weakref.WeakValueDictionary()
+ self._lock = threading.Lock()
+
+ def put(self, chanid, chan):
+ self._lock.acquire()
+ try:
+ 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:
+ try:
+ del self._map[chanid]
+ except KeyError:
+ 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:
+ return len(self._map)
+ finally:
+ self._lock.release()
+
+
class Transport (threading.Thread):
"""
An SSH Transport attaches to a stream (usually a socket), negotiates an
@@ -149,7 +194,7 @@ class Transport (threading.Thread):
"""
_PROTO_ID = '2.0'
- _CLIENT_ID = 'paramiko_1.5.2'
+ _CLIENT_ID = 'paramiko_1.7.4'
_preferred_ciphers = ( 'aes128-cbc', 'blowfish-cbc', 'aes256-cbc', '3des-cbc' )
_preferred_macs = ( 'hmac-sha1', 'hmac-md5', 'hmac-sha1-96', 'hmac-md5-96' )
@@ -245,25 +290,41 @@ class Transport (threading.Thread):
self.sock.settimeout(0.1)
except AttributeError:
pass
+
# negotiated crypto parameters
self.packetizer = Packetizer(sock)
self.local_version = 'SSH-' + self._PROTO_ID + '-' + self._CLIENT_ID
self.remote_version = ''
self.local_cipher = self.remote_cipher = ''
self.local_kex_init = self.remote_kex_init = None
+ self.local_mac = self.remote_mac = None
+ self.local_compression = self.remote_compression = None
self.session_id = None
- # /negotiated crypto parameters
- self.expected_packet = 0
+ self.host_key_type = None
+ self.host_key = None
+
+ # state used during negotiation
+ self.kex_engine = None
+ self.H = None
+ self.K = None
+
self.active = False
self.initial_kex_done = False
self.in_kex = False
+ self.authenticated = False
+ self._expected_packet = tuple()
self.lock = threading.Lock() # synchronization (always higher level than write_lock)
- self.channels = weakref.WeakValueDictionary() # (id -> Channel)
+
+ # tracking open channels
+ self._channels = ChannelMap()
self.channel_events = { } # (id -> Event)
self.channels_seen = { } # (id -> True)
- self.channel_counter = 1
+ self._channel_counter = 1
self.window_size = 65536
self.max_packet_size = 34816
+ self._x11_handler = None
+ self._tcp_handler = None
+
self.saved_exception = None
self.clear_to_send = threading.Event()
self.clear_to_send_lock = threading.Lock()
@@ -271,9 +332,10 @@ class Transport (threading.Thread):
self.logger = util.get_logger(self.log_name)
self.packetizer.set_log(self.logger)
self.auth_handler = None
- self.authenticated = False
- # user-defined event callbacks:
- self.completion_event = None
+ self.global_response = None # response Message from an arbitrary global request
+ self.completion_event = None # user-defined event callbacks
+ self.banner_timeout = 15 # how long (seconds) to wait for the SSH banner
+
# server mode:
self.server_mode = False
self.server_object = None
@@ -282,9 +344,6 @@ class Transport (threading.Thread):
self.server_accept_cv = threading.Condition(self.lock)
self.subsystem_table = { }
- def __del__(self):
- self.close()
-
def __repr__(self):
"""
Returns a string representation of this object, for debugging.
@@ -299,16 +358,26 @@ class Transport (threading.Thread):
out += ' (cipher %s, %d bits)' % (self.local_cipher,
self._cipher_info[self.local_cipher]['key-size'] * 8)
if self.is_authenticated():
- if len(self.channels) == 1:
- out += ' (active; 1 open channel)'
- else:
- out += ' (active; %d open channels)' % len(self.channels)
+ out += ' (active; %d open channel(s))' % len(self._channels)
elif self.initial_kex_done:
out += ' (connected; awaiting auth)'
else:
out += ' (connecting)'
out += '>'
return out
+
+ def atfork(self):
+ """
+ Terminate this Transport without closing the session. On posix
+ systems, if a Transport is open during process forking, both parent
+ 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()
+ self.close()
def get_security_options(self):
"""
@@ -319,8 +388,6 @@ class Transport (threading.Thread):
@return: an object that can be used to change the preferred algorithms
for encryption, digest (hash), public key, and key exchange.
@rtype: L{SecurityOptions}
-
- @since: ivysaur
"""
return SecurityOptions(self)
@@ -471,7 +538,8 @@ class Transport (threading.Thread):
try:
return self.server_key_dict[self.host_key_type]
except KeyError:
- return None
+ pass
+ return None
def load_server_moduli(filename=None):
"""
@@ -496,8 +564,6 @@ class Transport (threading.Thread):
@return: True if a moduli file was successfully loaded; False
otherwise.
@rtype: bool
-
- @since: doduo
@note: This has no effect when used in client mode.
"""
@@ -521,14 +587,13 @@ class Transport (threading.Thread):
"""
Close this session, and any open channels that are tied to it.
"""
+ if not self.active:
+ return
self.active = False
- # since this may be called from __del__, can't assume any attributes exist
- try:
- self.packetizer.close()
- for chan in self.channels.values():
- chan._unlink()
- except AttributeError:
- pass
+ self.packetizer.close()
+ self.join()
+ for chan in self._channels.values():
+ chan._unlink()
def get_remote_server_key(self):
"""
@@ -541,7 +606,7 @@ class Transport (threading.Thread):
@raise SSHException: if no session is currently active.
- @return: public key of the remote server.
+ @return: public key of the remote server
@rtype: L{PKey <pkey.PKey>}
"""
if (not self.active) or (not self.initial_kex_done):
@@ -553,7 +618,7 @@ class Transport (threading.Thread):
Return true if this session is active (open).
@return: True if the session is still active (open); False if the
- session is closed.
+ session is closed
@rtype: bool
"""
return self.active
@@ -563,12 +628,43 @@ class Transport (threading.Thread):
Request a new channel to the server, of type C{"session"}. This
is just an alias for C{open_channel('session')}.
- @return: a new L{Channel} on success, or C{None} if the request is
- rejected or the session ends prematurely.
+ @return: a new L{Channel}
@rtype: L{Channel}
+
+ @raise SSHException: if the request is rejected or the session ends
+ prematurely
"""
return self.open_channel('session')
+ def open_x11_channel(self, src_addr=None):
+ """
+ Request a new channel to the client, of type C{"x11"}. This
+ is just an alias for C{open_channel('x11', src_addr=src_addr)}.
+
+ @param src_addr: the source address of the x11 server (port is the
+ x11 port, ie. 6010)
+ @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
@@ -577,18 +673,20 @@ class Transport (threading.Thread):
L{connect} or L{start_client}) and authenticating.
@param kind: the kind of channel requested (usually C{"session"},
- C{"forwarded-tcpip"} or C{"direct-tcpip"}).
+ C{"forwarded-tcpip"}, C{"direct-tcpip"}, or C{"x11"})
@type kind: str
@param dest_addr: the destination address of this port forwarding,
if C{kind} is C{"forwarded-tcpip"} or C{"direct-tcpip"} (ignored
- for other channel types).
+ for other channel types)
@type dest_addr: (str, int)
@param src_addr: the source address of this port forwarding, if
- C{kind} is C{"forwarded-tcpip"} or C{"direct-tcpip"}.
+ C{kind} is C{"forwarded-tcpip"}, C{"direct-tcpip"}, or C{"x11"}
@type src_addr: (str, int)
- @return: a new L{Channel} on success, or C{None} if the request is
- rejected or the session ends prematurely.
+ @return: a new L{Channel} on success
@rtype: L{Channel}
+
+ @raise SSHException: if the request is rejected or the session ends
+ prematurely
"""
chan = None
if not self.active:
@@ -596,11 +694,7 @@ class Transport (threading.Thread):
return None
self.lock.acquire()
try:
- chanid = self.channel_counter
- while self.channels.has_key(chanid):
- self.channel_counter = (self.channel_counter + 1) & 0xffffff
- chanid = self.channel_counter
- self.channel_counter = (self.channel_counter + 1) & 0xffffff
+ chanid = self._next_channel()
m = Message()
m.add_byte(chr(MSG_CHANNEL_OPEN))
m.add_string(kind)
@@ -612,7 +706,11 @@ class Transport (threading.Thread):
m.add_int(dest_addr[1])
m.add_string(src_addr[0])
m.add_int(src_addr[1])
- self.channels[chanid] = chan = Channel(chanid)
+ elif kind == 'x11':
+ m.add_string(src_addr[0])
+ m.add_int(src_addr[1])
+ chan = Channel(chanid)
+ self._channels.put(chanid, chan)
self.channel_events[chanid] = event = threading.Event()
self.channels_seen[chanid] = True
chan._set_transport(self)
@@ -620,20 +718,84 @@ class Transport (threading.Thread):
finally:
self.lock.release()
self._send_user_message(m)
- while 1:
+ while True:
event.wait(0.1);
if not self.active:
- return None
+ e = self.get_exception()
+ if e is None:
+ e = SSHException('Unable to open channel.')
+ raise e
if event.isSet():
break
- try:
- self.lock.acquire()
- if not self.channels.has_key(chanid):
- chan = None
- finally:
- self.lock.release()
- return chan
-
+ chan = self._channels.get(chanid)
+ if chan is not None:
+ return chan
+ e = self.get_exception()
+ if e is None:
+ e = SSHException('Unable to open channel.')
+ raise e
+
+ def request_port_forward(self, address, port, handler=None):
+ """
+ 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
+ any port
+ @type port: int
+ @param handler: optional handler for incoming forwarded connections
+ @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:
+ raise SSHException('SSH session not active')
+ address = str(address)
+ port = int(port)
+ response = self.global_request('tcpip-forward', (address, port), wait=True)
+ if response is None:
+ raise SSHException('TCP forwarding request denied')
+ if port == 0:
+ port = response.get_int()
+ if handler is None:
+ def default_handler(channel, (src_addr, src_port), (dest_addr, dest_port)):
+ self._queue_incoming_channel(channel)
+ handler = default_handler
+ self._tcp_handler = handler
+ return port
+
+ def cancel_port_forward(self, address, port):
+ """
+ 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
+ @type port: int
+ """
+ if not self.active:
+ 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,
@@ -656,8 +818,6 @@ class Transport (threading.Thread):
@param bytes: the number of random bytes to send in the payload of the
ignored packet -- defaults to a random number from 10 to 41.
@type bytes: int
-
- @since: fearow
"""
m = Message()
m.add_byte(chr(MSG_IGNORE))
@@ -674,22 +834,23 @@ class Transport (threading.Thread):
bytes sent or received, but this method gives you the option of forcing
new keys whenever you want. Negotiating new keys causes a pause in
traffic both ways as the two sides swap keys and do computations. This
- method returns when the session has switched to new keys, or the
- session has died mid-negotiation.
+ method returns when the session has switched to new keys.
- @return: True if the renegotiation was successful, and the link is
- using new keys; False if the session dropped during renegotiation.
- @rtype: bool
+ @raise SSHException: if the key renegotiation failed (which causes the
+ session to end)
"""
self.completion_event = threading.Event()
self._send_kex_init()
- while 1:
- self.completion_event.wait(0.1);
+ while True:
+ self.completion_event.wait(0.1)
if not self.active:
- return False
+ e = self.get_exception()
+ if e is not None:
+ raise e
+ raise SSHException('Negotiation failed.')
if self.completion_event.isSet():
break
- return True
+ return
def set_keepalive(self, interval):
"""
@@ -701,11 +862,9 @@ class Transport (threading.Thread):
@param interval: seconds to wait before sending a keepalive packet (or
0 to disable keepalives).
@type interval: int
-
- @since: fearow
"""
self.packetizer.set_keepalive(interval,
- lambda x=self: x.global_request('keepalive@lag.net', wait=False))
+ lambda x=weakref.proxy(self): x.global_request('keepalive@lag.net', wait=False))
def global_request(self, kind, data=None, wait=True):
"""
@@ -724,8 +883,6 @@ class Transport (threading.Thread):
request was successful (or an empty L{Message} if C{wait} was
C{False}); C{None} if the request was denied.
@rtype: L{Message}
-
- @since: fearow
"""
if wait:
self.completion_event = threading.Event()
@@ -807,8 +964,6 @@ class Transport (threading.Thread):
@raise SSHException: if the SSH2 negotiation fails, the host key
supplied by the server is incorrect, or authentication fails.
-
- @since: doduo
"""
if hostkey is not None:
self._preferred_keys = [ hostkey.get_name() ]
@@ -896,8 +1051,6 @@ class Transport (threading.Thread):
@return: username that was authenticated, or C{None}.
@rtype: string
-
- @since: fearow
"""
if not self.active or (self.auth_handler is None):
return None
@@ -958,9 +1111,9 @@ class Transport (threading.Thread):
step. Otherwise, in the normal case, an empty list is returned.
@param username: the username to authenticate as
- @type username: string
+ @type username: str
@param password: the password to authenticate with
- @type password: string
+ @type password: str or unicode
@param event: an event to trigger when the authentication attempt is
complete (whether it was successful or not)
@type event: threading.Event
@@ -974,8 +1127,9 @@ class Transport (threading.Thread):
@raise BadAuthenticationType: if password authentication isn't
allowed by the server for this user (and no event was passed in)
- @raise SSHException: if the authentication failed (and no event was
- passed in)
+ @raise AuthenticationException: if the authentication failed (and no
+ event was passed in)
+ @raise SSHException: if there was a network error
"""
if (not self.active) or (not self.initial_kex_done):
# we should never try to send the password unless we're on a secure link
@@ -993,7 +1147,7 @@ class Transport (threading.Thread):
return self.auth_handler.wait_for_response(my_event)
except BadAuthenticationType, x:
# if password auth isn't allowed, but keyboard-interactive *is*, try to fudge it
- if not fallback or not 'keyboard-interactive' in x.allowed_types:
+ if not fallback or ('keyboard-interactive' not in x.allowed_types):
raise
try:
def handler(title, instructions, fields):
@@ -1010,6 +1164,7 @@ class Transport (threading.Thread):
except SSHException, ignored:
# attempt failed; just raise the original exception
raise x
+ return None
def auth_publickey(self, username, key, event=None):
"""
@@ -1037,13 +1192,14 @@ class Transport (threading.Thread):
complete (whether it was successful or not)
@type event: threading.Event
@return: list of auth types permissible for the next stage of
- authentication (normally empty).
+ 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 SSHException: if the authentication failed (and no event was
- passed in).
+ allowed by the server for this user (and no event was passed in)
+ @raise AuthenticationException: if the authentication failed (and no
+ event was passed in)
+ @raise SSHException: if there was a network error
"""
if (not self.active) or (not self.initial_kex_done):
# we should never try to authenticate unless we're on a secure link
@@ -1100,7 +1256,8 @@ class Transport (threading.Thread):
@raise BadAuthenticationType: if public-key authentication isn't
allowed by the server for this user
- @raise SSHException: if the authentication failed
+ @raise AuthenticationException: if the authentication failed
+ @raise SSHException: if there was a network error
@since: 1.5
"""
@@ -1119,13 +1276,14 @@ class Transport (threading.Thread):
(See the C{logging} module for more info.) SSH Channels will log
to a sub-channel of the one specified.
- @param name: new channel name for logging.
+ @param name: new channel name for logging
@type name: str
@since: 1.1
"""
self.log_name = name
self.logger = util.get_logger(name)
+ self.packetizer.set_log(self.logger)
def get_log_channel(self):
"""
@@ -1166,8 +1324,7 @@ class Transport (threading.Thread):
"""
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
- and is not fully tested.
+ 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
@@ -1179,6 +1336,21 @@ class Transport (threading.Thread):
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)
+ """
+ gp = getattr(self.sock, 'getpeername', None)
+ if gp is None:
+ return ('unknown', 0)
+ return gp()
def stop_thread(self):
self.active = False
@@ -1188,25 +1360,29 @@ class Transport (threading.Thread):
### internals...
- def _log(self, level, msg):
+ def _log(self, level, msg, *args):
if issubclass(type(msg), list):
for m in msg:
self.logger.log(level, m)
else:
- self.logger.log(level, msg)
+ self.logger.log(level, msg, *args)
def _get_modulus_pack(self):
"used by KexGex to find primes for group exchange"
return self._modulus_pack
+ def _next_channel(self):
+ "you are holding the lock"
+ chanid = self._channel_counter
+ while self._channels.get(chanid) is not None:
+ self._channel_counter = (self._channel_counter + 1) & 0xffffff
+ chanid = self._channel_counter
+ self._channel_counter = (self._channel_counter + 1) & 0xffffff
+ return chanid
+
def _unlink_channel(self, chanid):
"used by a Channel to remove itself from the active channel list"
- try:
- self.lock.acquire()
- if self.channels.has_key(chanid):
- del self.channels[chanid]
- finally:
- self.lock.release()
+ self._channels.delete(chanid)
def _send_message(self, data):
self.packetizer.send_message(data)
@@ -1237,9 +1413,9 @@ class Transport (threading.Thread):
if self.session_id == None:
self.session_id = h
- def _expect_packet(self, type):
+ def _expect_packet(self, *ptypes):
"used by a kex object to register the next packet type it expects to see"
- self.expected_packet = type
+ self._expected_packet = tuple(ptypes)
def _verify_key(self, host_key, sig):
key = self._key_info[self.host_key_type](Message(host_key))
@@ -1262,16 +1438,34 @@ class Transport (threading.Thread):
m.add_mpint(self.K)
m.add_bytes(self.H)
m.add_bytes(sofar)
- hash = SHA.new(str(m)).digest()
- out += hash
- sofar += hash
+ digest = SHA.new(str(m)).digest()
+ out += digest
+ sofar += digest
return out[:nbytes]
def _get_cipher(self, name, key, iv):
- if not self._cipher_info.has_key(name):
+ 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)
+ def _set_x11_handler(self, handler):
+ # only called if a channel has turned on x11 forwarding
+ if handler is None:
+ # by default, use the same mechanism as accept()
+ def default_handler(channel, (src_addr, src_port)):
+ self._queue_incoming_channel(channel)
+ self._x11_handler = default_handler
+ else:
+ self._x11_handler = handler
+
+ def _queue_incoming_channel(self, channel):
+ self.lock.acquire()
+ try:
+ self.server_accepts.append(channel)
+ 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
@@ -1288,7 +1482,7 @@ class Transport (threading.Thread):
self.packetizer.write_all(self.local_version + '\r\n')
self._check_banner()
self._send_kex_init()
- self.expected_packet = MSG_KEXINIT
+ self._expect_packet(MSG_KEXINIT)
while self.active:
if self.packetizer.need_rekey() and not self.in_kex:
@@ -1307,27 +1501,28 @@ class Transport (threading.Thread):
elif ptype == MSG_DEBUG:
self._parse_debug(m)
continue
- if self.expected_packet != 0:
- if ptype != self.expected_packet:
- raise SSHException('Expecting packet %d, got %d' % (self.expected_packet, ptype))
- self.expected_packet = 0
+ if len(self._expected_packet) > 0:
+ if ptype not in self._expected_packet:
+ raise SSHException('Expecting packet from %r, got %d' % (self._expected_packet, ptype))
+ self._expected_packet = tuple()
if (ptype >= 30) and (ptype <= 39):
self.kex_engine.parse_next(ptype, m)
continue
- if self._handler_table.has_key(ptype):
+ if ptype in self._handler_table:
self._handler_table[ptype](self, m)
- elif self._channel_handler_table.has_key(ptype):
+ elif ptype in self._channel_handler_table:
chanid = m.get_int()
- if self.channels.has_key(chanid):
- self._channel_handler_table[ptype](self.channels[chanid], m)
- elif self.channels_seen.has_key(chanid):
+ chan = self._channels.get(chanid)
+ if chan is not None:
+ self._channel_handler_table[ptype](chan, m)
+ elif chanid in self.channels_seen:
self._log(DEBUG, 'Ignoring message for dead channel %d' % chanid)
else:
self._log(ERROR, 'Channel request for unknown channel %d' % chanid)
self.active = False
self.packetizer.close()
- elif (self.auth_handler is not None) and self.auth_handler._handler_table.has_key(ptype):
+ elif (self.auth_handler is not None) and (ptype in self.auth_handler._handler_table):
self.auth_handler._handler_table[ptype](self.auth_handler, m)
else:
self._log(WARNING, 'Oops, unhandled type %d' % ptype)
@@ -1355,7 +1550,7 @@ class Transport (threading.Thread):
self._log(ERROR, util.tb_strings())
self.saved_exception = e
_active_threads.remove(self)
- for chan in self.channels.values():
+ for chan in self._channels.values():
chan._unlink()
if self.active:
self.active = False
@@ -1366,6 +1561,11 @@ class Transport (threading.Thread):
self.auth_handler.abort()
for event in self.channel_events.values():
event.set()
+ try:
+ self.lock.acquire()
+ self.server_accept_cv.notify()
+ finally:
+ self.lock.release()
self.sock.close()
@@ -1388,30 +1588,31 @@ class Transport (threading.Thread):
def _check_banner(self):
# this is slow, but we only have to do it once
for i in range(5):
- # give them 5 seconds for the first line, then just 2 seconds each additional line
+ # give them 15 seconds for the first line, then just 2 seconds
+ # each additional line. (some sites have very high latency.)
if i == 0:
- timeout = 5
+ timeout = self.banner_timeout
else:
timeout = 2
try:
- buffer = self.packetizer.readline(timeout)
+ buf = self.packetizer.readline(timeout)
except Exception, x:
raise SSHException('Error reading SSH protocol banner' + str(x))
- if buffer[:4] == 'SSH-':
+ if buf[:4] == 'SSH-':
break
- self._log(DEBUG, 'Banner: ' + buffer)
- if buffer[:4] != 'SSH-':
- raise SSHException('Indecipherable protocol version "' + buffer + '"')
+ self._log(DEBUG, 'Banner: ' + buf)
+ if buf[:4] != 'SSH-':
+ raise SSHException('Indecipherable protocol version "' + buf + '"')
# save this server version string for later
- self.remote_version = buffer
+ self.remote_version = buf
# pull off any attached comment
comment = ''
- i = string.find(buffer, ' ')
+ i = string.find(buf, ' ')
if i >= 0:
- comment = buffer[i+1:]
- buffer = buffer[:i]
+ comment = buf[i+1:]
+ buf = buf[:i]
# parse out version string and make sure it matches
- segs = buffer.split('-', 2)
+ segs = buf.split('-', 2)
if len(segs) < 3:
raise SSHException('Invalid SSH banner')
version = segs[1]
@@ -1612,7 +1813,7 @@ class Transport (threading.Thread):
if not self.packetizer.need_rekey():
self.in_kex = False
# we always expect to receive NEWKEYS now
- self.expected_packet = MSG_NEWKEYS
+ self._expect_packet(MSG_NEWKEYS)
def _auth_trigger(self):
self.authenticated = True
@@ -1661,7 +1862,22 @@ class Transport (threading.Thread):
kind = m.get_string()
self._log(DEBUG, 'Received global request "%s"' % kind)
want_reply = m.get_boolean()
- ok = self.server_object.check_global_request(kind, m)
+ if not self.server_mode:
+ self._log(DEBUG, 'Rejecting "%s" global request from server.' % kind)
+ ok = False
+ elif kind == 'tcpip-forward':
+ address = m.get_string()
+ port = m.get_int()
+ ok = self.server_object.check_port_forward_request(address, port)
+ if ok != False:
+ ok = (ok,)
+ elif kind == 'cancel-tcpip-forward':
+ address = m.get_string()
+ port = m.get_int()
+ self.server_object.cancel_port_forward_request(address, port)
+ ok = True
+ else:
+ ok = self.server_object.check_global_request(kind, m)
extra = ()
if type(ok) is tuple:
extra = ok
@@ -1692,15 +1908,15 @@ class Transport (threading.Thread):
server_chanid = m.get_int()
server_window_size = m.get_int()
server_max_packet_size = m.get_int()
- if not self.channels.has_key(chanid):
+ chan = self._channels.get(chanid)
+ if chan is None:
self._log(WARNING, 'Success for unrequested channel! [??]')
return
self.lock.acquire()
try:
- chan = self.channels[chanid]
chan._set_remote_channel(server_chanid, server_window_size, server_max_packet_size)
self._log(INFO, 'Secsh channel %d opened.' % chanid)
- if self.channel_events.has_key(chanid):
+ if chanid in self.channel_events:
self.channel_events[chanid].set()
del self.channel_events[chanid]
finally:
@@ -1712,16 +1928,14 @@ class Transport (threading.Thread):
reason = m.get_int()
reason_str = m.get_string()
lang = m.get_string()
- if CONNECTION_FAILED_CODE.has_key(reason):
- reason_text = CONNECTION_FAILED_CODE[reason]
- else:
- reason_text = '(unknown code)'
+ reason_text = CONNECTION_FAILED_CODE.get(reason, '(unknown code)')
self._log(INFO, 'Secsh channel %d open FAILED: %s: %s' % (chanid, reason_str, reason_text))
+ self.lock.acquire()
try:
- self.lock.aquire()
- if self.channels.has_key(chanid):
- del self.channels[chanid]
- if self.channel_events.has_key(chanid):
+ self.saved_exception = ChannelException(reason, reason_text)
+ if chanid in self.channel_events:
+ self._channels.delete(chanid)
+ if chanid in self.channel_events:
self.channel_events[chanid].set()
del self.channel_events[chanid]
finally:
@@ -1734,21 +1948,47 @@ class Transport (threading.Thread):
initial_window_size = m.get_int()
max_packet_size = m.get_int()
reject = False
- if not self.server_mode:
+ if (kind == 'x11') and (self._x11_handler is not None):
+ origin_addr = m.get_string()
+ origin_port = m.get_int()
+ self._log(DEBUG, 'Incoming x11 connection from %s:%d' % (origin_addr, origin_port))
+ self.lock.acquire()
+ try:
+ my_chanid = self._next_channel()
+ finally:
+ self.lock.release()
+ elif (kind == 'forwarded-tcpip') and (self._tcp_handler is not None):
+ server_addr = m.get_string()
+ server_port = m.get_int()
+ origin_addr = m.get_string()
+ origin_port = m.get_int()
+ self._log(DEBUG, 'Incoming tcp forwarded connection from %s:%d' % (origin_addr, origin_port))
+ self.lock.acquire()
+ try:
+ my_chanid = self._next_channel()
+ finally:
+ self.lock.release()
+ elif not self.server_mode:
self._log(DEBUG, 'Rejecting "%s" channel request from server.' % kind)
reject = True
reason = OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
else:
self.lock.acquire()
try:
- my_chanid = self.channel_counter
- while self.channels.has_key(my_chanid):
- self.channel_counter = (self.channel_counter + 1) & 0xffffff
- my_chanid = self.channel_counter
- self.channel_counter = (self.channel_counter + 1) & 0xffffff
+ my_chanid = self._next_channel()
finally:
self.lock.release()
- reason = self.server_object.check_channel_request(kind, my_chanid)
+ if kind == 'direct-tcpip':
+ # handle direct-tcpip requests comming from the client
+ dest_addr = m.get_string()
+ dest_port = m.get_int()
+ 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),
+ (dest_addr, dest_port))
+ else:
+ reason = self.server_object.check_channel_request(kind, my_chanid)
if reason != OPEN_SUCCEEDED:
self._log(DEBUG, 'Rejecting "%s" channel request from client.' % kind)
reject = True
@@ -1761,10 +2001,11 @@ class Transport (threading.Thread):
msg.add_string('en')
self._send_message(msg)
return
+
chan = Channel(my_chanid)
+ self.lock.acquire()
try:
- self.lock.acquire()
- self.channels[my_chanid] = chan
+ self._channels.put(my_chanid, chan)
self.channels_seen[my_chanid] = True
chan._set_transport(self)
chan._set_window(self.window_size, self.max_packet_size)
@@ -1778,13 +2019,14 @@ class Transport (threading.Thread):
m.add_int(self.window_size)
m.add_int(self.max_packet_size)
self._send_message(m)
- self._log(INFO, 'Secsh channel %d opened.' % my_chanid)
- try:
- self.lock.acquire()
- self.server_accepts.append(chan)
- self.server_accept_cv.notify()
- finally:
- self.lock.release()
+ self._log(INFO, 'Secsh channel %d (%s) opened.', my_chanid, kind)
+ if kind == 'x11':
+ self._x11_handler(chan, (origin_addr, origin_port))
+ elif kind == 'forwarded-tcpip':
+ chan.origin_addr = (origin_addr, origin_port)
+ self._tcp_handler(chan, (origin_addr, origin_port), (server_addr, server_port))
+ else:
+ self._queue_incoming_channel(chan)
def _parse_debug(self, m):
always_display = m.get_boolean()
@@ -1795,7 +2037,7 @@ class Transport (threading.Thread):
def _get_subsystem_handler(self, name):
try:
self.lock.acquire()
- if not self.subsystem_table.has_key(name):
+ if name not in self.subsystem_table:
return (None, [], {})
return self.subsystem_table[name]
finally:
diff --git a/paramiko/util.py b/paramiko/util.py
index abab825..8abdc0c 100644
--- a/paramiko/util.py
+++ b/paramiko/util.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2005 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
#
# This file is part of paramiko.
#
@@ -22,13 +22,14 @@ Useful functions used by the rest of paramiko.
from __future__ import generators
-import fnmatch
+from binascii import hexlify, unhexlify
import sys
import struct
import traceback
import threading
from paramiko.common import *
+from paramiko.config import SSHConfig
# Change by RogerB - python < 2.3 doesn't have enumerate so we implement it
@@ -115,12 +116,10 @@ def format_binary_line(data):
return '%-50s %s' % (left, right)
def hexify(s):
- "turn a string into a hex sequence"
- return ''.join(['%02X' % ord(c) for c in s])
+ return hexlify(s).upper()
def unhexify(s):
- "turn a hex sequence back into a string"
- return ''.join([chr(int(s[i:i+2], 16)) for i in range(0, len(s), 2)])
+ return unhexlify(s)
def safe_string(s):
out = ''
@@ -168,12 +167,12 @@ def generate_key_bytes(hashclass, salt, key, nbytes):
if len(salt) > 8:
salt = salt[:8]
while nbytes > 0:
- hash = hashclass.new()
+ hash_obj = hashclass.new()
if len(digest) > 0:
- hash.update(digest)
- hash.update(key)
- hash.update(salt)
- digest = hash.digest()
+ hash_obj.update(digest)
+ hash_obj.update(key)
+ hash_obj.update(salt)
+ digest = hash_obj.digest()
size = min(nbytes, len(digest))
keydata += digest[:size]
nbytes -= size
@@ -189,117 +188,29 @@ def load_host_keys(filename):
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
@type filename: str
@return: dict of host keys, indexed by hostname and then keytype
@rtype: dict(hostname, dict(keytype, L{PKey <paramiko.pkey.PKey>}))
"""
- import base64
- from rsakey import RSAKey
- from dsskey import DSSKey
-
- keys = {}
- f = file(filename, 'r')
- for line in f:
- line = line.strip()
- if (len(line) == 0) or (line[0] == '#'):
- continue
- keylist = line.split(' ')
- if len(keylist) != 3:
- continue
- hostlist, keytype, key = keylist
- hosts = hostlist.split(',')
- for host in hosts:
- if not keys.has_key(host):
- keys[host] = {}
- if keytype == 'ssh-rsa':
- keys[host][keytype] = RSAKey(data=base64.decodestring(key))
- elif keytype == 'ssh-dss':
- keys[host][keytype] = DSSKey(data=base64.decodestring(key))
- f.close()
- return keys
+ from paramiko.hostkeys import HostKeys
+ return HostKeys(filename)
def parse_ssh_config(file_obj):
"""
- Parse a config file of the format used by OpenSSH, and return an object
- that can be used to make queries to L{lookup_ssh_host_config}. The
- format is described in OpenSSH's C{ssh_config} man page. This method 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.
-
- The return value is currently a list of dictionaries, each containing
- host-specific configuration, but this is considered an implementation
- detail and may be subject to change in later versions.
-
- @param file_obj: a file-like object to read the config file from
- @type file_obj: file
- @return: opaque configuration object
- @rtype: object
+ Provided only as a backward-compatible wrapper around L{SSHConfig}.
"""
- ret = []
- config = { 'host': '*' }
- ret.append(config)
-
- for line in file_obj:
- line = line.rstrip('\n').lstrip()
- if (line == '') or (line[0] == '#'):
- continue
- if '=' in line:
- key, value = line.split('=', 1)
- key = key.strip().lower()
- else:
- # find first whitespace, and split there
- i = 0
- while (i < len(line)) and not line[i].isspace():
- i += 1
- if i == len(line):
- raise Exception('Unparsable line: %r' % line)
- key = line[:i].lower()
- value = line[i:].lstrip()
-
- if key == 'host':
- # do we have a pre-existing host config to append to?
- matches = [c for c in ret if c['host'] == value]
- if len(matches) > 0:
- config = matches[0]
- else:
- config = { 'host': value }
- ret.append(config)
- else:
- config[key] = value
-
- return ret
+ config = SSHConfig()
+ config.parse(file_obj)
+ return config
def lookup_ssh_host_config(hostname, config):
"""
- Return a dict of config options for a given hostname. The C{config} object
- must come from L{parse_ssh_config}.
-
- 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 *"} 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
- values.
-
- @param hostname: the hostname to lookup
- @type hostname: str
- @param config: the config object to search
- @type config: object
+ Provided only as a backward-compatible wrapper around L{SSHConfig}.
"""
- matches = [x for x in config if fnmatch.fnmatch(hostname, x['host'])]
- # sort in order of shortest match (usually '*') to longest
- matches.sort(key=lambda x: len(x['host']))
- ret = {}
- for m in matches:
- ret.update(m)
- del ret['host']
- return ret
+ return config.lookup(hostname)
def mod_inverse(x, m):
# it's crazy how small python can make this function.
@@ -355,3 +266,5 @@ def get_logger(name):
l = logging.getLogger(name)
l.addFilter(_pfilter)
return l
+
+
diff --git a/paramiko/win_pageant.py b/paramiko/win_pageant.py
new file mode 100644
index 0000000..787032b
--- /dev/null
+++ b/paramiko/win_pageant.py
@@ -0,0 +1,148 @@
+# Copyright (C) 2005 John Arbash-Meinel <john@arbash-meinel.com>
+# Modified up by: Todd Whiteman <ToddW@ActiveState.com>
+#
+# This file is part of paramiko.
+#
+# Paramiko is free software; you can redistribute it and/or modify it under the
+# terms of the GNU Lesser General Public License as published by the Free
+# Software Foundation; either version 2.1 of the License, or (at your option)
+# any later version.
+#
+# Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+# A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+# details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with Paramiko; if not, write to the Free Software Foundation, Inc.,
+# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+
+"""
+Functions for communicating with Pageant, the basic windows ssh agent program.
+"""
+
+import os
+import struct
+import tempfile
+import mmap
+import array
+
+# if you're on windows, you should have one of these, i guess?
+# ctypes is part of standard library since Python 2.5
+_has_win32all = False
+_has_ctypes = False
+try:
+ # win32gui is preferred over win32ui to avoid MFC dependencies
+ import win32gui
+ _has_win32all = True
+except ImportError:
+ try:
+ import ctypes
+ _has_ctypes = True
+ except ImportError:
+ pass
+
+
+_AGENT_COPYDATA_ID = 0x804e50ba
+_AGENT_MAX_MSGLEN = 8192
+# Note: The WM_COPYDATA value is pulled from win32con, as a workaround
+# so we do not have to import this huge library just for this one variable.
+win32con_WM_COPYDATA = 74
+
+
+def _get_pageant_window_object():
+ if _has_win32all:
+ try:
+ hwnd = win32gui.FindWindow('Pageant', 'Pageant')
+ return hwnd
+ except win32gui.error:
+ pass
+ elif _has_ctypes:
+ # Return 0 if there is no Pageant window.
+ return ctypes.windll.user32.FindWindowA('Pageant', 'Pageant')
+ return None
+
+
+def can_talk_to_agent():
+ """
+ Check to see if there is a "Pageant" agent we can talk to.
+
+ This checks both if we have the required libraries (win32all or ctypes)
+ and if there is a Pageant currently running.
+ """
+ if (_has_win32all or _has_ctypes) and _get_pageant_window_object():
+ return True
+ return False
+
+
+def _query_pageant(msg):
+ hwnd = _get_pageant_window_object()
+ if not hwnd:
+ # Raise a failure to connect exception, pageant isn't running anymore!
+ return None
+
+ # Write our pageant request string into the file (pageant will read this to determine what to do)
+ filename = tempfile.mktemp('.pag')
+ map_filename = os.path.basename(filename)
+
+ f = open(filename, 'w+b')
+ f.write(msg )
+ # Ensure the rest of the file is empty, otherwise pageant will read this
+ f.write('\0' * (_AGENT_MAX_MSGLEN - len(msg)))
+ # Create the shared file map that pageant will use to read from
+ pymap = mmap.mmap(f.fileno(), _AGENT_MAX_MSGLEN, tagname=map_filename, access=mmap.ACCESS_WRITE)
+ try:
+ # Create an array buffer containing the mapped filename
+ char_buffer = array.array("c", map_filename + '\0')
+ char_buffer_address, char_buffer_size = char_buffer.buffer_info()
+ # Create a string to use for the SendMessage function call
+ cds = struct.pack("LLP", _AGENT_COPYDATA_ID, char_buffer_size, char_buffer_address)
+
+ if _has_win32all:
+ # win32gui.SendMessage should also allow the same pattern as
+ # ctypes, but let's keep it like this for now...
+ response = win32gui.SendMessage(hwnd, win32con_WM_COPYDATA, len(cds), cds)
+ elif _has_ctypes:
+ _buf = array.array('B', cds)
+ _addr, _size = _buf.buffer_info()
+ response = ctypes.windll.user32.SendMessageA(hwnd, win32con_WM_COPYDATA, _size, _addr)
+ else:
+ response = 0
+
+ if response > 0:
+ datalen = pymap.read(4)
+ retlen = struct.unpack('>I', datalen)[0]
+ return datalen + pymap.read(retlen)
+ return None
+ finally:
+ pymap.close()
+ f.close()
+ # Remove the file, it was temporary only
+ os.unlink(filename)
+
+
+class PageantConnection (object):
+ """
+ Mock "connection" to an agent which roughly approximates the behavior of
+ a unix local-domain socket (as used by Agent). Requests are sent to the
+ pageant daemon via special Windows magick, and responses are buffered back
+ for subsequent reads.
+ """
+
+ def __init__(self):
+ self._response = None
+
+ def send(self, data):
+ self._response = _query_pageant(data)
+
+ def recv(self, n):
+ if self._response is None:
+ return ''
+ ret = self._response[:n]
+ self._response = self._response[n:]
+ if self._response == '':
+ self._response = None
+ return ret
+
+ def close(self):
+ pass
diff --git a/setup.cfg b/setup.cfg
new file mode 100644
index 0000000..861a9f5
--- /dev/null
+++ b/setup.cfg
@@ -0,0 +1,5 @@
+[egg_info]
+tag_build =
+tag_date = 0
+tag_svn_revision = 0
+
diff --git a/setup.py b/setup.py
index ce7d047..2041fea 100644
--- a/setup.py
+++ b/setup.py
@@ -1,6 +1,4 @@
-from distutils.core import setup
-
-# Copyright (C) 2003-2005 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2008 Robey Pointer <robey@lag.net>
#
# This file is part of paramiko.
#
@@ -26,17 +24,37 @@ connections between python scripts. All major ciphers and hash methods
are supported. SFTP client and server mode are both supported too.
Required packages:
- pyCrypt
+ pyCrypto
'''
+# if someday we want to *require* setuptools, uncomment this:
+# (it will cause setuptools to be automatically downloaded)
+#import ez_setup
+#ez_setup.use_setuptools()
+
+import sys
+try:
+ from setuptools import setup
+ kw = {
+ 'install_requires': 'pycrypto >= 1.9',
+ }
+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.5.2",
+ version = "1.7.4",
description = "SSH2 protocol library",
author = "Robey Pointer",
author_email = "robey@lag.net",
url = "http://www.lag.net/paramiko/",
packages = [ 'paramiko' ],
- download_url = 'http://www.lag.net/paramiko/download/paramiko-1.5.2.zip',
+ download_url = 'http://www.lag.net/paramiko/download/paramiko-1.7.4.zip',
license = 'LGPL',
platforms = 'Posix; MacOS X; Windows',
classifiers = [ 'Development Status :: 5 - Production/Stable',
@@ -46,4 +64,5 @@ setup(name = "paramiko",
'Topic :: Internet',
'Topic :: Security :: Cryptography' ],
long_description = longdesc,
+ **kw
)
diff --git a/setup_helper.py b/setup_helper.py
new file mode 100644
index 0000000..778d90a
--- /dev/null
+++ b/setup_helper.py
@@ -0,0 +1,102 @@
+# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
+#
+# This file is part of paramiko.
+#
+# Paramiko is free software; you can redistribute it and/or modify it under the
+# terms of the GNU Lesser General Public License as published by the Free
+# Software Foundation; either version 2.1 of the License, or (at your option)
+# any later version.
+#
+# Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+# A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+# details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with Paramiko; if not, write to the Free Software Foundation, Inc.,
+# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+
+# Note: Despite the copyright notice, this was submitted by John
+# Arbash Meinel. Thanks John!
+
+
+"""A small set of helper functions for dealing with setup issues"""
+
+import os
+import tarfile
+
+from distutils import log
+import distutils.archive_util
+from distutils.dir_util import mkpath
+from distutils.spawn import spawn
+
+
+def make_tarball(base_name, base_dir, compress='gzip',
+ verbose=False, dry_run=False):
+ """Create a tar file from all the files under 'base_dir'.
+ This file may be compressed.
+
+ :param compress: Compression algorithms. Supported algorithms are:
+ 'gzip': (the default)
+ 'compress'
+ 'bzip2'
+ None
+ For 'gzip' and 'bzip2' the internal tarfile module will be used.
+ For 'compress' the .tar will be created using tarfile, and then
+ we will spawn 'compress' afterwards.
+ The output tar file will be named 'base_name' + ".tar",
+ possibly plus the appropriate compression extension (".gz",
+ ".bz2" or ".Z"). Return the output filename.
+ """
+ # XXX GNU tar 1.13 has a nifty option to add a prefix directory.
+ # It's pretty new, though, so we certainly can't require it --
+ # but it would be nice to take advantage of it to skip the
+ # "create a tree of hardlinks" step! (Would also be nice to
+ # detect GNU tar to use its 'z' option and save a step.)
+
+ compress_ext = { 'gzip': ".gz",
+ 'bzip2': '.bz2',
+ 'compress': ".Z" }
+
+ # flags for compression program, each element of list will be an argument
+ tarfile_compress_flag = {'gzip':'gz', 'bzip2':'bz2'}
+ compress_flags = {'compress': ["-f"]}
+
+ if compress is not None and compress not in compress_ext.keys():
+ raise ValueError("bad value for 'compress': must be None, 'gzip',"
+ "'bzip2' or 'compress'")
+
+ archive_name = base_name + ".tar"
+ if compress and compress in tarfile_compress_flag:
+ archive_name += compress_ext[compress]
+
+ mode = 'w:' + tarfile_compress_flag.get(compress, '')
+
+ mkpath(os.path.dirname(archive_name), dry_run=dry_run)
+ log.info('Creating tar file %s with mode %s' % (archive_name, mode))
+
+ if not dry_run:
+ tar = tarfile.open(archive_name, mode=mode)
+ # This recursively adds everything underneath base_dir
+ tar.add(base_dir)
+ tar.close()
+
+ if compress and compress not in tarfile_compress_flag:
+ spawn([compress] + compress_flags[compress] + [archive_name],
+ dry_run=dry_run)
+ return archive_name + compress_ext[compress]
+ else:
+ return archive_name
+
+
+_custom_formats = {
+ 'gztar': (make_tarball, [('compress', 'gzip')], "gzip'ed tar-file"),
+ 'bztar': (make_tarball, [('compress', 'bzip2')], "bzip2'ed tar-file"),
+ 'ztar': (make_tarball, [('compress', 'compress')], "compressed tar file"),
+ 'tar': (make_tarball, [('compress', None)], "uncompressed tar file"),
+}
+
+# Hack in and insert ourselves into the distutils code base
+def install_custom_make_tarball():
+ distutils.archive_util.ARCHIVE_FORMATS.update(_custom_formats)
+
diff --git a/test.py b/test.py
index 17b6294..b7f6c8a 100644..100755
--- a/test.py
+++ b/test.py
@@ -1,6 +1,6 @@
-#!/usr/bin/python
+#!/usr/bin/env python
-# Copyright (C) 2003-2005 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
#
# This file is part of paramiko.
#
@@ -22,82 +22,127 @@
do the unit tests!
"""
-import sys, os, unittest
+import os
+import re
+import sys
+import unittest
from optparse import OptionParser
import paramiko
-sys.path.append('tests/')
+sys.path.append('tests')
from test_message import MessageTest
from test_file import BufferedFileTest
+from test_buffered_pipe import BufferedPipeTest
from test_util import UtilTest
+from test_hostkeys import HostKeysTest
from test_pkey import KeyTest
from test_kex import KexTest
from test_packetizer import PacketizerTest
+from test_auth import AuthTest
from test_transport import TransportTest
from test_sftp import SFTPTest
+from test_sftp_big import BigSFTPTest
+from test_client import SSHClientTest
default_host = 'localhost'
default_user = os.environ.get('USER', 'nobody')
default_keyfile = os.path.join(os.environ.get('HOME', '/'), '.ssh/id_rsa')
default_passwd = None
-parser = OptionParser('usage: %prog [options]')
-parser.add_option('--verbose', action='store_true', dest='verbose', default=False,
- help='verbose display (one line per test)')
-parser.add_option('--no-pkey', action='store_false', dest='use_pkey', default=True,
- help='skip RSA/DSS private key tests (which can take a while)')
-parser.add_option('--no-transport', action='store_false', dest='use_transport', default=True,
- help='skip transport tests (which can take a while)')
-parser.add_option('--no-sftp', action='store_false', dest='use_sftp', default=True,
- help='skip SFTP client/server tests, which can be slow')
-parser.add_option('--no-big-file', action='store_false', dest='use_big_file', default=True,
- help='skip big file SFTP tests, which are slow as molasses')
-parser.add_option('-R', action='store_false', dest='use_loopback_sftp', default=True,
- help='perform SFTP tests against a remote server (by default, SFTP tests ' +
- 'are done through a loopback socket)')
-parser.add_option('-H', '--sftp-host', dest='hostname', type='string', default=default_host,
- metavar='<host>',
- help='[with -R] host for remote sftp tests (default: %s)' % default_host)
-parser.add_option('-U', '--sftp-user', dest='username', type='string', default=default_user,
- metavar='<username>',
- help='[with -R] username for remote sftp tests (default: %s)' % default_user)
-parser.add_option('-K', '--sftp-key', dest='keyfile', type='string', default=default_keyfile,
- metavar='<keyfile>',
- help='[with -R] location of private key for remote sftp tests (default: %s)' %
- default_keyfile)
-parser.add_option('-P', '--sftp-passwd', dest='password', type='string', default=default_passwd,
- metavar='<password>',
- help='[with -R] (optional) password to unlock the private key for remote sftp tests')
-options, args = parser.parse_args()
-if len(args) > 0:
- parser.error('unknown argument(s)')
+def iter_suite_tests(suite):
+ """Return all tests in a suite, recursing through nested suites"""
+ for item in suite._tests:
+ if isinstance(item, unittest.TestCase):
+ yield item
+ elif isinstance(item, unittest.TestSuite):
+ for r in iter_suite_tests(item):
+ yield r
+ else:
+ raise Exception('unknown object %r inside test suite %r'
+ % (item, suite))
-# setup logging
-paramiko.util.log_to_file('test.log')
-if options.use_sftp:
- if options.use_loopback_sftp:
- SFTPTest.init_loopback()
- else:
- SFTPTest.init(options.hostname, options.username, options.keyfile, options.password)
- if not options.use_big_file:
- SFTPTest.set_big_file_test(False)
+def filter_suite_by_re(suite, pattern):
+ result = unittest.TestSuite()
+ filter_re = re.compile(pattern)
+ for test in iter_suite_tests(suite):
+ if filter_re.search(test.id()):
+ result.addTest(test)
+ return result
-suite = unittest.TestSuite()
-suite.addTest(unittest.makeSuite(MessageTest))
-suite.addTest(unittest.makeSuite(BufferedFileTest))
-suite.addTest(unittest.makeSuite(UtilTest))
-if options.use_pkey:
- suite.addTest(unittest.makeSuite(KeyTest))
-suite.addTest(unittest.makeSuite(KexTest))
-suite.addTest(unittest.makeSuite(PacketizerTest))
-if options.use_transport:
- suite.addTest(unittest.makeSuite(TransportTest))
-if options.use_sftp:
- suite.addTest(unittest.makeSuite(SFTPTest))
-verbosity = 1
-if options.verbose:
- verbosity = 2
-unittest.TextTestRunner(verbosity=verbosity).run(suite)
+
+def main():
+ parser = OptionParser('usage: %prog [options]')
+ parser.add_option('--verbose', action='store_true', dest='verbose', default=False,
+ help='verbose display (one line per test)')
+ parser.add_option('--no-pkey', action='store_false', dest='use_pkey', default=True,
+ help='skip RSA/DSS private key tests (which can take a while)')
+ parser.add_option('--no-transport', action='store_false', dest='use_transport', default=True,
+ help='skip transport tests (which can take a while)')
+ parser.add_option('--no-sftp', action='store_false', dest='use_sftp', default=True,
+ help='skip SFTP client/server tests, which can be slow')
+ parser.add_option('--no-big-file', action='store_false', dest='use_big_file', default=True,
+ help='skip big file SFTP tests, which are slow as molasses')
+ parser.add_option('-R', action='store_false', dest='use_loopback_sftp', default=True,
+ help='perform SFTP tests against a remote server (by default, SFTP tests ' +
+ 'are done through a loopback socket)')
+ parser.add_option('-H', '--sftp-host', dest='hostname', type='string', default=default_host,
+ metavar='<host>',
+ help='[with -R] host for remote sftp tests (default: %s)' % default_host)
+ parser.add_option('-U', '--sftp-user', dest='username', type='string', default=default_user,
+ metavar='<username>',
+ help='[with -R] username for remote sftp tests (default: %s)' % default_user)
+ parser.add_option('-K', '--sftp-key', dest='keyfile', type='string', default=default_keyfile,
+ metavar='<keyfile>',
+ help='[with -R] location of private key for remote sftp tests (default: %s)' %
+ default_keyfile)
+ parser.add_option('-P', '--sftp-passwd', dest='password', type='string', default=default_passwd,
+ metavar='<password>',
+ help='[with -R] (optional) password to unlock the private key for remote sftp tests')
+
+ options, args = parser.parse_args()
+
+ # setup logging
+ paramiko.util.log_to_file('test.log')
+
+ if options.use_sftp:
+ if options.use_loopback_sftp:
+ SFTPTest.init_loopback()
+ else:
+ SFTPTest.init(options.hostname, options.username, options.keyfile, options.password)
+ if not options.use_big_file:
+ SFTPTest.set_big_file_test(False)
+
+ suite = unittest.TestSuite()
+ suite.addTest(unittest.makeSuite(MessageTest))
+ suite.addTest(unittest.makeSuite(BufferedFileTest))
+ suite.addTest(unittest.makeSuite(BufferedPipeTest))
+ suite.addTest(unittest.makeSuite(UtilTest))
+ suite.addTest(unittest.makeSuite(HostKeysTest))
+ if options.use_pkey:
+ suite.addTest(unittest.makeSuite(KeyTest))
+ suite.addTest(unittest.makeSuite(KexTest))
+ suite.addTest(unittest.makeSuite(PacketizerTest))
+ if options.use_transport:
+ suite.addTest(unittest.makeSuite(AuthTest))
+ suite.addTest(unittest.makeSuite(TransportTest))
+ suite.addTest(unittest.makeSuite(SSHClientTest))
+ if options.use_sftp:
+ suite.addTest(unittest.makeSuite(SFTPTest))
+ if options.use_big_file:
+ suite.addTest(unittest.makeSuite(BigSFTPTest))
+ verbosity = 1
+ if options.verbose:
+ verbosity = 2
+
+ runner = unittest.TextTestRunner(verbosity=verbosity)
+ if len(args) > 0:
+ filter = '|'.join(args)
+ suite = filter_suite_by_re(suite, filter)
+ runner.run(suite)
+
+
+if __name__ == '__main__':
+ main()
diff --git a/tests/loop.py b/tests/loop.py
index ad5f7ca..fb6ffae 100644
--- a/tests/loop.py
+++ b/tests/loop.py
@@ -1,6 +1,4 @@
-#!/usr/bin/python
-
-# Copyright (C) 2003-2005 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
#
# This file is part of paramiko.
#
diff --git a/tests/stub_sftp.py b/tests/stub_sftp.py
index 4b8b9c3..ac292ff 100644
--- a/tests/stub_sftp.py
+++ b/tests/stub_sftp.py
@@ -1,6 +1,4 @@
-#!/usr/bin/python
-
-# Copyright (C) 2003-2005 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
#
# This file is part of paramiko.
#
@@ -48,6 +46,7 @@ class StubSFTPHandle (SFTPHandle):
# use the stored filename
try:
SFTPServer.set_file_attr(self.filename, attr)
+ return SFTP_OK
except OSError, e:
return SFTPServer.convert_errno(e.errno)
@@ -90,23 +89,38 @@ class StubSFTPServer (SFTPServerInterface):
def open(self, path, flags, attr):
path = self._realpath(path)
try:
- fd = os.open(path, flags)
+ binary_flag = getattr(os, 'O_BINARY', 0)
+ flags |= binary_flag
+ mode = getattr(attr, 'st_mode', None)
+ if mode is not None:
+ fd = os.open(path, flags, mode)
+ else:
+ # os.open() defaults to 0777 which is
+ # an odd default mode for files
+ fd = os.open(path, flags, 0666)
except OSError, e:
return SFTPServer.convert_errno(e.errno)
if (flags & os.O_CREAT) and (attr is not None):
+ attr._flags &= ~attr.FLAG_PERMISSIONS
SFTPServer.set_file_attr(path, attr)
if flags & os.O_WRONLY:
- fstr = 'w'
+ if flags & os.O_APPEND:
+ fstr = 'ab'
+ else:
+ fstr = 'wb'
elif flags & os.O_RDWR:
- fstr = 'r+'
+ if flags & os.O_APPEND:
+ fstr = 'a+b'
+ else:
+ fstr = 'r+b'
else:
# O_RDONLY (== 0)
- fstr = 'r'
+ fstr = 'rb'
try:
f = os.fdopen(fd, fstr)
except OSError, e:
return SFTPServer.convert_errno(e.errno)
- fobj = StubSFTPHandle()
+ fobj = StubSFTPHandle(flags)
fobj.filename = path
fobj.readfile = f
fobj.writefile = f
@@ -171,7 +185,7 @@ class StubSFTPServer (SFTPServerInterface):
target_path = '<error>'
try:
os.symlink(target_path, path)
- except:
+ except OSError, e:
return SFTPServer.convert_errno(e.errno)
return SFTP_OK
diff --git a/tests/test_auth.py b/tests/test_auth.py
new file mode 100644
index 0000000..fadd8ca
--- /dev/null
+++ b/tests/test_auth.py
@@ -0,0 +1,231 @@
+# Copyright (C) 2008 Robey Pointer <robey@lag.net>
+#
+# This file is part of paramiko.
+#
+# Paramiko is free software; you can redistribute it and/or modify it under the
+# terms of the GNU Lesser General Public License as published by the Free
+# Software Foundation; either version 2.1 of the License, or (at your option)
+# any later version.
+#
+# Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+# A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+# details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with Paramiko; if not, write to the Free Software Foundation, Inc.,
+# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+
+"""
+Some unit tests for authenticating over a Transport.
+"""
+
+import sys
+import threading
+import unittest
+
+from paramiko import Transport, ServerInterface, RSAKey, DSSKey, \
+ SSHException, BadAuthenticationType, InteractiveQuery, ChannelException, \
+ AuthenticationException
+from paramiko import AUTH_FAILED, AUTH_PARTIALLY_SUCCESSFUL, AUTH_SUCCESSFUL
+from paramiko import OPEN_SUCCEEDED, OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+from loop import LoopSocket
+
+
+class NullServer (ServerInterface):
+ paranoid_did_password = False
+ paranoid_did_public_key = False
+ paranoid_key = DSSKey.from_private_key_file('tests/test_dss.key')
+
+ def get_allowed_auths(self, username):
+ if username == 'slowdive':
+ return 'publickey,password'
+ if username == 'paranoid':
+ if not self.paranoid_did_password and not self.paranoid_did_public_key:
+ return 'publickey,password'
+ elif self.paranoid_did_password:
+ return 'publickey'
+ else:
+ return 'password'
+ if username == 'commie':
+ return 'keyboard-interactive'
+ if username == 'utf8':
+ return 'password'
+ if username == 'non-utf8':
+ return 'password'
+ return 'publickey'
+
+ def check_auth_password(self, username, password):
+ if (username == 'slowdive') and (password == 'pygmalion'):
+ return AUTH_SUCCESSFUL
+ if (username == 'paranoid') and (password == 'paranoid'):
+ # 2-part auth (even openssh doesn't support this)
+ self.paranoid_did_password = True
+ if self.paranoid_did_public_key:
+ return AUTH_SUCCESSFUL
+ return AUTH_PARTIALLY_SUCCESSFUL
+ if (username == 'utf8') and (password == u'\u2022'):
+ return AUTH_SUCCESSFUL
+ if (username == 'non-utf8') and (password == '\xff'):
+ return AUTH_SUCCESSFUL
+ if username == 'bad-server':
+ raise Exception("Ack!")
+ return AUTH_FAILED
+
+ def check_auth_publickey(self, username, key):
+ if (username == 'paranoid') and (key == self.paranoid_key):
+ # 2-part auth
+ self.paranoid_did_public_key = True
+ if self.paranoid_did_password:
+ return AUTH_SUCCESSFUL
+ return AUTH_PARTIALLY_SUCCESSFUL
+ return AUTH_FAILED
+
+ def check_auth_interactive(self, username, submethods):
+ if username == 'commie':
+ self.username = username
+ return InteractiveQuery('password', 'Please enter a password.', ('Password', False))
+ return AUTH_FAILED
+
+ def check_auth_interactive_response(self, responses):
+ if self.username == 'commie':
+ if (len(responses) == 1) and (responses[0] == 'cat'):
+ return AUTH_SUCCESSFUL
+ return AUTH_FAILED
+
+
+class AuthTest (unittest.TestCase):
+
+ def setUp(self):
+ self.socks = LoopSocket()
+ self.sockc = LoopSocket()
+ self.sockc.link(self.socks)
+ self.tc = Transport(self.sockc)
+ self.ts = Transport(self.socks)
+
+ def tearDown(self):
+ self.tc.close()
+ self.ts.close()
+ self.socks.close()
+ self.sockc.close()
+
+ def start_server(self):
+ host_key = RSAKey.from_private_key_file('tests/test_rsa.key')
+ self.public_host_key = RSAKey(data=str(host_key))
+ self.ts.add_server_key(host_key)
+ self.event = threading.Event()
+ self.server = NullServer()
+ self.assert_(not self.event.isSet())
+ self.ts.start_server(self.event, self.server)
+
+ def verify_finished(self):
+ self.event.wait(1.0)
+ self.assert_(self.event.isSet())
+ self.assert_(self.ts.is_active())
+
+ def test_1_bad_auth_type(self):
+ """
+ verify that we get the right exception when an unsupported auth
+ type is requested.
+ """
+ self.start_server()
+ try:
+ self.tc.connect(hostkey=self.public_host_key,
+ username='unknown', password='error')
+ self.assert_(False)
+ except:
+ etype, evalue, etb = sys.exc_info()
+ self.assertEquals(BadAuthenticationType, etype)
+ self.assertEquals(['publickey'], evalue.allowed_types)
+
+ def test_2_bad_password(self):
+ """
+ verify that a bad password gets the right exception, and that a retry
+ with the right password works.
+ """
+ self.start_server()
+ self.tc.connect(hostkey=self.public_host_key)
+ try:
+ self.tc.auth_password(username='slowdive', password='error')
+ self.assert_(False)
+ except:
+ etype, evalue, etb = sys.exc_info()
+ self.assert_(issubclass(etype, AuthenticationException))
+ self.tc.auth_password(username='slowdive', password='pygmalion')
+ self.verify_finished()
+
+ def test_3_multipart_auth(self):
+ """
+ verify that multipart auth works.
+ """
+ self.start_server()
+ self.tc.connect(hostkey=self.public_host_key)
+ remain = self.tc.auth_password(username='paranoid', password='paranoid')
+ self.assertEquals(['publickey'], remain)
+ key = DSSKey.from_private_key_file('tests/test_dss.key')
+ remain = self.tc.auth_publickey(username='paranoid', key=key)
+ self.assertEquals([], remain)
+ self.verify_finished()
+
+ def test_4_interactive_auth(self):
+ """
+ verify keyboard-interactive auth works.
+ """
+ self.start_server()
+ self.tc.connect(hostkey=self.public_host_key)
+
+ def handler(title, instructions, prompts):
+ self.got_title = title
+ self.got_instructions = instructions
+ self.got_prompts = prompts
+ return ['cat']
+ remain = self.tc.auth_interactive('commie', handler)
+ self.assertEquals(self.got_title, 'password')
+ self.assertEquals(self.got_prompts, [('Password', False)])
+ self.assertEquals([], remain)
+ self.verify_finished()
+
+ def test_5_interactive_auth_fallback(self):
+ """
+ verify that a password auth attempt will fallback to "interactive"
+ if password auth isn't supported but interactive is.
+ """
+ self.start_server()
+ self.tc.connect(hostkey=self.public_host_key)
+ remain = self.tc.auth_password('commie', 'cat')
+ self.assertEquals([], remain)
+ self.verify_finished()
+
+ def test_6_auth_utf8(self):
+ """
+ verify that utf-8 encoding happens in authentication.
+ """
+ self.start_server()
+ self.tc.connect(hostkey=self.public_host_key)
+ remain = self.tc.auth_password('utf8', u'\u2022')
+ self.assertEquals([], remain)
+ self.verify_finished()
+
+ def test_7_auth_non_utf8(self):
+ """
+ verify that non-utf-8 encoded passwords can be used for broken
+ servers.
+ """
+ self.start_server()
+ self.tc.connect(hostkey=self.public_host_key)
+ remain = self.tc.auth_password('non-utf8', '\xff')
+ self.assertEquals([], remain)
+ self.verify_finished()
+
+ def test_8_auth_gets_disconnected(self):
+ """
+ verify that we catch a server disconnecting during auth, and report
+ it as an auth failure.
+ """
+ self.start_server()
+ self.tc.connect(hostkey=self.public_host_key)
+ try:
+ remain = self.tc.auth_password('bad-server', 'hello')
+ except:
+ etype, evalue, etb = sys.exc_info()
+ self.assert_(issubclass(etype, AuthenticationException))
diff --git a/tests/test_buffered_pipe.py b/tests/test_buffered_pipe.py
new file mode 100644
index 0000000..f96edb8
--- /dev/null
+++ b/tests/test_buffered_pipe.py
@@ -0,0 +1,95 @@
+# Copyright (C) 2006-2007 Robey Pointer <robey@lag.net>
+#
+# This file is part of paramiko.
+#
+# Paramiko is free software; you can redistribute it and/or modify it under the
+# terms of the GNU Lesser General Public License as published by the Free
+# Software Foundation; either version 2.1 of the License, or (at your option)
+# any later version.
+#
+# Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+# A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+# details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with Paramiko; if not, write to the Free Software Foundation, Inc.,
+# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+
+"""
+Some unit tests for BufferedPipe.
+"""
+
+import threading
+import time
+import unittest
+from paramiko.buffered_pipe import BufferedPipe, PipeTimeout
+from paramiko import pipe
+
+
+def delay_thread(pipe):
+ pipe.feed('a')
+ time.sleep(0.5)
+ pipe.feed('b')
+ pipe.close()
+
+
+def close_thread(pipe):
+ time.sleep(0.2)
+ pipe.close()
+
+
+class BufferedPipeTest (unittest.TestCase):
+
+ assertTrue = unittest.TestCase.failUnless # for Python 2.3 and below
+ assertFalse = unittest.TestCase.failIf # for Python 2.3 and below
+
+ def test_1_buffered_pipe(self):
+ p = BufferedPipe()
+ self.assert_(not p.read_ready())
+ p.feed('hello.')
+ self.assert_(p.read_ready())
+ data = p.read(6)
+ self.assertEquals('hello.', data)
+
+ p.feed('plus/minus')
+ self.assertEquals('plu', p.read(3))
+ self.assertEquals('s/m', p.read(3))
+ self.assertEquals('inus', p.read(4))
+
+ p.close()
+ self.assert_(not p.read_ready())
+ self.assertEquals('', p.read(1))
+
+ def test_2_delay(self):
+ p = BufferedPipe()
+ self.assert_(not p.read_ready())
+ threading.Thread(target=delay_thread, args=(p,)).start()
+ self.assertEquals('a', p.read(1, 0.1))
+ try:
+ p.read(1, 0.1)
+ self.assert_(False)
+ except PipeTimeout:
+ pass
+ self.assertEquals('b', p.read(1, 1.0))
+ self.assertEquals('', p.read(1))
+
+ def test_3_close_while_reading(self):
+ p = BufferedPipe()
+ threading.Thread(target=close_thread, args=(p,)).start()
+ data = p.read(1, 1.0)
+ self.assertEquals('', data)
+
+ def test_4_or_pipe(self):
+ p = pipe.make_pipe()
+ p1, p2 = pipe.make_or_pipe(p)
+ self.assertFalse(p._set)
+ p1.set()
+ self.assertTrue(p._set)
+ p2.set()
+ self.assertTrue(p._set)
+ p1.clear()
+ self.assertTrue(p._set)
+ p2.clear()
+ self.assertFalse(p._set)
+
diff --git a/tests/test_client.py b/tests/test_client.py
new file mode 100644
index 0000000..59cd67c
--- /dev/null
+++ b/tests/test_client.py
@@ -0,0 +1,214 @@
+# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
+#
+# This file is part of paramiko.
+#
+# Paramiko is free software; you can redistribute it and/or modify it under the
+# terms of the GNU Lesser General Public License as published by the Free
+# Software Foundation; either version 2.1 of the License, or (at your option)
+# any later version.
+#
+# Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+# A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+# details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with Paramiko; if not, write to the Free Software Foundation, Inc.,
+# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+
+"""
+Some unit tests for SSHClient.
+"""
+
+import socket
+import threading
+import time
+import unittest
+import weakref
+from binascii import hexlify
+
+import paramiko
+
+
+class NullServer (paramiko.ServerInterface):
+
+ def get_allowed_auths(self, username):
+ if username == 'slowdive':
+ return 'publickey,password'
+ return 'publickey'
+
+ def check_auth_password(self, username, password):
+ if (username == 'slowdive') and (password == 'pygmalion'):
+ return paramiko.AUTH_SUCCESSFUL
+ return paramiko.AUTH_FAILED
+
+ def check_auth_publickey(self, username, key):
+ 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
+
+ def check_channel_exec_request(self, channel, command):
+ if command != 'yes':
+ return False
+ return True
+
+
+class SSHClientTest (unittest.TestCase):
+
+ def setUp(self):
+ self.sockl = socket.socket()
+ self.sockl.bind(('localhost', 0))
+ self.sockl.listen(1)
+ self.addr, self.port = self.sockl.getsockname()
+ self.event = threading.Event()
+ thread = threading.Thread(target=self._run)
+ thread.start()
+
+ def tearDown(self):
+ if hasattr(self, 'tc'):
+ self.tc.close()
+ self.ts.close()
+ self.socks.close()
+ self.sockl.close()
+
+ def _run(self):
+ self.socks, addr = self.sockl.accept()
+ self.ts = paramiko.Transport(self.socks)
+ host_key = paramiko.RSAKey.from_private_key_file('tests/test_rsa.key')
+ 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.connect(self.addr, self.port, username='slowdive', password='pygmalion')
+
+ self.event.wait(1.0)
+ self.assert_(self.event.isSet())
+ self.assert_(self.ts.is_active())
+ self.assertEquals('slowdive', self.ts.get_username())
+ self.assertEquals(True, self.ts.is_authenticated())
+
+ stdin, stdout, stderr = self.tc.exec_command('yes')
+ schan = self.ts.accept(1.0)
+
+ schan.send('Hello there.\n')
+ schan.send_stderr('This is on stderr.\n')
+ schan.close()
+
+ self.assertEquals('Hello there.\n', stdout.readline())
+ 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.connect(self.addr, self.port, username='slowdive', key_filename='tests/test_dss.key')
+
+ self.event.wait(1.0)
+ self.assert_(self.event.isSet())
+ self.assert_(self.ts.is_active())
+ self.assertEquals('slowdive', self.ts.get_username())
+ self.assertEquals(True, self.ts.is_authenticated())
+
+ stdin, stdout, stderr = self.tc.exec_command('yes')
+ schan = self.ts.accept(1.0)
+
+ schan.send('Hello there.\n')
+ schan.send_stderr('This is on stderr.\n')
+ schan.close()
+
+ self.assertEquals('Hello there.\n', stdout.readline())
+ 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.connect(self.addr, self.port, username='slowdive', key_filename=[ 'tests/test_rsa.key', 'tests/test_dss.key' ])
+
+ self.event.wait(1.0)
+ self.assert_(self.event.isSet())
+ self.assert_(self.ts.is_active())
+ self.assertEquals('slowdive', self.ts.get_username())
+ self.assertEquals(True, self.ts.is_authenticated())
+
+ def test_4_auto_add_policy(self):
+ """
+ verify that SSHClient's AutoAddPolicy works.
+ """
+ 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()))
+ self.tc.connect(self.addr, self.port, username='slowdive', password='pygmalion')
+
+ self.event.wait(1.0)
+ self.assert_(self.event.isSet())
+ self.assert_(self.ts.is_active())
+ 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'])
+
+ def test_5_cleanup(self):
+ """
+ verify that when an SSHClient is collected, its transport (and the
+ transport's packetizer) is closed.
+ """
+ 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()))
+ self.tc.connect(self.addr, self.port, username='slowdive', password='pygmalion')
+
+ 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
+ # hrm, sometimes p isn't cleared right away. why is that?
+ st = time.time()
+ 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 250821c..d66babf 100644..100755
--- a/tests/test_file.py
+++ b/tests/test_file.py
@@ -1,6 +1,4 @@
-#!/usr/bin/python
-
-# Copyright (C) 2003-2005 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
#
# This file is part of paramiko.
#
diff --git a/tests/test_hostkeys.py b/tests/test_hostkeys.py
new file mode 100644
index 0000000..28521ba
--- /dev/null
+++ b/tests/test_hostkeys.py
@@ -0,0 +1,117 @@
+# Copyright (C) 2006-2007 Robey Pointer <robey@lag.net>
+#
+# This file is part of paramiko.
+#
+# Paramiko is free software; you can redistribute it and/or modify it under the
+# terms of the GNU Lesser General Public License as published by the Free
+# Software Foundation; either version 2.1 of the License, or (at your option)
+# any later version.
+#
+# Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+# A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+# details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with Paramiko; if not, write to the Free Software Foundation, Inc.,
+# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+
+"""
+Some unit tests for HostKeys.
+"""
+
+import base64
+from binascii import hexlify
+import os
+import unittest
+import paramiko
+
+
+test_hosts_file = """\
+secure.example.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEA1PD6U2/TVxET6lkpKhOk5r\
+9q/kAYG6sP9f5zuUYP8i7FOFp/6ncCEbbtg/lB+A3iidyxoSWl+9jtoyyDOOVX4UIDV9G11Ml8om3\
+D+jrpI9cycZHqilK0HmxDeCuxbwyMuaCygU9gS2qoRvNLWZk70OpIKSSpBo0Wl3/XUmz9uhc=
+happy.example.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEA8bP1ZA7DCZDB9J0s50l31M\
+BGQ3GQ/Fc7SX6gkpXkwcZryoi4kNFhHu5LvHcZPdxXV1D+uTMfGS1eyd2Yz/DoNWXNAl8TI0cAsW\
+5ymME3bQ4J/k1IKxCtz/bAlAqFgKoc+EolMziDYqWIATtW0rYTJvzGAzTmMj80/QpsFH+Pc2M=
+"""
+
+keyblob = """\
+AAAAB3NzaC1yc2EAAAABIwAAAIEA8bP1ZA7DCZDB9J0s50l31MBGQ3GQ/Fc7SX6gkpXkwcZryoi4k\
+NFhHu5LvHcZPdxXV1D+uTMfGS1eyd2Yz/DoNWXNAl8TI0cAsW5ymME3bQ4J/k1IKxCtz/bAlAqFgK\
+oc+EolMziDYqWIATtW0rYTJvzGAzTmMj80/QpsFH+Pc2M="""
+
+keyblob_dss = """\
+AAAAB3NzaC1kc3MAAACBAOeBpgNnfRzr/twmAQRu2XwWAp3CFtrVnug6s6fgwj/oLjYbVtjAy6pl/\
+h0EKCWx2rf1IetyNsTxWrniA9I6HeDj65X1FyDkg6g8tvCnaNB8Xp/UUhuzHuGsMIipRxBxw9LF60\
+8EqZcj1E3ytktoW5B5OcjrkEoz3xG7C+rpIjYvAAAAFQDwz4UnmsGiSNu5iqjn3uTzwUpshwAAAIE\
+AkxfFeY8P2wZpDjX0MimZl5wkoFQDL25cPzGBuB4OnB8NoUk/yjAHIIpEShw8V+LzouMK5CTJQo5+\
+Ngw3qIch/WgRmMHy4kBq1SsXMjQCte1So6HBMvBPIW5SiMTmjCfZZiw4AYHK+B/JaOwaG9yRg2Ejg\
+4Ok10+XFDxlqZo8Y+wAAACARmR7CCPjodxASvRbIyzaVpZoJ/Z6x7dAumV+ysrV1BVYd0lYukmnjO\
+1kKBWApqpH1ve9XDQYN8zgxM4b16L21kpoWQnZtXrY3GZ4/it9kUgyB7+NwacIBlXa8cMDL7Q/69o\
+0d54U0X/NeX5QxuYR6OMJlrkQB7oiW/P/1mwjQgE="""
+
+
+class HostKeysTest (unittest.TestCase):
+
+ def setUp(self):
+ f = open('hostfile.temp', 'w')
+ f.write(test_hosts_file)
+ f.close()
+
+ def tearDown(self):
+ os.unlink('hostfile.temp')
+
+ def test_1_load(self):
+ hostdict = paramiko.HostKeys('hostfile.temp')
+ self.assertEquals(2, len(hostdict))
+ self.assertEquals(1, len(hostdict.values()[0]))
+ self.assertEquals(1, len(hostdict.values()[1]))
+ fp = hexlify(hostdict['secure.example.com']['ssh-rsa'].get_fingerprint()).upper()
+ self.assertEquals('E6684DB30E109B67B70FF1DC5C7F1363', fp)
+
+ def test_2_add(self):
+ hostdict = paramiko.HostKeys('hostfile.temp')
+ hh = '|1|BMsIC6cUIP2zBuXR3t2LRcJYjzM=|hpkJMysjTk/+zzUUzxQEa2ieq6c='
+ key = paramiko.RSAKey(data=base64.decodestring(keyblob))
+ hostdict.add(hh, 'ssh-rsa', key)
+ self.assertEquals(3, len(hostdict))
+ x = hostdict['foo.example.com']
+ fp = hexlify(x['ssh-rsa'].get_fingerprint()).upper()
+ self.assertEquals('7EC91BB336CB6D810B124B1353C32396', fp)
+ self.assert_(hostdict.check('foo.example.com', key))
+
+ def test_3_dict(self):
+ hostdict = paramiko.HostKeys('hostfile.temp')
+ self.assert_('secure.example.com' in hostdict)
+ self.assert_('not.example.com' not in hostdict)
+ self.assert_(hostdict.has_key('secure.example.com'))
+ self.assert_(not hostdict.has_key('not.example.com'))
+ x = hostdict.get('secure.example.com', None)
+ self.assert_(x is not None)
+ fp = hexlify(x['ssh-rsa'].get_fingerprint()).upper()
+ self.assertEquals('E6684DB30E109B67B70FF1DC5C7F1363', fp)
+ i = 0
+ for key in hostdict:
+ i += 1
+ self.assertEquals(2, i)
+
+ def test_4_dict_set(self):
+ hostdict = paramiko.HostKeys('hostfile.temp')
+ key = paramiko.RSAKey(data=base64.decodestring(keyblob))
+ key_dss = paramiko.DSSKey(data=base64.decodestring(keyblob_dss))
+ hostdict['secure.example.com'] = {
+ 'ssh-rsa': key,
+ 'ssh-dss': key_dss
+ }
+ hostdict['fake.example.com'] = {}
+ hostdict['fake.example.com']['ssh-rsa'] = key
+
+ self.assertEquals(3, len(hostdict))
+ self.assertEquals(2, len(hostdict.values()[0]))
+ self.assertEquals(1, len(hostdict.values()[1]))
+ self.assertEquals(1, len(hostdict.values()[2]))
+ fp = hexlify(hostdict['secure.example.com']['ssh-rsa'].get_fingerprint()).upper()
+ self.assertEquals('7EC91BB336CB6D810B124B1353C32396', fp)
+ fp = hexlify(hostdict['secure.example.com']['ssh-dss'].get_fingerprint()).upper()
+ self.assertEquals('4478F0B9A23CC5182009FF755BC1D26C', fp)
diff --git a/tests/test_kex.py b/tests/test_kex.py
index 2680853..f304275 100644
--- a/tests/test_kex.py
+++ b/tests/test_kex.py
@@ -1,6 +1,4 @@
-#!/usr/bin/python
-
-# Copyright (C) 2003-2005 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
#
# This file is part of paramiko.
#
@@ -22,6 +20,7 @@
Some unit tests for the key exchange protocols.
"""
+from binascii import hexlify
import unittest
import paramiko.util
from paramiko.kex_group1 import KexGroup1
@@ -35,18 +34,21 @@ class FakeRandpool (object):
def get_bytes(self, n):
return chr(0xcc) * n
+
class FakeKey (object):
def __str__(self):
return 'fake-key'
def sign_ssh_data(self, randpool, H):
return 'fake-sig'
+
class FakeModulusPack (object):
P = 0xFFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE65381FFFFFFFFFFFFFFFFL
G = 2
def get_modulus(self, min, ask, max):
return self.G, self.P
+
class FakeTransport (object):
randpool = FakeRandpool()
local_version = 'SSH-2.0-paramiko_1.0'
@@ -56,7 +58,7 @@ class FakeTransport (object):
def _send_message(self, m):
self._message = m
- def _expect_packet(self, t):
+ def _expect_packet(self, *t):
self._expect = t
def _set_K_H(self, K, H):
self._K = K
@@ -89,8 +91,8 @@ class KexTest (unittest.TestCase):
kex = KexGroup1(transport)
kex.start_kex()
x = '1E000000807E2DDB1743F3487D6545F04F1C8476092FB912B013626AB5BCEB764257D88BBA64243B9F348DF7B41B8C814A995E00299913503456983FFB9178D3CD79EB6D55522418A8ABF65375872E55938AB99A84A0B5FC8A1ECC66A7C3766E7E0F80B7CE2C9225FC2DD683F4764244B72963BBB383F529DCF0C5D17740B8A2ADBE9208D4'
- self.assertEquals(x, paramiko.util.hexify(str(transport._message)))
- self.assertEquals(paramiko.kex_group1._MSG_KEXDH_REPLY, transport._expect)
+ self.assertEquals(x, hexlify(str(transport._message)).upper())
+ self.assertEquals((paramiko.kex_group1._MSG_KEXDH_REPLY,), transport._expect)
# fake "reply"
msg = Message()
@@ -101,7 +103,7 @@ class KexTest (unittest.TestCase):
kex.parse_next(paramiko.kex_group1._MSG_KEXDH_REPLY, msg)
H = '03079780F3D3AD0B3C6DB30C8D21685F367A86D2'
self.assertEquals(self.K, transport._K)
- self.assertEquals(H, paramiko.util.hexify(transport._H))
+ self.assertEquals(H, hexlify(transport._H).upper())
self.assertEquals(('fake-host-key', 'fake-sig'), transport._verify)
self.assert_(transport._activated)
@@ -110,7 +112,7 @@ class KexTest (unittest.TestCase):
transport.server_mode = True
kex = KexGroup1(transport)
kex.start_kex()
- self.assertEquals(paramiko.kex_group1._MSG_KEXDH_INIT, transport._expect)
+ self.assertEquals((paramiko.kex_group1._MSG_KEXDH_INIT,), transport._expect)
msg = Message()
msg.add_mpint(69)
@@ -119,8 +121,8 @@ class KexTest (unittest.TestCase):
H = 'B16BF34DD10945EDE84E9C1EF24A14BFDC843389'
x = '1F0000000866616B652D6B6579000000807E2DDB1743F3487D6545F04F1C8476092FB912B013626AB5BCEB764257D88BBA64243B9F348DF7B41B8C814A995E00299913503456983FFB9178D3CD79EB6D55522418A8ABF65375872E55938AB99A84A0B5FC8A1ECC66A7C3766E7E0F80B7CE2C9225FC2DD683F4764244B72963BBB383F529DCF0C5D17740B8A2ADBE9208D40000000866616B652D736967'
self.assertEquals(self.K, transport._K)
- self.assertEquals(H, paramiko.util.hexify(transport._H))
- self.assertEquals(x, paramiko.util.hexify(str(transport._message)))
+ self.assertEquals(H, hexlify(transport._H).upper())
+ self.assertEquals(x, hexlify(str(transport._message)).upper())
self.assert_(transport._activated)
def test_3_gex_client(self):
@@ -129,8 +131,8 @@ class KexTest (unittest.TestCase):
kex = KexGex(transport)
kex.start_kex()
x = '22000004000000080000002000'
- self.assertEquals(x, paramiko.util.hexify(str(transport._message)))
- self.assertEquals(paramiko.kex_gex._MSG_KEXDH_GEX_GROUP, transport._expect)
+ self.assertEquals(x, hexlify(str(transport._message)).upper())
+ self.assertEquals((paramiko.kex_gex._MSG_KEXDH_GEX_GROUP,), transport._expect)
msg = Message()
msg.add_mpint(FakeModulusPack.P)
@@ -138,8 +140,8 @@ class KexTest (unittest.TestCase):
msg.rewind()
kex.parse_next(paramiko.kex_gex._MSG_KEXDH_GEX_GROUP, msg)
x = '20000000807E2DDB1743F3487D6545F04F1C8476092FB912B013626AB5BCEB764257D88BBA64243B9F348DF7B41B8C814A995E00299913503456983FFB9178D3CD79EB6D55522418A8ABF65375872E55938AB99A84A0B5FC8A1ECC66A7C3766E7E0F80B7CE2C9225FC2DD683F4764244B72963BBB383F529DCF0C5D17740B8A2ADBE9208D4'
- self.assertEquals(x, paramiko.util.hexify(str(transport._message)))
- self.assertEquals(paramiko.kex_gex._MSG_KEXDH_GEX_REPLY, transport._expect)
+ self.assertEquals(x, hexlify(str(transport._message)).upper())
+ self.assertEquals((paramiko.kex_gex._MSG_KEXDH_GEX_REPLY,), transport._expect)
msg = Message()
msg.add_string('fake-host-key')
@@ -149,16 +151,46 @@ class KexTest (unittest.TestCase):
kex.parse_next(paramiko.kex_gex._MSG_KEXDH_GEX_REPLY, msg)
H = 'A265563F2FA87F1A89BF007EE90D58BE2E4A4BD0'
self.assertEquals(self.K, transport._K)
- self.assertEquals(H, paramiko.util.hexify(transport._H))
+ self.assertEquals(H, hexlify(transport._H).upper())
self.assertEquals(('fake-host-key', 'fake-sig'), transport._verify)
self.assert_(transport._activated)
- def test_4_gex_server(self):
+ def test_4_gex_old_client(self):
+ transport = FakeTransport()
+ transport.server_mode = False
+ kex = KexGex(transport)
+ kex.start_kex(_test_old_style=True)
+ x = '1E00000800'
+ self.assertEquals(x, hexlify(str(transport._message)).upper())
+ self.assertEquals((paramiko.kex_gex._MSG_KEXDH_GEX_GROUP,), transport._expect)
+
+ msg = Message()
+ msg.add_mpint(FakeModulusPack.P)
+ msg.add_mpint(FakeModulusPack.G)
+ msg.rewind()
+ kex.parse_next(paramiko.kex_gex._MSG_KEXDH_GEX_GROUP, msg)
+ x = '20000000807E2DDB1743F3487D6545F04F1C8476092FB912B013626AB5BCEB764257D88BBA64243B9F348DF7B41B8C814A995E00299913503456983FFB9178D3CD79EB6D55522418A8ABF65375872E55938AB99A84A0B5FC8A1ECC66A7C3766E7E0F80B7CE2C9225FC2DD683F4764244B72963BBB383F529DCF0C5D17740B8A2ADBE9208D4'
+ self.assertEquals(x, hexlify(str(transport._message)).upper())
+ self.assertEquals((paramiko.kex_gex._MSG_KEXDH_GEX_REPLY,), transport._expect)
+
+ msg = Message()
+ msg.add_string('fake-host-key')
+ msg.add_mpint(69)
+ msg.add_string('fake-sig')
+ msg.rewind()
+ kex.parse_next(paramiko.kex_gex._MSG_KEXDH_GEX_REPLY, msg)
+ H = '807F87B269EF7AC5EC7E75676808776A27D5864C'
+ self.assertEquals(self.K, transport._K)
+ self.assertEquals(H, hexlify(transport._H).upper())
+ self.assertEquals(('fake-host-key', 'fake-sig'), transport._verify)
+ self.assert_(transport._activated)
+
+ def test_5_gex_server(self):
transport = FakeTransport()
transport.server_mode = True
kex = KexGex(transport)
kex.start_kex()
- self.assertEquals(paramiko.kex_gex._MSG_KEXDH_GEX_REQUEST, transport._expect)
+ self.assertEquals((paramiko.kex_gex._MSG_KEXDH_GEX_REQUEST, paramiko.kex_gex._MSG_KEXDH_GEX_REQUEST_OLD), transport._expect)
msg = Message()
msg.add_int(1024)
@@ -167,8 +199,8 @@ class KexTest (unittest.TestCase):
msg.rewind()
kex.parse_next(paramiko.kex_gex._MSG_KEXDH_GEX_REQUEST, msg)
x = '1F0000008100FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE65381FFFFFFFFFFFFFFFF0000000102'
- self.assertEquals(x, paramiko.util.hexify(str(transport._message)))
- self.assertEquals(paramiko.kex_gex._MSG_KEXDH_GEX_INIT, transport._expect)
+ self.assertEquals(x, hexlify(str(transport._message)).upper())
+ self.assertEquals((paramiko.kex_gex._MSG_KEXDH_GEX_INIT,), transport._expect)
msg = Message()
msg.add_mpint(12345)
@@ -178,6 +210,33 @@ class KexTest (unittest.TestCase):
H = 'CE754197C21BF3452863B4F44D0B3951F12516EF'
x = '210000000866616B652D6B6579000000807E2DDB1743F3487D6545F04F1C8476092FB912B013626AB5BCEB764257D88BBA64243B9F348DF7B41B8C814A995E00299913503456983FFB9178D3CD79EB6D55522418A8ABF65375872E55938AB99A84A0B5FC8A1ECC66A7C3766E7E0F80B7CE2C9225FC2DD683F4764244B72963BBB383F529DCF0C5D17740B8A2ADBE9208D40000000866616B652D736967'
self.assertEquals(K, transport._K)
- self.assertEquals(H, paramiko.util.hexify(transport._H))
- self.assertEquals(x, paramiko.util.hexify(str(transport._message)))
+ self.assertEquals(H, hexlify(transport._H).upper())
+ self.assertEquals(x, hexlify(str(transport._message)).upper())
+ self.assert_(transport._activated)
+
+ def test_6_gex_server_with_old_client(self):
+ transport = FakeTransport()
+ transport.server_mode = True
+ kex = KexGex(transport)
+ kex.start_kex()
+ self.assertEquals((paramiko.kex_gex._MSG_KEXDH_GEX_REQUEST, paramiko.kex_gex._MSG_KEXDH_GEX_REQUEST_OLD), transport._expect)
+
+ msg = Message()
+ msg.add_int(2048)
+ msg.rewind()
+ kex.parse_next(paramiko.kex_gex._MSG_KEXDH_GEX_REQUEST_OLD, msg)
+ x = '1F0000008100FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE65381FFFFFFFFFFFFFFFF0000000102'
+ self.assertEquals(x, hexlify(str(transport._message)).upper())
+ self.assertEquals((paramiko.kex_gex._MSG_KEXDH_GEX_INIT,), transport._expect)
+
+ msg = Message()
+ msg.add_mpint(12345)
+ msg.rewind()
+ kex.parse_next(paramiko.kex_gex._MSG_KEXDH_GEX_INIT, msg)
+ K = 67592995013596137876033460028393339951879041140378510871612128162185209509220726296697886624612526735888348020498716482757677848959420073720160491114319163078862905400020959196386947926388406687288901564192071077389283980347784184487280885335302632305026248574716290537036069329724382811853044654824945750581L
+ H = 'B41A06B2E59043CEFC1AE16EC31F1E2D12EC455B'
+ x = '210000000866616B652D6B6579000000807E2DDB1743F3487D6545F04F1C8476092FB912B013626AB5BCEB764257D88BBA64243B9F348DF7B41B8C814A995E00299913503456983FFB9178D3CD79EB6D55522418A8ABF65375872E55938AB99A84A0B5FC8A1ECC66A7C3766E7E0F80B7CE2C9225FC2DD683F4764244B72963BBB383F529DCF0C5D17740B8A2ADBE9208D40000000866616B652D736967'
+ self.assertEquals(K, transport._K)
+ self.assertEquals(H, hexlify(transport._H).upper())
+ self.assertEquals(x, hexlify(str(transport._message)).upper())
self.assert_(transport._activated)
diff --git a/tests/test_message.py b/tests/test_message.py
index 441e3ce..e930f71 100644
--- a/tests/test_message.py
+++ b/tests/test_message.py
@@ -1,6 +1,4 @@
-#!/usr/bin/python
-
-# Copyright (C) 2003-2005 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
#
# This file is part of paramiko.
#
diff --git a/tests/test_packetizer.py b/tests/test_packetizer.py
index 8c992bd..cb6248f 100644
--- a/tests/test_packetizer.py
+++ b/tests/test_packetizer.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2005 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
#
# This file is part of paramiko.
#
diff --git a/tests/test_pkey.py b/tests/test_pkey.py
index e56edb1..e591ab1 100644
--- a/tests/test_pkey.py
+++ b/tests/test_pkey.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2005 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
#
# This file is part of paramiko.
#
@@ -20,6 +20,8 @@
Some unit tests for public/private key objects.
"""
+from binascii import hexlify, unhexlify
+import StringIO
import unittest
from paramiko import RSAKey, DSSKey, Message, util, randpool
@@ -30,6 +32,39 @@ FINGER_RSA = '1024 60:73:38:44:cb:51:86:65:7f:de:da:a2:2b:5a:57:d5'
FINGER_DSS = '1024 44:78:f0:b9:a2:3c:c5:18:20:09:ff:75:5b:c1:d2:6c'
SIGNED_RSA = '20:d7:8a:31:21:cb:f7:92:12:f2:a4:89:37:f5:78:af:e6:16:b6:25:b9:97:3d:a2:cd:5f:ca:20:21:73:4c:ad:34:73:8f:20:77:28:e2:94:15:08:d8:91:40:7a:85:83:bf:18:37:95:dc:54:1a:9b:88:29:6c:73:ca:38:b4:04:f1:56:b9:f2:42:9d:52:1b:29:29:b4:4f:fd:c9:2d:af:47:d2:40:76:30:f3:63:45:0c:d9:1d:43:86:0f:1c:70:e2:93:12:34:f3:ac:c5:0a:2f:14:50:66:59:f1:88:ee:c1:4a:e9:d1:9c:4e:46:f0:0e:47:6f:38:74:f1:44:a8'
+RSA_PRIVATE_OUT = """\
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKCAIEA049W6geFpmsljTwfvI1UmKWWJPNFI74+vNKTk4dmzkQY2yAM
+s6FhlvhlI8ysU4oj71ZsRYMecHbBbxdN79+JRFVYTKaLqjwGENeTd+yv4q+V2PvZ
+v3fLnzApI3l7EJCqhWwJUHJ1jAkZzqDx0tyOL4uoZpww3nmE0kb3y21tH4cCASMC
+ggCAEiI6plhqipt4P05L3PYr0pHZq2VPEbE4k9eI/gRKo/c1VJxY3DJnc1cenKsk
+trQRtW3OxCEufqsX5PNec6VyKkW+Ox6beJjMKm4KF8ZDpKi9Nw6MdX3P6Gele9D9
++ieyhVFljrnAqcXsgChTBOYlL2imqCs3qRGAJ3cMBIAx3VsCQQD3pIFVYW398kE0
+n0e1icEpkbDRV4c5iZVhu8xKy2yyfy6f6lClSb2+Ub9uns7F3+b5v0pYSHbE9+/r
+OpRq83AfAkEA2rMZlr8SnMXgnyka2LuggA9QgMYy18hyao1dUxySubNDa9N+q2QR
+mwDisTUgRFHKIlDHoQmzPbXAmYZX1YlDmQJBAPCRLS5epV0XOAc7pL762OaNhzHC
+veAfQKgVhKBt105PqaKpGyQ5AXcNlWQlPeTK4GBTbMrKDPna6RBkyrEJvV8CQBK+
+5O+p+kfztCrmRCE0p1tvBuZ3Y3GU1ptrM+KNa6mEZN1bRV8l1Z+SXJLYqv6Kquz/
+nBUeFq2Em3rfoSDugiMCQDyG3cxD5dKX3IgkhLyBWls/FLDk4x/DQ+NUTu0F1Cu6
+JJye+5ARLkL0EweMXf0tmIYfWItDLsWB0fKg/56h0js=
+-----END RSA PRIVATE KEY-----
+"""
+
+DSS_PRIVATE_OUT = """\
+-----BEGIN DSA PRIVATE KEY-----
+MIIBvgIBAAKCAIEA54GmA2d9HOv+3CYBBG7ZfBYCncIW2tWe6Dqzp+DCP+guNhtW
+2MDLqmX+HQQoJbHat/Uh63I2xPFaueID0jod4OPrlfUXIOSDqDy28Kdo0Hxen9RS
+G7Me4awwiKlHEHHD0sXrTwSplyPUTfK2S2hbkHk5yOuQSjPfEbsL6ukiNi8CFQDw
+z4UnmsGiSNu5iqjn3uTzwUpshwKCAIEAkxfFeY8P2wZpDjX0MimZl5wkoFQDL25c
+PzGBuB4OnB8NoUk/yjAHIIpEShw8V+LzouMK5CTJQo5+Ngw3qIch/WgRmMHy4kBq
+1SsXMjQCte1So6HBMvBPIW5SiMTmjCfZZiw4AYHK+B/JaOwaG9yRg2Ejg4Ok10+X
+FDxlqZo8Y+wCggCARmR7CCPjodxASvRbIyzaVpZoJ/Z6x7dAumV+ysrV1BVYd0lY
+ukmnjO1kKBWApqpH1ve9XDQYN8zgxM4b16L21kpoWQnZtXrY3GZ4/it9kUgyB7+N
+wacIBlXa8cMDL7Q/69o0d54U0X/NeX5QxuYR6OMJlrkQB7oiW/P/1mwjQgECFGI9
+QPSch9pT9XHqn+1rZ4bK+QGA
+-----END DSA PRIVATE KEY-----
+"""
+
class KeyTest (unittest.TestCase):
@@ -42,23 +77,30 @@ class KeyTest (unittest.TestCase):
def test_1_generate_key_bytes(self):
from Crypto.Hash import MD5
key = util.generate_key_bytes(MD5, '\x01\x02\x03\x04', 'happy birthday', 30)
- exp = util.unhexify('61E1F272F4C1C4561586BD322498C0E924672780F47BB37DDA7D54019E64')
+ exp = unhexlify('61E1F272F4C1C4561586BD322498C0E924672780F47BB37DDA7D54019E64')
self.assertEquals(exp, key)
def test_2_load_rsa(self):
key = RSAKey.from_private_key_file('tests/test_rsa.key')
self.assertEquals('ssh-rsa', key.get_name())
exp_rsa = FINGER_RSA.split()[1].replace(':', '')
- my_rsa = util.hexify(key.get_fingerprint()).lower()
+ my_rsa = hexlify(key.get_fingerprint())
self.assertEquals(exp_rsa, my_rsa)
self.assertEquals(PUB_RSA.split()[1], key.get_base64())
self.assertEquals(1024, key.get_bits())
+ s = StringIO.StringIO()
+ key.write_private_key(s)
+ self.assertEquals(RSA_PRIVATE_OUT, s.getvalue())
+ s.seek(0)
+ key2 = RSAKey.from_private_key(s)
+ self.assertEquals(key, key2)
+
def test_3_load_rsa_password(self):
key = RSAKey.from_private_key_file('tests/test_rsa_password.key', 'television')
self.assertEquals('ssh-rsa', key.get_name())
exp_rsa = FINGER_RSA.split()[1].replace(':', '')
- my_rsa = util.hexify(key.get_fingerprint()).lower()
+ my_rsa = hexlify(key.get_fingerprint())
self.assertEquals(exp_rsa, my_rsa)
self.assertEquals(PUB_RSA.split()[1], key.get_base64())
self.assertEquals(1024, key.get_bits())
@@ -67,16 +109,23 @@ class KeyTest (unittest.TestCase):
key = DSSKey.from_private_key_file('tests/test_dss.key')
self.assertEquals('ssh-dss', key.get_name())
exp_dss = FINGER_DSS.split()[1].replace(':', '')
- my_dss = util.hexify(key.get_fingerprint()).lower()
+ my_dss = hexlify(key.get_fingerprint())
self.assertEquals(exp_dss, my_dss)
self.assertEquals(PUB_DSS.split()[1], key.get_base64())
self.assertEquals(1024, key.get_bits())
+ s = StringIO.StringIO()
+ key.write_private_key(s)
+ self.assertEquals(DSS_PRIVATE_OUT, s.getvalue())
+ s.seek(0)
+ key2 = DSSKey.from_private_key(s)
+ self.assertEquals(key, key2)
+
def test_5_load_dss_password(self):
key = DSSKey.from_private_key_file('tests/test_dss_password.key', 'television')
self.assertEquals('ssh-dss', key.get_name())
exp_dss = FINGER_DSS.split()[1].replace(':', '')
- my_dss = util.hexify(key.get_fingerprint()).lower()
+ my_dss = hexlify(key.get_fingerprint())
self.assertEquals(exp_dss, my_dss)
self.assertEquals(PUB_DSS.split()[1], key.get_base64())
self.assertEquals(1024, key.get_bits())
diff --git a/tests/test_sftp.py b/tests/test_sftp.py
index 993899a..edc0599 100644..100755
--- a/tests/test_sftp.py
+++ b/tests/test_sftp.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2005 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
#
# This file is part of paramiko.
#
@@ -23,9 +23,11 @@ a real actual sftp server is contacted, and a new folder is created there to
do test file operations in (so no existing files will be harmed).
"""
+from binascii import hexlify
import logging
import os
import random
+import struct
import sys
import threading
import time
@@ -69,6 +71,11 @@ tc = None
g_big_file_test = True
+def get_sftp():
+ global sftp
+ return sftp
+
+
class SFTPTest (unittest.TestCase):
def init(hostname, username, keyfile, passwd):
@@ -273,28 +280,85 @@ class SFTPTest (unittest.TestCase):
def test_8_setstat(self):
"""
- verify that the setstat functions (chown, chmod, utime) work.
+ verify that the setstat functions (chown, chmod, utime, truncate) work.
"""
f = sftp.open(FOLDER + '/special', 'w')
try:
+ f.write('x' * 1024)
f.close()
stat = sftp.stat(FOLDER + '/special')
sftp.chmod(FOLDER + '/special', (stat.st_mode & ~0777) | 0600)
- self.assertEqual(sftp.stat(FOLDER + '/special').st_mode & 0777, 0600)
+ stat = sftp.stat(FOLDER + '/special')
+ expected_mode = 0600
+ if sys.platform == 'win32':
+ # chmod not really functional on windows
+ expected_mode = 0666
+ if sys.platform == 'cygwin':
+ # even worse.
+ expected_mode = 0644
+ self.assertEqual(stat.st_mode & 0777, expected_mode)
+ self.assertEqual(stat.st_size, 1024)
mtime = stat.st_mtime - 3600
atime = stat.st_atime - 1800
sftp.utime(FOLDER + '/special', (atime, mtime))
- nstat = sftp.stat(FOLDER + '/special')
- self.assertEqual(nstat.st_mtime, mtime)
- self.assertEqual(nstat.st_atime, atime)
+ stat = sftp.stat(FOLDER + '/special')
+ 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.
+
+ sftp.truncate(FOLDER + '/special', 512)
+ stat = sftp.stat(FOLDER + '/special')
+ self.assertEqual(stat.st_size, 512)
finally:
sftp.remove(FOLDER + '/special')
- def test_9_readline_seek(self):
+ def test_9_fsetstat(self):
+ """
+ verify that the fsetstat functions (chown, chmod, utime, truncate)
+ work on open files.
+ """
+ f = sftp.open(FOLDER + '/special', 'w')
+ try:
+ f.write('x' * 1024)
+ f.close()
+
+ f = sftp.open(FOLDER + '/special', 'r+')
+ stat = f.stat()
+ f.chmod((stat.st_mode & ~0777) | 0600)
+ stat = f.stat()
+
+ expected_mode = 0600
+ if sys.platform == 'win32':
+ # chmod not really functional on windows
+ expected_mode = 0666
+ if sys.platform == 'cygwin':
+ # even worse.
+ expected_mode = 0644
+ self.assertEqual(stat.st_mode & 0777, expected_mode)
+ self.assertEqual(stat.st_size, 1024)
+
+ mtime = stat.st_mtime - 3600
+ atime = stat.st_atime - 1800
+ f.utime((atime, mtime))
+ stat = f.stat()
+ 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
in the file, and seek around to retreive particular lines. this should
@@ -324,7 +388,7 @@ class SFTPTest (unittest.TestCase):
finally:
sftp.remove(FOLDER + '/duck.txt')
- def test_A_write_seek(self):
+ def test_B_write_seek(self):
"""
create a text file, seek back and change part of it, and verify that the
changes worked.
@@ -344,10 +408,14 @@ class SFTPTest (unittest.TestCase):
finally:
sftp.remove(FOLDER + '/testing.txt')
- def test_B_symlink(self):
+ def test_C_symlink(self):
"""
create a symlink and then check that lstat doesn't follow it.
"""
+ if not hasattr(os, "symlink"):
+ # skip symlink tests on windows
+ return
+
f = sftp.open(FOLDER + '/original.txt', 'w')
try:
f.write('original\n')
@@ -387,7 +455,7 @@ class SFTPTest (unittest.TestCase):
except:
pass
- def test_C_flush_seek(self):
+ def test_D_flush_seek(self):
"""
verify that buffered writes are automatically flushed on seek.
"""
@@ -409,183 +477,7 @@ class SFTPTest (unittest.TestCase):
except:
pass
- def test_D_lots_of_files(self):
- """
- create a bunch of files over the same session.
- """
- global g_big_file_test
- if not g_big_file_test:
- return
- numfiles = 100
- try:
- for i in range(numfiles):
- f = sftp.open('%s/file%d.txt' % (FOLDER, i), 'w', 1)
- f.write('this is file #%d.\n' % i)
- f.close()
- sftp.chmod('%s/file%d.txt' % (FOLDER, i), 0660)
-
- # now make sure every file is there, by creating a list of filenmes
- # and reading them in random order.
- numlist = range(numfiles)
- while len(numlist) > 0:
- r = numlist[random.randint(0, len(numlist) - 1)]
- f = sftp.open('%s/file%d.txt' % (FOLDER, r))
- self.assertEqual(f.readline(), 'this is file #%d.\n' % r)
- f.close()
- numlist.remove(r)
- finally:
- for i in range(numfiles):
- try:
- sftp.remove('%s/file%d.txt' % (FOLDER, i))
- except:
- pass
-
- def test_E_big_file(self):
- """
- write a 1MB file with no buffering.
- """
- global g_big_file_test
- if not g_big_file_test:
- return
- kblob = (1024 * 'x')
- start = time.time()
- try:
- f = sftp.open('%s/hongry.txt' % FOLDER, 'w')
- for n in range(1024):
- f.write(kblob)
- if n % 128 == 0:
- sys.stderr.write('.')
- f.close()
- sys.stderr.write(' ')
-
- self.assertEqual(sftp.stat('%s/hongry.txt' % FOLDER).st_size, 1024 * 1024)
- end = time.time()
- sys.stderr.write('%ds ' % round(end - start))
-
- start = time.time()
- f = sftp.open('%s/hongry.txt' % FOLDER, 'r')
- for n in range(1024):
- data = f.read(1024)
- self.assertEqual(data, kblob)
- f.close()
-
- end = time.time()
- sys.stderr.write('%ds ' % round(end - start))
- finally:
- sftp.remove('%s/hongry.txt' % FOLDER)
-
- def test_F_big_file_pipelined(self):
- """
- write a 1MB file, with no linefeeds, using pipelining.
- """
- global g_big_file_test
- if not g_big_file_test:
- return
- kblob = (1024 * 'x')
- start = time.time()
- try:
- f = sftp.open('%s/hongry.txt' % FOLDER, 'w')
- f.set_pipelined(True)
- for n in range(1024):
- f.write(kblob)
- if n % 128 == 0:
- sys.stderr.write('.')
- f.close()
- sys.stderr.write(' ')
-
- self.assertEqual(sftp.stat('%s/hongry.txt' % FOLDER).st_size, 1024 * 1024)
- end = time.time()
- sys.stderr.write('%ds ' % round(end - start))
-
- start = time.time()
- f = sftp.open('%s/hongry.txt' % FOLDER, 'r')
- f.prefetch()
- for n in range(1024):
- data = f.read(1024)
- self.assertEqual(data, kblob)
- f.close()
-
- end = time.time()
- sys.stderr.write('%ds ' % round(end - start))
- finally:
- sftp.remove('%s/hongry.txt' % FOLDER)
-
- def test_G_lots_of_prefetching(self):
- """
- prefetch a 1MB file a bunch of times, discarding the file object
- without using it, to verify that paramiko doesn't get confused.
- """
- global g_big_file_test
- if not g_big_file_test:
- return
- kblob = (1024 * 'x')
- try:
- f = sftp.open('%s/hongry.txt' % FOLDER, 'w')
- f.set_pipelined(True)
- for n in range(1024):
- f.write(kblob)
- if n % 128 == 0:
- sys.stderr.write('.')
- f.close()
- sys.stderr.write(' ')
-
- self.assertEqual(sftp.stat('%s/hongry.txt' % FOLDER).st_size, 1024 * 1024)
-
- for i in range(10):
- f = sftp.open('%s/hongry.txt' % FOLDER, 'r')
- f.prefetch()
- f = sftp.open('%s/hongry.txt' % FOLDER, 'r')
- f.prefetch()
- for n in range(1024):
- data = f.read(1024)
- self.assertEqual(data, kblob)
- if n % 128 == 0:
- sys.stderr.write('.')
- f.close()
- sys.stderr.write(' ')
- finally:
- sftp.remove('%s/hongry.txt' % FOLDER)
-
- def test_H_big_file_big_buffer(self):
- """
- write a 1MB file, with no linefeeds, and a big buffer.
- """
- global g_big_file_test
- if not g_big_file_test:
- return
- mblob = (1024 * 1024 * 'x')
- try:
- f = sftp.open('%s/hongry.txt' % FOLDER, 'w', 128 * 1024)
- f.write(mblob)
- f.close()
-
- self.assertEqual(sftp.stat('%s/hongry.txt' % FOLDER).st_size, 1024 * 1024)
- finally:
- sftp.remove('%s/hongry.txt' % FOLDER)
-
- def test_I_big_file_renegotiate(self):
- """
- write a 1MB file, forcing key renegotiation in the middle.
- """
- global g_big_file_test
- if not g_big_file_test:
- return
- t = sftp.sock.get_transport()
- t.packetizer.REKEY_BYTES = 512 * 1024
- k32blob = (32 * 1024 * 'x')
- try:
- f = sftp.open('%s/hongry.txt' % FOLDER, 'w', 128 * 1024)
- for i in xrange(32):
- f.write(k32blob)
- f.close()
-
- self.assertEqual(sftp.stat('%s/hongry.txt' % FOLDER).st_size, 1024 * 1024)
- self.assertNotEquals(t.H, t.session_id)
- finally:
- sftp.remove('%s/hongry.txt' % FOLDER)
- t.packetizer.REKEY_BYTES = pow(2, 30)
-
- def test_J_realpath(self):
+ def test_E_realpath(self):
"""
test that realpath is returning something non-empty and not an
error.
@@ -596,7 +488,7 @@ class SFTPTest (unittest.TestCase):
self.assert_(len(f) > 0)
self.assertEquals(os.path.join(pwd, FOLDER), f)
- def test_K_mkdir(self):
+ def test_F_mkdir(self):
"""
verify that mkdir/rmdir work.
"""
@@ -619,7 +511,7 @@ class SFTPTest (unittest.TestCase):
except IOError:
pass
- def test_L_chdir(self):
+ def test_G_chdir(self):
"""
verify that chdir/getcwd work.
"""
@@ -656,7 +548,7 @@ class SFTPTest (unittest.TestCase):
except:
pass
- def test_M_get_put(self):
+ def test_H_get_put(self):
"""
verify that get/put work.
"""
@@ -665,27 +557,33 @@ class SFTPTest (unittest.TestCase):
localname = os.tempnam()
text = 'All I wanted was a plastic bunny rabbit.\n'
- f = open(localname, 'w')
+ f = open(localname, 'wb')
f.write(text)
f.close()
- sftp.put(localname, FOLDER + '/bunny.txt')
+ saved_progress = []
+ 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()
- sftp.get(FOLDER + '/bunny.txt', localname)
+ saved_progress = []
+ sftp.get(FOLDER + '/bunny.txt', localname, progress_callback)
- f = open(localname, 'r')
+ 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')
- def test_N_check(self):
+ def test_I_check(self):
"""
verify that file.check() works against our own server.
(it's an sftp extension that we support, and may be the only ones who
@@ -698,16 +596,17 @@ class SFTPTest (unittest.TestCase):
try:
f = sftp.open(FOLDER + '/kitty.txt', 'r')
sum = f.check('sha1')
- self.assertEquals('91059CFC6615941378D413CB5ADAF4C5EB293402', paramiko.util.hexify(sum))
+ self.assertEquals('91059CFC6615941378D413CB5ADAF4C5EB293402', hexlify(sum).upper())
sum = f.check('md5', 0, 512)
- self.assertEquals('93DE4788FCA28D471516963A1FE3856A', paramiko.util.hexify(sum))
+ self.assertEquals('93DE4788FCA28D471516963A1FE3856A', hexlify(sum).upper())
sum = f.check('md5', 0, 0, 510)
self.assertEquals('EB3B45B8CD55A0707D99B177544A319F373183D241432BB2157AB9E46358C4AC90370B5CADE5D90336FC1716F90B36D6',
- paramiko.util.hexify(sum))
+ hexlify(sum).upper())
+ f.close()
finally:
sftp.unlink(FOLDER + '/kitty.txt')
- def test_O_x_flag(self):
+ def test_J_x_flag(self):
"""
verify that the 'x' flag works when opening a file.
"""
@@ -723,7 +622,7 @@ class SFTPTest (unittest.TestCase):
finally:
sftp.unlink(FOLDER + '/unusual.txt')
- def test_P_utf8(self):
+ def test_K_utf8(self):
"""
verify that unicode strings are encoded into utf8 correctly.
"""
@@ -738,3 +637,43 @@ class SFTPTest (unittest.TestCase):
self.fail('exception ' + e)
sftp.unlink(FOLDER + '/\xc3\xbcnic\xc3\xb8\x64\x65')
+ def test_L_bad_readv(self):
+ """
+ verify that readv at the end of the file doesn't essplode.
+ """
+ f = sftp.open(FOLDER + '/zero', 'w')
+ f.close()
+ try:
+ 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)
+ f.close()
+ finally:
+ sftp.unlink(FOLDER + '/zero')
+
+ 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')
+ try:
+ f.write('first line\nsecond line\n')
+ f.seek(11, f.SEEK_SET)
+ f.write('third line\n')
+ f.close()
+
+ f = sftp.open(FOLDER + '/append.txt', 'r')
+ self.assertEqual(f.stat().st_size, 34)
+ self.assertEqual(f.readline(), 'first line\n')
+ self.assertEqual(f.readline(), 'second line\n')
+ self.assertEqual(f.readline(), 'third line\n')
+ f.close()
+ finally:
+ sftp.remove(FOLDER + '/append.txt')
+
diff --git a/tests/test_sftp_big.py b/tests/test_sftp_big.py
new file mode 100644
index 0000000..c182762
--- /dev/null
+++ b/tests/test_sftp_big.py
@@ -0,0 +1,385 @@
+# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
+#
+# This file is part of paramiko.
+#
+# Paramiko is free software; you can redistribute it and/or modify it under the
+# terms of the GNU Lesser General Public License as published by the Free
+# Software Foundation; either version 2.1 of the License, or (at your option)
+# any later version.
+#
+# Paramiko is distrubuted in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+# A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+# details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with Paramiko; if not, write to the Free Software Foundation, Inc.,
+# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+
+"""
+some unit tests to make sure sftp works well with large files.
+
+a real actual sftp server is contacted, and a new folder is created there to
+do test file operations in (so no existing files will be harmed).
+"""
+
+import logging
+import os
+import random
+import struct
+import sys
+import threading
+import time
+import unittest
+
+import paramiko
+from stub_sftp import StubServer, StubSFTPServer
+from loop import LoopSocket
+from test_sftp import get_sftp
+
+FOLDER = os.environ.get('TEST_FOLDER', 'temp-testing000')
+
+
+class BigSFTPTest (unittest.TestCase):
+
+ def setUp(self):
+ global FOLDER
+ sftp = get_sftp()
+ for i in xrange(1000):
+ FOLDER = FOLDER[:-3] + '%03d' % i
+ try:
+ sftp.mkdir(FOLDER)
+ break
+ except (IOError, OSError):
+ pass
+
+ def tearDown(self):
+ sftp = get_sftp()
+ sftp.rmdir(FOLDER)
+
+ def test_1_lots_of_files(self):
+ """
+ create a bunch of files over the same session.
+ """
+ sftp = get_sftp()
+ numfiles = 100
+ try:
+ for i in range(numfiles):
+ f = sftp.open('%s/file%d.txt' % (FOLDER, i), 'w', 1)
+ f.write('this is file #%d.\n' % i)
+ f.close()
+ sftp.chmod('%s/file%d.txt' % (FOLDER, i), 0660)
+
+ # now make sure every file is there, by creating a list of filenmes
+ # and reading them in random order.
+ numlist = range(numfiles)
+ while len(numlist) > 0:
+ r = numlist[random.randint(0, len(numlist) - 1)]
+ f = sftp.open('%s/file%d.txt' % (FOLDER, r))
+ self.assertEqual(f.readline(), 'this is file #%d.\n' % r)
+ f.close()
+ numlist.remove(r)
+ finally:
+ for i in range(numfiles):
+ try:
+ sftp.remove('%s/file%d.txt' % (FOLDER, i))
+ except:
+ pass
+
+ def test_2_big_file(self):
+ """
+ write a 1MB file with no buffering.
+ """
+ sftp = get_sftp()
+ kblob = (1024 * 'x')
+ start = time.time()
+ try:
+ f = sftp.open('%s/hongry.txt' % FOLDER, 'w')
+ for n in range(1024):
+ f.write(kblob)
+ if n % 128 == 0:
+ sys.stderr.write('.')
+ f.close()
+ sys.stderr.write(' ')
+
+ self.assertEqual(sftp.stat('%s/hongry.txt' % FOLDER).st_size, 1024 * 1024)
+ end = time.time()
+ sys.stderr.write('%ds ' % round(end - start))
+
+ start = time.time()
+ f = sftp.open('%s/hongry.txt' % FOLDER, 'r')
+ for n in range(1024):
+ data = f.read(1024)
+ self.assertEqual(data, kblob)
+ f.close()
+
+ end = time.time()
+ sys.stderr.write('%ds ' % round(end - start))
+ finally:
+ sftp.remove('%s/hongry.txt' % FOLDER)
+
+ def test_3_big_file_pipelined(self):
+ """
+ write a 1MB file, with no linefeeds, using pipelining.
+ """
+ sftp = get_sftp()
+ kblob = ''.join([struct.pack('>H', n) for n in xrange(512)])
+ start = time.time()
+ try:
+ f = sftp.open('%s/hongry.txt' % FOLDER, 'w')
+ f.set_pipelined(True)
+ for n in range(1024):
+ f.write(kblob)
+ if n % 128 == 0:
+ sys.stderr.write('.')
+ f.close()
+ sys.stderr.write(' ')
+
+ self.assertEqual(sftp.stat('%s/hongry.txt' % FOLDER).st_size, 1024 * 1024)
+ end = time.time()
+ sys.stderr.write('%ds ' % round(end - start))
+
+ start = time.time()
+ f = sftp.open('%s/hongry.txt' % FOLDER, 'r')
+ f.prefetch()
+
+ # read on odd boundaries to make sure the bytes aren't getting scrambled
+ n = 0
+ k2blob = kblob + kblob
+ chunk = 629
+ size = 1024 * 1024
+ while n < size:
+ if n + chunk > size:
+ chunk = size - n
+ data = f.read(chunk)
+ offset = n % 1024
+ self.assertEqual(data, k2blob[offset:offset + chunk])
+ n += chunk
+ f.close()
+
+ end = time.time()
+ sys.stderr.write('%ds ' % round(end - start))
+ finally:
+ sftp.remove('%s/hongry.txt' % FOLDER)
+
+ def test_4_prefetch_seek(self):
+ sftp = get_sftp()
+ kblob = ''.join([struct.pack('>H', n) for n in xrange(512)])
+ try:
+ f = sftp.open('%s/hongry.txt' % FOLDER, 'w')
+ f.set_pipelined(True)
+ for n in range(1024):
+ f.write(kblob)
+ if n % 128 == 0:
+ sys.stderr.write('.')
+ f.close()
+ sys.stderr.write(' ')
+
+ self.assertEqual(sftp.stat('%s/hongry.txt' % FOLDER).st_size, 1024 * 1024)
+
+ start = time.time()
+ k2blob = kblob + kblob
+ chunk = 793
+ for i in xrange(10):
+ f = sftp.open('%s/hongry.txt' % FOLDER, 'r')
+ f.prefetch()
+ base_offset = (512 * 1024) + 17 * random.randint(1000, 2000)
+ offsets = [base_offset + j * chunk for j in xrange(100)]
+ # randomly seek around and read them out
+ for j in xrange(100):
+ offset = offsets[random.randint(0, len(offsets) - 1)]
+ offsets.remove(offset)
+ f.seek(offset)
+ data = f.read(chunk)
+ n_offset = offset % 1024
+ self.assertEqual(data, k2blob[n_offset:n_offset + chunk])
+ offset += chunk
+ f.close()
+ end = time.time()
+ sys.stderr.write('%ds ' % round(end - start))
+ finally:
+ sftp.remove('%s/hongry.txt' % FOLDER)
+
+ def test_5_readv_seek(self):
+ sftp = get_sftp()
+ kblob = ''.join([struct.pack('>H', n) for n in xrange(512)])
+ try:
+ f = sftp.open('%s/hongry.txt' % FOLDER, 'w')
+ f.set_pipelined(True)
+ for n in range(1024):
+ f.write(kblob)
+ if n % 128 == 0:
+ sys.stderr.write('.')
+ f.close()
+ sys.stderr.write(' ')
+
+ self.assertEqual(sftp.stat('%s/hongry.txt' % FOLDER).st_size, 1024 * 1024)
+
+ start = time.time()
+ k2blob = kblob + kblob
+ chunk = 793
+ for i in xrange(10):
+ f = sftp.open('%s/hongry.txt' % FOLDER, 'r')
+ base_offset = (512 * 1024) + 17 * random.randint(1000, 2000)
+ # make a bunch of offsets and put them in random order
+ offsets = [base_offset + j * chunk for j in xrange(100)]
+ readv_list = []
+ for j in xrange(100):
+ o = offsets[random.randint(0, len(offsets) - 1)]
+ offsets.remove(o)
+ readv_list.append((o, chunk))
+ ret = f.readv(readv_list)
+ for i in xrange(len(readv_list)):
+ offset = readv_list[i][0]
+ n_offset = offset % 1024
+ self.assertEqual(ret.next(), k2blob[n_offset:n_offset + chunk])
+ f.close()
+ end = time.time()
+ sys.stderr.write('%ds ' % round(end - start))
+ finally:
+ sftp.remove('%s/hongry.txt' % FOLDER)
+
+ def test_6_lots_of_prefetching(self):
+ """
+ prefetch a 1MB file a bunch of times, discarding the file object
+ without using it, to verify that paramiko doesn't get confused.
+ """
+ sftp = get_sftp()
+ kblob = (1024 * 'x')
+ try:
+ f = sftp.open('%s/hongry.txt' % FOLDER, 'w')
+ f.set_pipelined(True)
+ for n in range(1024):
+ f.write(kblob)
+ if n % 128 == 0:
+ sys.stderr.write('.')
+ f.close()
+ sys.stderr.write(' ')
+
+ self.assertEqual(sftp.stat('%s/hongry.txt' % FOLDER).st_size, 1024 * 1024)
+
+ for i in range(10):
+ f = sftp.open('%s/hongry.txt' % FOLDER, 'r')
+ f.prefetch()
+ f = sftp.open('%s/hongry.txt' % FOLDER, 'r')
+ f.prefetch()
+ for n in range(1024):
+ data = f.read(1024)
+ self.assertEqual(data, kblob)
+ if n % 128 == 0:
+ sys.stderr.write('.')
+ f.close()
+ sys.stderr.write(' ')
+ finally:
+ sftp.remove('%s/hongry.txt' % FOLDER)
+
+ def test_7_prefetch_readv(self):
+ """
+ verify that prefetch and readv don't conflict with each other.
+ """
+ sftp = get_sftp()
+ kblob = ''.join([struct.pack('>H', n) for n in xrange(512)])
+ try:
+ f = sftp.open('%s/hongry.txt' % FOLDER, 'w')
+ f.set_pipelined(True)
+ for n in range(1024):
+ f.write(kblob)
+ if n % 128 == 0:
+ sys.stderr.write('.')
+ f.close()
+ sys.stderr.write(' ')
+
+ self.assertEqual(sftp.stat('%s/hongry.txt' % FOLDER).st_size, 1024 * 1024)
+
+ f = sftp.open('%s/hongry.txt' % FOLDER, 'r')
+ f.prefetch()
+ data = f.read(1024)
+ self.assertEqual(data, kblob)
+
+ chunk_size = 793
+ base_offset = 512 * 1024
+ k2blob = kblob + kblob
+ chunks = [(base_offset + (chunk_size * i), chunk_size) for i in range(20)]
+ for data in f.readv(chunks):
+ offset = base_offset % 1024
+ self.assertEqual(chunk_size, len(data))
+ self.assertEqual(k2blob[offset:offset + chunk_size], data)
+ base_offset += chunk_size
+
+ f.close()
+ sys.stderr.write(' ')
+ finally:
+ sftp.remove('%s/hongry.txt' % FOLDER)
+
+ def test_8_large_readv(self):
+ """
+ verify that a very large readv is broken up correctly and still
+ returned as a single blob.
+ """
+ sftp = get_sftp()
+ kblob = ''.join([struct.pack('>H', n) for n in xrange(512)])
+ try:
+ f = sftp.open('%s/hongry.txt' % FOLDER, 'w')
+ f.set_pipelined(True)
+ for n in range(1024):
+ f.write(kblob)
+ if n % 128 == 0:
+ sys.stderr.write('.')
+ f.close()
+ sys.stderr.write(' ')
+
+ self.assertEqual(sftp.stat('%s/hongry.txt' % FOLDER).st_size, 1024 * 1024)
+
+ f = sftp.open('%s/hongry.txt' % FOLDER, 'r')
+ data = list(f.readv([(23 * 1024, 128 * 1024)]))
+ self.assertEqual(1, len(data))
+ data = data[0]
+ self.assertEqual(128 * 1024, len(data))
+
+ f.close()
+ sys.stderr.write(' ')
+ finally:
+ sftp.remove('%s/hongry.txt' % FOLDER)
+
+ def test_9_big_file_big_buffer(self):
+ """
+ write a 1MB file, with no linefeeds, and a big buffer.
+ """
+ sftp = get_sftp()
+ mblob = (1024 * 1024 * 'x')
+ try:
+ f = sftp.open('%s/hongry.txt' % FOLDER, 'w', 128 * 1024)
+ f.write(mblob)
+ f.close()
+
+ self.assertEqual(sftp.stat('%s/hongry.txt' % FOLDER).st_size, 1024 * 1024)
+ finally:
+ sftp.remove('%s/hongry.txt' % FOLDER)
+
+ def test_A_big_file_renegotiate(self):
+ """
+ write a 1MB file, forcing key renegotiation in the middle.
+ """
+ sftp = get_sftp()
+ t = sftp.sock.get_transport()
+ t.packetizer.REKEY_BYTES = 512 * 1024
+ k32blob = (32 * 1024 * 'x')
+ try:
+ f = sftp.open('%s/hongry.txt' % FOLDER, 'w', 128 * 1024)
+ for i in xrange(32):
+ f.write(k32blob)
+ f.close()
+
+ self.assertEqual(sftp.stat('%s/hongry.txt' % FOLDER).st_size, 1024 * 1024)
+ self.assertNotEquals(t.H, t.session_id)
+
+ # try to read it too.
+ f = sftp.open('%s/hongry.txt' % FOLDER, 'r', 128 * 1024)
+ f.prefetch()
+ total = 0
+ while total < 1024 * 1024:
+ total += len(f.read(32 * 1024))
+ f.close()
+ finally:
+ sftp.remove('%s/hongry.txt' % FOLDER)
+ t.packetizer.REKEY_BYTES = pow(2, 30)
diff --git a/tests/test_transport.py b/tests/test_transport.py
index 5fcc786..4b52c4f 100644
--- a/tests/test_transport.py
+++ b/tests/test_transport.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2005 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
#
# This file is part of paramiko.
#
@@ -20,12 +20,21 @@
Some unit tests for the ssh2 protocol in Transport.
"""
-import sys, time, threading, unittest
+from binascii import hexlify, unhexlify
import select
+import socket
+import sys
+import time
+import threading
+import unittest
+import random
+
from paramiko import Transport, SecurityOptions, ServerInterface, RSAKey, DSSKey, \
- SSHException, BadAuthenticationType, InteractiveQuery, util
+ SSHException, BadAuthenticationType, InteractiveQuery, ChannelException
from paramiko import AUTH_FAILED, AUTH_PARTIALLY_SUCCESSFUL, AUTH_SUCCESSFUL
-from paramiko import OPEN_SUCCEEDED
+from paramiko import OPEN_SUCCEEDED, OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
+from paramiko.common import MSG_KEXINIT, MSG_CHANNEL_WINDOW_ADJUST
+from paramiko.message import Message
from loop import LoopSocket
@@ -37,50 +46,16 @@ class NullServer (ServerInterface):
def get_allowed_auths(self, username):
if username == 'slowdive':
return 'publickey,password'
- if username == 'paranoid':
- if not self.paranoid_did_password and not self.paranoid_did_public_key:
- return 'publickey,password'
- elif self.paranoid_did_password:
- return 'publickey'
- else:
- return 'password'
- if username == 'commie':
- return 'keyboard-interactive'
return 'publickey'
def check_auth_password(self, username, password):
if (username == 'slowdive') and (password == 'pygmalion'):
return AUTH_SUCCESSFUL
- if (username == 'paranoid') and (password == 'paranoid'):
- # 2-part auth (even openssh doesn't support this)
- self.paranoid_did_password = True
- if self.paranoid_did_public_key:
- return AUTH_SUCCESSFUL
- return AUTH_PARTIALLY_SUCCESSFUL
- return AUTH_FAILED
-
- def check_auth_publickey(self, username, key):
- if (username == 'paranoid') and (key == self.paranoid_key):
- # 2-part auth
- self.paranoid_did_public_key = True
- if self.paranoid_did_password:
- return AUTH_SUCCESSFUL
- return AUTH_PARTIALLY_SUCCESSFUL
- return AUTH_FAILED
-
- def check_auth_interactive(self, username, submethods):
- if username == 'commie':
- self.username = username
- return InteractiveQuery('password', 'Please enter a password.', ('Password', False))
- return AUTH_FAILED
-
- def check_auth_interactive_response(self, responses):
- if self.username == 'commie':
- if (len(responses) == 1) and (responses[0] == 'cat'):
- return AUTH_SUCCESSFUL
return AUTH_FAILED
def check_channel_request(self, kind, chanid):
+ if kind == 'bogus':
+ return OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED
return OPEN_SUCCEEDED
def check_channel_exec_request(self, channel, command):
@@ -94,10 +69,34 @@ class NullServer (ServerInterface):
def check_global_request(self, kind, msg):
self._global_request = kind
return False
+
+ def check_channel_x11_request(self, channel, single_connection, auth_protocol, auth_cookie, screen_number):
+ self._x11_single_connection = single_connection
+ self._x11_auth_protocol = auth_protocol
+ self._x11_auth_cookie = auth_cookie
+ self._x11_screen_number = screen_number
+ return True
+
+ def check_port_forward_request(self, addr, port):
+ self._listen = socket.socket()
+ self._listen.bind(('127.0.0.1', 0))
+ self._listen.listen(1)
+ return self._listen.getsockname()[1]
+
+ def cancel_port_forward_request(self, addr, port):
+ self._listen.close()
+ self._listen = None
+
+ def check_channel_direct_tcpip_request(self, chanid, origin, destination):
+ self._tcpip_dest = destination
+ return OPEN_SUCCEEDED
class TransportTest (unittest.TestCase):
+ assertTrue = unittest.TestCase.failUnless # for Python 2.3 and below
+ assertFalse = unittest.TestCase.failIf # for Python 2.3 and below
+
def setUp(self):
self.socks = LoopSocket()
self.sockc = LoopSocket()
@@ -111,6 +110,26 @@ class TransportTest (unittest.TestCase):
self.socks.close()
self.sockc.close()
+ def setup_test_server(self, client_options=None, server_options=None):
+ 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)
+
+ if client_options is not None:
+ client_options(self.tc.get_security_options())
+ if server_options is not None:
+ server_options(self.ts.get_security_options())
+
+ event = threading.Event()
+ self.server = NullServer()
+ self.assert_(not event.isSet())
+ self.ts.start_server(event, self.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_1_security_options(self):
o = self.tc.get_security_options()
self.assertEquals(type(o), SecurityOptions)
@@ -130,11 +149,11 @@ class TransportTest (unittest.TestCase):
def test_2_compute_key(self):
self.tc.K = 123281095979686581523377256114209720774539068973101330872763622971399429481072519713536292772709507296759612401802191955568143056534122385270077606457721553469730659233569339356140085284052436697480759510519672848743794433460113118986816826624865291116513647975790797391795651716378444844877749505443714557929L
- self.tc.H = util.unhexify('0C8307CDE6856FF30BA93684EB0F04C2520E9ED3')
+ self.tc.H = unhexlify('0C8307CDE6856FF30BA93684EB0F04C2520E9ED3')
self.tc.session_id = self.tc.H
key = self.tc._compute_key('C', 32)
self.assertEquals('207E66594CA87C44ECCBA3B3CD39FDDB378E6FDB0F97C54B2AA0CFBF900CD995',
- util.hexify(key))
+ hexlify(key).upper())
def test_3_simple(self):
"""
@@ -168,193 +187,45 @@ class TransportTest (unittest.TestCase):
verify that the client can demand odd handshake settings, and can
renegotiate keys in mid-stream.
"""
- 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.ts.start_server(event, server)
- options = self.tc.get_security_options()
- options.ciphers = ('aes256-cbc',)
- options.digests = ('hmac-md5-96',)
- 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 force_algorithms(options):
+ options.ciphers = ('aes256-cbc',)
+ options.digests = ('hmac-md5-96',)
+ self.setup_test_server(client_options=force_algorithms)
self.assertEquals('aes256-cbc', self.tc.local_cipher)
self.assertEquals('aes256-cbc', self.tc.remote_cipher)
self.assertEquals(12, self.tc.packetizer.get_mac_size_out())
self.assertEquals(12, self.tc.packetizer.get_mac_size_in())
self.tc.send_ignore(1024)
- self.assert_(self.tc.renegotiate_keys())
+ self.tc.renegotiate_keys()
self.ts.send_ignore(1024)
def test_5_keepalive(self):
"""
verify that the keepalive will be sent.
"""
- self.tc.set_hexdump(True)
-
- 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.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())
-
- self.assertEquals(None, getattr(server, '_global_request', None))
+ self.setup_test_server()
+ self.assertEquals(None, getattr(self.server, '_global_request', None))
self.tc.set_keepalive(1)
time.sleep(2)
- self.assertEquals('keepalive@lag.net', server._global_request)
-
- def test_6_bad_auth_type(self):
- """
- verify that we get the right exception when an unsupported auth
- type is requested.
- """
- 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.ts.start_server(event, server)
- try:
- self.tc.connect(hostkey=public_host_key,
- username='unknown', password='error')
- self.assert_(False)
- except:
- etype, evalue, etb = sys.exc_info()
- self.assertEquals(BadAuthenticationType, etype)
- self.assertEquals(['publickey'], evalue.allowed_types)
-
- def test_7_bad_password(self):
- """
- verify that a bad password gets the right exception, and that a retry
- with the right password works.
- """
- 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.ts.start_server(event, server)
- self.tc.ultra_debug = True
- self.tc.connect(hostkey=public_host_key)
- try:
- self.tc.auth_password(username='slowdive', password='error')
- self.assert_(False)
- except:
- etype, evalue, etb = sys.exc_info()
- self.assertEquals(SSHException, etype)
- self.tc.auth_password(username='slowdive', password='pygmalion')
- event.wait(1.0)
- self.assert_(event.isSet())
- self.assert_(self.ts.is_active())
-
- def test_8_multipart_auth(self):
- """
- verify that multipart auth works.
- """
- 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.ts.start_server(event, server)
- self.tc.ultra_debug = True
- self.tc.connect(hostkey=public_host_key)
- remain = self.tc.auth_password(username='paranoid', password='paranoid')
- self.assertEquals(['publickey'], remain)
- key = DSSKey.from_private_key_file('tests/test_dss.key')
- remain = self.tc.auth_publickey(username='paranoid', key=key)
- self.assertEquals([], remain)
- event.wait(1.0)
- self.assert_(event.isSet())
- self.assert_(self.ts.is_active())
-
- def test_9_interactive_auth(self):
- """
- verify keyboard-interactive auth works.
- """
- 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.ts.start_server(event, server)
- self.tc.ultra_debug = True
- self.tc.connect(hostkey=public_host_key)
-
- def handler(title, instructions, prompts):
- self.got_title = title
- self.got_instructions = instructions
- self.got_prompts = prompts
- return ['cat']
- remain = self.tc.auth_interactive('commie', handler)
- self.assertEquals(self.got_title, 'password')
- self.assertEquals(self.got_prompts, [('Password', False)])
- self.assertEquals([], remain)
- event.wait(1.0)
- self.assert_(event.isSet())
- self.assert_(self.ts.is_active())
+ self.assertEquals('keepalive@lag.net', self.server._global_request)
- def test_A_interactive_auth_fallback(self):
- """
- verify that a password auth attempt will fallback to "interactive"
- if password auth isn't supported but interactive is.
- """
- 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.ts.start_server(event, server)
- self.tc.ultra_debug = True
- self.tc.connect(hostkey=public_host_key)
- remain = self.tc.auth_password('commie', 'cat')
- self.assertEquals([], remain)
- event.wait(1.0)
- self.assert_(event.isSet())
- self.assert_(self.ts.is_active())
-
- def test_B_exec_command(self):
+ def test_6_exec_command(self):
"""
verify that exec_command() does something reasonable.
"""
- 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.ts.start_server(event, server)
- self.tc.ultra_debug = True
- self.tc.connect(hostkey=public_host_key)
- self.tc.auth_password(username='slowdive', password='pygmalion')
- event.wait(1.0)
- self.assert_(event.isSet())
- self.assert_(self.ts.is_active())
+ self.setup_test_server()
chan = self.tc.open_session()
schan = self.ts.accept(1.0)
- self.assert_(not chan.exec_command('no'))
+ try:
+ chan.exec_command('no')
+ self.assert_(False)
+ except SSHException, x:
+ pass
chan = self.tc.open_session()
- self.assert_(chan.exec_command('yes'))
+ chan.exec_command('yes')
schan = self.ts.accept(1.0)
schan.send('Hello there.\n')
schan.send_stderr('This is on stderr.\n')
@@ -369,7 +240,7 @@ class TransportTest (unittest.TestCase):
# now try it with combined stdout/stderr
chan = self.tc.open_session()
- self.assert_(chan.exec_command('yes'))
+ chan.exec_command('yes')
schan = self.ts.accept(1.0)
schan.send('Hello there.\n')
schan.send_stderr('This is on stderr.\n')
@@ -381,26 +252,13 @@ class TransportTest (unittest.TestCase):
self.assertEquals('This is on stderr.\n', f.readline())
self.assertEquals('', f.readline())
- def test_C_invoke_shell(self):
+ def test_7_invoke_shell(self):
"""
verify that invoke_shell() does something reasonable.
"""
- 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.ts.start_server(event, server)
- self.tc.ultra_debug = True
- self.tc.connect(hostkey=public_host_key)
- self.tc.auth_password(username='slowdive', password='pygmalion')
- event.wait(1.0)
- self.assert_(event.isSet())
- self.assert_(self.ts.is_active())
-
+ self.setup_test_server()
chan = self.tc.open_session()
- self.assert_(chan.invoke_shell())
+ chan.invoke_shell()
schan = self.ts.accept(1.0)
chan.send('communist j. cat\n')
f = schan.makefile()
@@ -408,28 +266,28 @@ class TransportTest (unittest.TestCase):
chan.close()
self.assertEquals('', f.readline())
- def test_D_exit_status(self):
+ def test_8_channel_exception(self):
+ """
+ verify that ChannelException is thrown for a bad open-channel request.
+ """
+ self.setup_test_server()
+ try:
+ chan = self.tc.open_channel('bogus')
+ self.fail('expected exception')
+ except ChannelException, x:
+ self.assert_(x.code == OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED)
+
+ def test_9_exit_status(self):
"""
verify that get_exit_status() works.
"""
- 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.ts.start_server(event, server)
- self.tc.ultra_debug = True
- self.tc.connect(hostkey=public_host_key)
- self.tc.auth_password(username='slowdive', password='pygmalion')
- event.wait(1.0)
- self.assert_(event.isSet())
- self.assert_(self.ts.is_active())
+ self.setup_test_server()
chan = self.tc.open_session()
schan = self.ts.accept(1.0)
- self.assert_(chan.exec_command('yes'))
+ chan.exec_command('yes')
schan.send('Hello there.\n')
+ self.assert_(not chan.exit_status_ready())
# trigger an EOF
schan.shutdown_read()
schan.shutdown_write()
@@ -439,29 +297,22 @@ class TransportTest (unittest.TestCase):
f = chan.makefile()
self.assertEquals('Hello there.\n', f.readline())
self.assertEquals('', f.readline())
+ count = 0
+ while not chan.exit_status_ready():
+ time.sleep(0.1)
+ count += 1
+ if count > 50:
+ raise Exception("timeout")
self.assertEquals(23, chan.recv_exit_status())
chan.close()
- def test_E_select(self):
+ def test_A_select(self):
"""
verify that select() on a channel works.
"""
- 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.ts.start_server(event, server)
- self.tc.ultra_debug = True
- self.tc.connect(hostkey=public_host_key)
- self.tc.auth_password(username='slowdive', password='pygmalion')
- event.wait(1.0)
- self.assert_(event.isSet())
- self.assert_(self.ts.is_active())
-
+ self.setup_test_server()
chan = self.tc.open_session()
- self.assert_(chan.invoke_shell())
+ chan.invoke_shell()
schan = self.ts.accept(1.0)
# nothing should be ready
@@ -503,28 +354,21 @@ class TransportTest (unittest.TestCase):
self.assertEquals([], e)
self.assertEquals('', chan.recv(16))
+ # make sure the pipe is still open for now...
+ p = chan._pipe
+ self.assertEquals(False, p._closed)
chan.close()
+ # ...and now is closed.
+ self.assertEquals(True, p._closed)
- def test_F_renegotiate(self):
+ def test_B_renegotiate(self):
"""
verify that a transport can correctly renegotiate mid-stream.
"""
- 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.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())
-
+ self.setup_test_server()
self.tc.packetizer.REKEY_BYTES = 16384
-
chan = self.tc.open_session()
- self.assert_(chan.exec_command('yes'))
+ chan.exec_command('yes')
schan = self.ts.accept(1.0)
self.assertEquals(self.tc.H, self.tc.session_id)
@@ -541,26 +385,15 @@ class TransportTest (unittest.TestCase):
schan.close()
- def test_G_compression(self):
+ def test_C_compression(self):
"""
verify that zlib compression is basically working.
"""
- 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)
- self.ts.get_security_options().compression = ('zlib',)
- self.tc.get_security_options().compression = ('zlib',)
- event = threading.Event()
- server = NullServer()
- 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 force_compression(o):
+ o.compression = ('zlib',)
+ self.setup_test_server(force_compression, force_compression)
chan = self.tc.open_session()
- self.assert_(chan.exec_command('yes'))
+ chan.exec_command('yes')
schan = self.ts.accept(1.0)
bytes = self.tc.packetizer._Packetizer__sent_bytes
@@ -568,6 +401,326 @@ class TransportTest (unittest.TestCase):
bytes2 = self.tc.packetizer._Packetizer__sent_bytes
# tests show this is actually compressed to *52 bytes*! including packet overhead! nice!! :)
self.assert_(bytes2 - bytes < 1024)
+ self.assertEquals(52, bytes2 - bytes)
chan.close()
schan.close()
+
+ def test_D_x11(self):
+ """
+ verify that an x11 port can be requested and opened.
+ """
+ self.setup_test_server()
+ chan = self.tc.open_session()
+ chan.exec_command('yes')
+ schan = self.ts.accept(1.0)
+
+ requested = []
+ def handler(c, (addr, port)):
+ requested.append((addr, port))
+ self.tc._queue_incoming_channel(c)
+
+ self.assertEquals(None, getattr(self.server, '_x11_screen_number', None))
+ cookie = chan.request_x11(0, single_connection=True, handler=handler)
+ self.assertEquals(0, self.server._x11_screen_number)
+ self.assertEquals('MIT-MAGIC-COOKIE-1', self.server._x11_auth_protocol)
+ self.assertEquals(cookie, self.server._x11_auth_cookie)
+ self.assertEquals(True, self.server._x11_single_connection)
+
+ x11_server = self.ts.open_x11_channel(('localhost', 6093))
+ x11_client = self.tc.accept()
+ self.assertEquals('localhost', requested[0][0])
+ self.assertEquals(6093, requested[0][1])
+
+ x11_server.send('hello')
+ self.assertEquals('hello', x11_client.recv(5))
+
+ x11_server.close()
+ x11_client.close()
+ chan.close()
+ schan.close()
+
+ def test_E_reverse_port_forwarding(self):
+ """
+ verify that a client can ask the server to open a reverse port for
+ forwarding.
+ """
+ self.setup_test_server()
+ chan = self.tc.open_session()
+ chan.exec_command('yes')
+ schan = self.ts.accept(1.0)
+
+ requested = []
+ def handler(c, (origin_addr, origin_port), (server_addr, server_port)):
+ requested.append((origin_addr, origin_port))
+ requested.append((server_addr, server_port))
+ self.tc._queue_incoming_channel(c)
+
+ port = self.tc.request_port_forward('127.0.0.1', 0, handler)
+ self.assertEquals(port, self.server._listen.getsockname()[1])
+
+ cs = socket.socket()
+ cs.connect(('127.0.0.1', port))
+ ss, _ = self.server._listen.accept()
+ sch = self.ts.open_forwarded_tcpip_channel(ss.getsockname(), ss.getpeername())
+ cch = self.tc.accept()
+
+ sch.send('hello')
+ self.assertEquals('hello', cch.recv(5))
+ sch.close()
+ cch.close()
+ ss.close()
+ cs.close()
+
+ # now cancel it.
+ self.tc.cancel_port_forward('127.0.0.1', port)
+ self.assertTrue(self.server._listen is None)
+
+ def test_F_port_forwarding(self):
+ """
+ verify that a client can forward new connections from a locally-
+ forwarded port.
+ """
+ self.setup_test_server()
+ chan = self.tc.open_session()
+ chan.exec_command('yes')
+ schan = self.ts.accept(1.0)
+
+ # open a port on the "server" that the client will ask to forward to.
+ greeting_server = socket.socket()
+ greeting_server.bind(('127.0.0.1', 0))
+ greeting_server.listen(1)
+ greeting_port = greeting_server.getsockname()[1]
+
+ cs = self.tc.open_channel('direct-tcpip', ('127.0.0.1', greeting_port), ('', 9000))
+ sch = self.ts.accept(1.0)
+ cch = socket.socket()
+ cch.connect(self.server._tcpip_dest)
+
+ ss, _ = greeting_server.accept()
+ ss.send('Hello!\n')
+ ss.close()
+ sch.send(cch.recv(8192))
+ sch.close()
+
+ self.assertEquals('Hello!\n', cs.recv(7))
+ cs.close()
+
+ def test_G_stderr_select(self):
+ """
+ verify that select() on a channel works even if only stderr is
+ receiving data.
+ """
+ self.setup_test_server()
+ chan = self.tc.open_session()
+ chan.invoke_shell()
+ schan = self.ts.accept(1.0)
+
+ # nothing should be ready
+ r, w, e = select.select([chan], [], [], 0.1)
+ self.assertEquals([], r)
+ self.assertEquals([], w)
+ self.assertEquals([], e)
+
+ schan.send_stderr('hello\n')
+
+ # something should be ready now (give it 1 second to appear)
+ for i in range(10):
+ r, w, e = select.select([chan], [], [], 0.1)
+ if chan in r:
+ break
+ time.sleep(0.1)
+ self.assertEquals([chan], r)
+ self.assertEquals([], w)
+ self.assertEquals([], e)
+
+ self.assertEquals('hello\n', chan.recv_stderr(6))
+
+ # and, should be dead again now
+ r, w, e = select.select([chan], [], [], 0.1)
+ self.assertEquals([], r)
+ self.assertEquals([], w)
+ self.assertEquals([], e)
+
+ schan.close()
+ chan.close()
+
+ def test_H_send_ready(self):
+ """
+ verify that send_ready() indicates when a send would not block.
+ """
+ self.setup_test_server()
+ chan = self.tc.open_session()
+ chan.invoke_shell()
+ schan = self.ts.accept(1.0)
+
+ self.assertEquals(chan.send_ready(), True)
+ total = 0
+ K = '*' * 1024
+ while total < 1024 * 1024:
+ chan.send(K)
+ total += len(K)
+ if not chan.send_ready():
+ break
+ self.assert_(total < 1024 * 1024)
+
+ schan.close()
+ chan.close()
+ self.assertEquals(chan.send_ready(), True)
+
+ def test_I_rekey_deadlock(self):
+ """
+ Regression test for deadlock when in-transit messages are received after MSG_KEXINIT is sent
+
+ Note: When this test fails, it may leak threads.
+ """
+
+ # Test for an obscure deadlocking bug that can occur if we receive
+ # certain messages while initiating a key exchange.
+ #
+ # The deadlock occurs as follows:
+ #
+ # In the main thread:
+ # 1. The user's program calls Channel.send(), which sends
+ # MSG_CHANNEL_DATA to the remote host.
+ # 2. Packetizer discovers that REKEY_BYTES has been exceeded, and
+ # sets the __need_rekey flag.
+ #
+ # In the Transport thread:
+ # 3. Packetizer notices that the __need_rekey flag is set, and raises
+ # NeedRekeyException.
+ # 4. In response to NeedRekeyException, the transport thread sends
+ # MSG_KEXINIT to the remote host.
+ #
+ # On the remote host (using any SSH implementation):
+ # 5. The MSG_CHANNEL_DATA is received, and MSG_CHANNEL_WINDOW_ADJUST is sent.
+ # 6. The MSG_KEXINIT is received, and a corresponding MSG_KEXINIT is sent.
+ #
+ # In the main thread:
+ # 7. The user's program calls Channel.send().
+ # 8. Channel.send acquires Channel.lock, then calls Transport._send_user_message().
+ # 9. Transport._send_user_message waits for Transport.clear_to_send
+ # to be set (i.e., it waits for re-keying to complete).
+ # Channel.lock is still held.
+ #
+ # In the Transport thread:
+ # 10. MSG_CHANNEL_WINDOW_ADJUST is received; Channel._window_adjust
+ # is called to handle it.
+ # 11. Channel._window_adjust tries to acquire Channel.lock, but it
+ # blocks because the lock is already held by the main thread.
+ #
+ # The result is that the Transport thread never processes the remote
+ # host's MSG_KEXINIT packet, because it becomes deadlocked while
+ # handling the preceding MSG_CHANNEL_WINDOW_ADJUST message.
+
+ # We set up two separate threads for sending and receiving packets,
+ # while the main thread acts as a watchdog timer. If the timer
+ # expires, a deadlock is assumed.
+
+ class SendThread(threading.Thread):
+ def __init__(self, chan, iterations, done_event):
+ threading.Thread.__init__(self, None, None, self.__class__.__name__)
+ self.setDaemon(True)
+ self.chan = chan
+ self.iterations = iterations
+ self.done_event = done_event
+ self.watchdog_event = threading.Event()
+ self.last = None
+
+ def run(self):
+ try:
+ for i in xrange(1, 1+self.iterations):
+ if self.done_event.isSet():
+ break
+ self.watchdog_event.set()
+ #print i, "SEND"
+ self.chan.send("x" * 2048)
+ finally:
+ self.done_event.set()
+ self.watchdog_event.set()
+
+ class ReceiveThread(threading.Thread):
+ def __init__(self, chan, done_event):
+ threading.Thread.__init__(self, None, None, self.__class__.__name__)
+ self.setDaemon(True)
+ self.chan = chan
+ self.done_event = done_event
+ self.watchdog_event = threading.Event()
+
+ def run(self):
+ try:
+ while not self.done_event.isSet():
+ if self.chan.recv_ready():
+ chan.recv(65536)
+ self.watchdog_event.set()
+ else:
+ if random.randint(0, 1):
+ time.sleep(random.randint(0, 500) / 1000.0)
+ finally:
+ self.done_event.set()
+ self.watchdog_event.set()
+
+ self.setup_test_server()
+ self.ts.packetizer.REKEY_BYTES = 2048
+
+ chan = self.tc.open_session()
+ chan.exec_command('yes')
+ schan = self.ts.accept(1.0)
+
+ # Monkey patch the client's Transport._handler_table so that the client
+ # sends MSG_CHANNEL_WINDOW_ADJUST whenever it receives an initial
+ # MSG_KEXINIT. This is used to simulate the effect of network latency
+ # on a real MSG_CHANNEL_WINDOW_ADJUST message.
+ self.tc._handler_table = self.tc._handler_table.copy() # copy per-class dictionary
+ _negotiate_keys = self.tc._handler_table[MSG_KEXINIT]
+ def _negotiate_keys_wrapper(self, m):
+ if self.local_kex_init is None: # Remote side sent KEXINIT
+ # Simulate in-transit MSG_CHANNEL_WINDOW_ADJUST by sending it
+ # before responding to the incoming MSG_KEXINIT.
+ m2 = Message()
+ m2.add_byte(chr(MSG_CHANNEL_WINDOW_ADJUST))
+ m2.add_int(chan.remote_chanid)
+ m2.add_int(1) # bytes to add
+ self._send_message(m2)
+ return _negotiate_keys(self, m)
+ self.tc._handler_table[MSG_KEXINIT] = _negotiate_keys_wrapper
+
+ # Parameters for the test
+ iterations = 500 # The deadlock does not happen every time, but it
+ # should after many iterations.
+ timeout = 5
+
+ # This event is set when the test is completed
+ done_event = threading.Event()
+
+ # Start the sending thread
+ st = SendThread(schan, iterations, done_event)
+ st.start()
+
+ # Start the receiving thread
+ rt = ReceiveThread(chan, done_event)
+ rt.start()
+
+ # Act as a watchdog timer, checking
+ deadlocked = False
+ while not deadlocked and not done_event.isSet():
+ for event in (st.watchdog_event, rt.watchdog_event):
+ event.wait(timeout)
+ if done_event.isSet():
+ break
+ if not event.isSet():
+ deadlocked = True
+ break
+ event.clear()
+
+ # Tell the threads to stop (if they haven't already stopped). Note
+ # that if one or more threads are deadlocked, they might hang around
+ # forever (until the process exits).
+ done_event.set()
+
+ # Assertion: We must not have detected a timeout.
+ self.assertFalse(deadlocked)
+
+ # Close the channels
+ schan.close()
+ chan.close()
diff --git a/tests/test_util.py b/tests/test_util.py
index fa8c029..d385bab 100644
--- a/tests/test_util.py
+++ b/tests/test_util.py
@@ -1,6 +1,4 @@
-#!/usr/bin/python
-
-# Copyright (C) 2003-2005 Robey Pointer <robey@lag.net>
+# Copyright (C) 2003-2007 Robey Pointer <robey@lag.net>
#
# This file is part of paramiko.
#
@@ -22,7 +20,9 @@
Some unit tests for utility functions.
"""
+from binascii import hexlify
import cStringIO
+import os
import unittest
from Crypto.Hash import SHA
import paramiko.util
@@ -43,27 +43,80 @@ Host spoo.example.com
Crazy something else
"""
+test_hosts_file = """\
+secure.example.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEA1PD6U2/TVxET6lkpKhOk5r\
+9q/kAYG6sP9f5zuUYP8i7FOFp/6ncCEbbtg/lB+A3iidyxoSWl+9jtoyyDOOVX4UIDV9G11Ml8om3\
+D+jrpI9cycZHqilK0HmxDeCuxbwyMuaCygU9gS2qoRvNLWZk70OpIKSSpBo0Wl3/XUmz9uhc=
+happy.example.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEA8bP1ZA7DCZDB9J0s50l31M\
+BGQ3GQ/Fc7SX6gkpXkwcZryoi4kNFhHu5LvHcZPdxXV1D+uTMfGS1eyd2Yz/DoNWXNAl8TI0cAsW\
+5ymME3bQ4J/k1IKxCtz/bAlAqFgKoc+EolMziDYqWIATtW0rYTJvzGAzTmMj80/QpsFH+Pc2M=
+"""
+
+
+# for test 1:
+from paramiko import *
+
class UtilTest (unittest.TestCase):
- K = 14730343317708716439807310032871972459448364195094179797249681733965528989482751523943515690110179031004049109375612685505881911274101441415545039654102474376472240501616988799699744135291070488314748284283496055223852115360852283821334858541043710301057312858051901453919067023103730011648890038847384890504L
+ assertTrue = unittest.TestCase.failUnless # for Python 2.3 and below
+ assertFalse = unittest.TestCase.failIf # for Python 2.3 and below
def setUp(self):
pass
def tearDown(self):
pass
+
+ def test_1_import(self):
+ """
+ verify that all the classes can be imported from paramiko.
+ """
+ symbols = globals().keys()
+ self.assertTrue('Transport' in symbols)
+ self.assertTrue('SSHClient' in symbols)
+ self.assertTrue('MissingHostKeyPolicy' in symbols)
+ self.assertTrue('AutoAddPolicy' in symbols)
+ self.assertTrue('RejectPolicy' in symbols)
+ self.assertTrue('WarningPolicy' in symbols)
+ self.assertTrue('SecurityOptions' in symbols)
+ self.assertTrue('SubsystemHandler' in symbols)
+ self.assertTrue('Channel' in symbols)
+ self.assertTrue('RSAKey' in symbols)
+ self.assertTrue('DSSKey' in symbols)
+ self.assertTrue('Message' in symbols)
+ self.assertTrue('SSHException' in symbols)
+ self.assertTrue('AuthenticationException' in symbols)
+ self.assertTrue('PasswordRequiredException' in symbols)
+ self.assertTrue('BadAuthenticationType' in symbols)
+ self.assertTrue('ChannelException' in symbols)
+ self.assertTrue('SFTP' in symbols)
+ self.assertTrue('SFTPFile' in symbols)
+ self.assertTrue('SFTPHandle' in symbols)
+ self.assertTrue('SFTPClient' in symbols)
+ self.assertTrue('SFTPServer' in symbols)
+ self.assertTrue('SFTPError' in symbols)
+ self.assertTrue('SFTPAttributes' in symbols)
+ self.assertTrue('SFTPServerInterface' in symbols)
+ self.assertTrue('ServerInterface' in symbols)
+ self.assertTrue('BufferedFile' in symbols)
+ self.assertTrue('Agent' in symbols)
+ self.assertTrue('AgentKey' in symbols)
+ self.assertTrue('HostKeys' in symbols)
+ self.assertTrue('SSHConfig' in symbols)
+ self.assertTrue('util' in symbols)
- def test_1_parse_config(self):
+ def test_2_parse_config(self):
global test_config_file
f = cStringIO.StringIO(test_config_file)
config = paramiko.util.parse_ssh_config(f)
- self.assertEquals(config, [ {'identityfile': '~/.ssh/id_rsa', 'host': '*', 'user': 'robey',
- 'crazy': 'something dumb '},
- {'host': '*.example.com', 'user': 'bjork', 'port': '3333'},
- {'host': 'spoo.example.com', 'crazy': 'something else'}])
+ self.assertEquals(config._config,
+ [ {'identityfile': '~/.ssh/id_rsa', 'host': '*', 'user': 'robey',
+ 'crazy': 'something dumb '},
+ {'host': '*.example.com', 'user': 'bjork', 'port': '3333'},
+ {'host': 'spoo.example.com', 'crazy': 'something else'}])
- def test_2_host_config(self):
+ def test_3_host_config(self):
global test_config_file
f = cStringIO.StringIO(test_config_file)
config = paramiko.util.parse_ssh_config(f)
@@ -74,7 +127,28 @@ class UtilTest (unittest.TestCase):
c = paramiko.util.lookup_ssh_host_config('spoo.example.com', config)
self.assertEquals(c, {'identityfile': '~/.ssh/id_rsa', 'user': 'bjork', 'crazy': 'something else', 'port': '3333'})
- def test_3_generate_key_bytes(self):
+ def test_4_generate_key_bytes(self):
x = paramiko.util.generate_key_bytes(SHA, 'ABCDEFGH', 'This is my secret passphrase.', 64)
hex = ''.join(['%02x' % ord(c) for c in x])
self.assertEquals(hex, '9110e2f6793b69363e58173e9436b13a5a4b339005741d5c680e505f57d871347b4239f14fb5c46e857d5e100424873ba849ac699cea98d729e57b3e84378e8b')
+
+ def test_5_host_keys(self):
+ f = open('hostfile.temp', 'w')
+ f.write(test_hosts_file)
+ f.close()
+ try:
+ hostdict = paramiko.util.load_host_keys('hostfile.temp')
+ self.assertEquals(2, len(hostdict))
+ self.assertEquals(1, len(hostdict.values()[0]))
+ self.assertEquals(1, len(hostdict.values()[1]))
+ fp = hexlify(hostdict['secure.example.com']['ssh-rsa'].get_fingerprint()).upper()
+ self.assertEquals('E6684DB30E109B67B70FF1DC5C7F1363', fp)
+ finally:
+ os.unlink('hostfile.temp')
+
+ def test_6_random(self):
+ from paramiko.common import randpool
+ # just verify that we can pull out 32 bytes and not get an exception.
+ x = randpool.get_bytes(32)
+ self.assertEquals(len(x), 32)
+